added hdd speed label

This commit is contained in:
arcan1s
2014-05-19 02:48:00 +04:00
parent b09e90a0e5
commit 1a6d97800c
9 changed files with 292 additions and 84 deletions

View File

@ -61,6 +61,10 @@ class ConfigDefinition:
for i in range(self.configpage.ui.listWidget_hddDevice.count()):
item.append(self.configpage.ui.listWidget_hddDevice.item(i).text())
settings.set('hdd', str(item.join(QString('@@'))))
item = QStringList()
for i in range(self.configpage.ui.listWidget_hddSpeedDevice.count()):
item.append(self.configpage.ui.listWidget_hddSpeedDevice.item(i).text())
settings.set('disk', str(item.join(QString('@@'))))
settings.set('netdir', str(self.configpage.ui.lineEdit_netdir.text()))
settings.set('netdevBool', self.configpage.ui.checkBox_netdev.checkState())
settings.set('custom_netdev', str(self.configpage.ui.comboBox_netdev.currentText()))
@ -168,6 +172,12 @@ class ConfigDefinition:
self.configpage.ui.listWidget_hddDevice.clear()
for item in str(settings.get('hdd', '/dev/sda')).split('@@'):
self.configpage.ui.listWidget_hddDevice.addItem(item)
self.configpage.ui.comboBox_hddSpeedDevice.clear()
for item in self.defaults['disk']:
self.configpage.ui.comboBox_hddSpeedDevice.addItem(item)
self.configpage.ui.listWidget_hddSpeedDevice.clear()
for item in str(settings.get('disk', 'disk/sda_(8:0)')).split('@@'):
self.configpage.ui.listWidget_hddSpeedDevice.addItem(item)
self.configpage.ui.lineEdit_netdir.setText(str(settings.get('netdir', '/sys/class/net')))
self.configpage.ui.checkBox_netdev.setCheckState(settings.get('netdevBool', 0).toInt()[0])
for item in QDir.entryList(QDir(str(settings.get('netdir', '/sys/class/net'))), QDir.Dirs | QDir.NoDotAndDotDot):

View File

@ -36,34 +36,35 @@ class ConfigWindow(QWidget):
'up':self.ui.kcolorcombo_up}
self.checkboxes = {'bat':self.ui.checkBox_bat, 'cpu':self.ui.checkBox_cpu,
'cpuclock':self.ui.checkBox_cpuclock, 'custom':self.ui.checkBox_custom,
'gpu':self.ui.checkBox_gpu, 'gputemp':self.ui.checkBox_gpuTemp,
'hdd':self.ui.checkBox_hdd, 'hddtemp':self.ui.checkBox_hddTemp,
'mem':self.ui.checkBox_mem, 'net':self.ui.checkBox_net,
'swap':self.ui.checkBox_swap, 'temp':self.ui.checkBox_temp,
'uptime':self.ui.checkBox_uptime, 'pkg':self.ui.checkBox_pkg,
'player':self.ui.checkBox_player, 'ps':self.ui.checkBox_ps,
'time':self.ui.checkBox_time}
'disk':self.ui.checkBox_hddSpeed, 'gpu':self.ui.checkBox_gpu,
'gputemp':self.ui.checkBox_gpuTemp, 'hdd':self.ui.checkBox_hdd,
'hddtemp':self.ui.checkBox_hddTemp, 'mem':self.ui.checkBox_mem,
'net':self.ui.checkBox_net, 'swap':self.ui.checkBox_swap,
'temp':self.ui.checkBox_temp, 'uptime':self.ui.checkBox_uptime,
'pkg':self.ui.checkBox_pkg, 'player':self.ui.checkBox_player,
'ps':self.ui.checkBox_ps, 'time':self.ui.checkBox_time}
self.lineedits = {'bat':self.ui.lineEdit_bat, 'cpu':self.ui.lineEdit_cpu,
'cpuclock':self.ui.lineEdit_cpuclock, 'custom':self.ui.lineEdit_custom,
'gpu':self.ui.lineEdit_gpu, 'gputemp':self.ui.lineEdit_gpuTemp,
'hdd':self.ui.lineEdit_hdd, 'hddtemp':self.ui.lineEdit_hddTemp,
'mem':self.ui.lineEdit_mem, 'net':self.ui.lineEdit_net,
'swap':self.ui.lineEdit_swap, 'temp':self.ui.lineEdit_temp,
'uptime':self.ui.lineEdit_uptime, 'pkg':self.ui.lineEdit_pkg,
'player':self.ui.lineEdit_player, 'ps':self.ui.lineEdit_ps,
'time':self.ui.lineEdit_time}
'disk':self.ui.lineEdit_hddSpeed, 'gpu':self.ui.lineEdit_gpu,
'gputemp':self.ui.lineEdit_gpuTemp, 'hdd':self.ui.lineEdit_hdd,
'hddtemp':self.ui.lineEdit_hddTemp, 'mem':self.ui.lineEdit_mem,
'net':self.ui.lineEdit_net, 'swap':self.ui.lineEdit_swap,
'temp':self.ui.lineEdit_temp, 'uptime':self.ui.lineEdit_uptime,
'pkg':self.ui.lineEdit_pkg, 'player':self.ui.lineEdit_player,
'ps':self.ui.lineEdit_ps, 'time':self.ui.lineEdit_time}
self.sliders = {'bat':self.ui.slider_bat, 'cpu':self.ui.slider_cpu,
'cpuclock':self.ui.slider_cpuclock, 'custom':self.ui.slider_custom,
'gpu':self.ui.slider_gpu, 'gputemp':self.ui.slider_gpuTemp,
'hdd':self.ui.slider_hdd, 'hddtemp':self.ui.slider_hddTemp,
'mem':self.ui.slider_mem, 'net':self.ui.slider_net,
'swap':self.ui.slider_swap, 'temp':self.ui.slider_temp,
'uptime':self.ui.slider_uptime, 'pkg':self.ui.slider_pkg,
'player':self.ui.slider_player, 'ps':self.ui.slider_ps,
'time':self.ui.slider_time}
'disk':self.ui.slider_hddSpeed, 'gpu':self.ui.slider_gpu,
'gputemp':self.ui.slider_gpuTemp, 'hdd':self.ui.slider_hdd,
'hddtemp':self.ui.slider_hddTemp, 'mem':self.ui.slider_mem,
'net':self.ui.slider_net, 'swap':self.ui.slider_swap,
'temp':self.ui.slider_temp, 'uptime':self.ui.slider_uptime,
'pkg':self.ui.slider_pkg, 'player':self.ui.slider_player,
'ps':self.ui.slider_ps, 'time':self.ui.slider_time}
QObject.connect(self.ui.checkBox_netdev, SIGNAL("stateChanged(int)"), self.setNetdevEnabled)
QObject.connect(self.ui.pushButton_hddDevice, SIGNAL("clicked()"), self.addHddDevice)
QObject.connect(self.ui.pushButton_hddSpeedDevice, SIGNAL("clicked()"), self.addHddSpeedDevice)
QObject.connect(self.ui.pushButton_mount, SIGNAL("clicked()"), self.addMount)
QObject.connect(self.ui.pushButton_tempDevice, SIGNAL("clicked()"), self.addTempDevice)
QObject.connect(self.ui.pushButton_pkgCommand, SIGNAL("clicked()"), self.addPkgCommand)
@ -85,6 +86,9 @@ class ConfigWindow(QWidget):
if (self.ui.listWidget_hddDevice.hasFocus() and
(self.ui.listWidget_hddDevice.currentRow() > -1)):
self.ui.listWidget_hddDevice.takeItem(self.ui.listWidget_hddDevice.currentRow())
elif (self.ui.listWidget_hddSpeedDevice.hasFocus() and
(self.ui.listWidget_hddSpeedDevice.currentRow() > -1)):
self.ui.listWidget_hddSpeedDevice.takeItem(self.ui.listWidget_hddSpeedDevice.currentRow())
elif (self.ui.listWidget_mount.hasFocus() and
(self.ui.listWidget_mount.currentRow() > -1)):
self.ui.listWidget_mount.takeItem(self.ui.listWidget_mount.currentRow())
@ -102,6 +106,12 @@ class ConfigWindow(QWidget):
self.ui.listWidget_hddDevice.addItem(self.ui.comboBox_hddDevice.currentText())
def addHddSpeedDevice(self):
"""function to add disk device"""
self.ui.listWidget_hddSpeedDevice.clearSelection()
self.ui.listWidget_hddSpeedDevice.addItem(self.ui.comboBox_hddSpeedDevice.currentText())
def addMount(self):
"""function to add mount points"""
self.ui.listWidget_mount.clearSelection()

View File

@ -47,6 +47,10 @@ class DataEngine:
dataEngines['system'].connectSource("cpu/cpu" + str(core) + "/clock", self.parent, interval)
if (bools['custom'] > 0):
dataEngines['ext'].connectSource("custom", self.parent, interval)
if (bools['disk'] > 0):
for item in names['disk']:
dataEngines['system'].connectSource(item + "/Rate/rblk", self.parent, interval)
dataEngines['system'].connectSource(item + "/Rate/wblk", self.parent, interval)
if (bools['gpu'] > 0):
dataEngines['ext'].connectSource("gpu", self.parent, interval)
if (bools['gputemp'] > 0):
@ -116,6 +120,16 @@ class DataEngine:
updatedData['name'] = "custom"
value = str(data[QString(u'custom')].toUtf8()).decode("utf-8")
updatedData['value'] = value
elif ((sourceName[:4] == "disk") and (sourceName[-4:] == "rblk")):
updatedData['name'] = "disk-r"
updatedData['type'] = '/'.join(str(sourceName).split('/')[0:2])
value = round(data[QString(u'value')].toFloat()[0], 0)
updatedData['value'] = value
elif ((sourceName[:4] == "disk") and (sourceName[-4:] == "wblk")):
updatedData['name'] = "disk-w"
updatedData['type'] = '/'.join(str(sourceName).split('/')[0:2])
value = round(data[QString(u'value')].toFloat()[0], 0)
updatedData['value'] = value
elif (sourceName == "gpu"):
updatedData['name'] = "gpu"
value = round(data[QString(u'GPU')], 1)
@ -282,6 +296,10 @@ class DataEngine:
dataEngines['system'].disconnectSource("cpu/cpu" + str(item) + "/clock", self.parent)
elif (name == "custom"):
dataEngines['ext'].disconnectSource("custom", self.parent)
elif (name == "disk"):
for item in keys['disk']:
dataEngines['system'].disconnectSource(item + "/Rate/rblk", self.parent)
dataEngines['system'].disconnectSource(item + "/Rate/rblk", self.parent)
elif (name == "gpu"):
dataEngines['ext'].disconnectSource("gpu", self.parent)
elif (name == "gputemp"):

View File

@ -106,7 +106,7 @@ class pyTextWidget(plasmascript.Applet):
"""function to create actions"""
self.ptmActions = {}
self.ptmActions['ksysguard'] = QAction(i18n("Run ksysguard"), self)
QObject.connect(self.ptmActions['ksysguard'], SIGNAL("triggered(bool)"), self.showReadme)
QObject.connect(self.ptmActions['ksysguard'], SIGNAL("triggered(bool)"), self.runKsysguard)
self.ptmActions['readme'] = QAction(i18n("Show README"), self)
QObject.connect(self.ptmActions['readme'], SIGNAL("triggered(bool)"), self.showReadme)
@ -119,6 +119,11 @@ class pyTextWidget(plasmascript.Applet):
return contextMenu
def runKsysguard(self, event):
"""function to run ksysguard"""
os.system("ksysguard &")
def showReadme(self):
"""function to show readme file"""
kdehome = unicode(KGlobal.dirs().localkdedir())
@ -138,12 +143,13 @@ class pyTextWidget(plasmascript.Applet):
os.system("kioclient exec " + str(filePath) + " &")
def runKsysguard(self, event):
"""function to run ksysguard"""
os.system("ksysguard &")
# internal functions
def addDiskDevice(self, sourceName):
diskRegexp = QRegExp("disk/(?:md|sd|hd)[a-z|0-9]_.*/Rate/(?:rblk)")
if (diskRegexp.indexIn(sourceName) > -1):
self.ptm['defaults']['disk'].append('/'.join(str(sourceName).split('/')[0:2]))
def createConfigurationInterface(self, parent):
"""function to setup configuration window"""
self.configpage = configwindow.ConfigWindow(self)
@ -182,38 +188,41 @@ class pyTextWidget(plasmascript.Applet):
# defaults
self.ptm['defaults'] = {}
self.ptm['defaults']['confBool'] = {'bat':'batBool', 'cpu':'cpuBool',
'cpuclock':'cpuclockBool', 'custom':'customBool', 'gpu':'gpuBool',
'gputemp':'gputempBool', 'hdd':'hddBool', 'hddtemp':'hddtempBool',
'mem':'memBool', 'net':'netBool', 'pkg':'pkgBool', 'player':'playerBool',
'ps':'psBool', 'swap':'swapBool', 'temp':'tempBool', 'uptime':'uptimeBool',
'time':'timeBool'}
'cpuclock':'cpuclockBool', 'custom':'customBool', 'disk':'diskBool',
'gpu':'gpuBool', 'gputemp':'gputempBool', 'hdd':'hddBool',
'hddtemp':'hddtempBool', 'mem':'memBool', 'net':'netBool', 'pkg':'pkgBool',
'player':'playerBool', 'ps':'psBool', 'swap':'swapBool', 'temp':'tempBool',
'uptime':'uptimeBool', 'time':'timeBool'}
self.ptm['defaults']['confColor'] = {'cpu':'cpu_color', 'cpuclock':'cpuclock_color',
'down':'down_color', 'mem':'mem_color', 'swap':'swap_color', 'up':'up_color'}
self.ptm['defaults']['confFormat'] = {'bat':'batFormat', 'cpu':'cpuFormat',
'cpuclock':'cpuclockFormat', 'custom':'customFormat', 'gpu':'gpuFormat',
'gputemp':'gputempFormat', 'hdd':'hddFormat', 'hddtemp':'hddtempFormat',
'mem':'memFormat', 'net':'netFormat', 'pkg':'pkgFormat',
'player':'playerFormat', 'ps':'psFormat', 'swap':'swapFormat',
'cpuclock':'cpuclockFormat', 'custom':'customFormat', 'disk':'diskFormat',
'gpu':'gpuFormat', 'gputemp':'gputempFormat', 'hdd':'hddFormat',
'hddtemp':'hddtempFormat', 'mem':'memFormat', 'net':'netFormat',
'pkg':'pkgFormat', 'player':'playerFormat', 'ps':'psFormat', 'swap':'swapFormat',
'temp':'tempFormat', 'time':'timeFormat', 'uptime':'uptimeFormat'}
self.ptm['defaults']['bool'] = {'bat':0, 'cpu':2, 'cpuclock':0, 'custom':0,
'gpu':0, 'gputemp':0, 'hdd':0, 'hddtemp':0, 'mem':2, 'net':2, 'pkg':0,
'player':0, 'ps':0, 'swap':2, 'temp':0, 'time':0, 'uptime':0}
'disk':0, 'gpu':0, 'gputemp':0, 'hdd':0, 'hddtemp':0, 'mem':2, 'net':2,
'pkg':0, 'player':0, 'ps':0, 'swap':2, 'temp':0, 'time':0, 'uptime':0}
self.ptm['defaults']['format'] = {'bat':'[bat: $bat%$ac]', 'cpu':'[cpu: $cpu%]',
'cpuclock':'[mhz: $cpucl]', 'custom':'[$custom]', 'gpu':'[gpu: $gpu%]',
'gputemp':'[gpu temp: $gputemp°C]', 'hdd':'[hdd: $hdd0%]',
'cpuclock':'[mhz: $cpucl]', 'custom':'[$custom]', 'disk':'[disk: $hddr0/$hddw0 KB/s]',
'gpu':'[gpu: $gpu%]', 'gputemp':'[gpu temp: $gputemp°C]', 'hdd':'[hdd: $hdd0%]',
'hddtemp':'[hdd temp: $hddtemp0°C]', 'mem':'[mem: $mem%]',
'net':'[$netdev: $down/$upKB/s]', 'pkg':'[upgrade: $pkgcount0]',
'player':'[$artist - $title]', 'ps':'[proc: $pscount]', 'swap':'[swap: $swap%]',
'temp':'[temp: $temp0°C]', 'time':'[$time]', 'uptime':'[uptime: $uptime]'}
self.ptm['defaults']['order'] = {'1':'cpu', '2':'temp', '3':'mem', '4':'swap', '5':'net',
'6':'bat', '7':'cpuclock', '8':'uptime', '9':'gpu', 'a':'gputemp', 'b':'hdd',
'c':'hddtemp', 'd':'player', 'e':'time', 'f':'custom', 'g':'ps', 'h':'pkg'}
'c':'hddtemp', 'd':'player', 'e':'time', 'f':'custom', 'g':'ps', 'h':'pkg', 'i':'disk'}
# disk devices for r/w speed
self.ptm['defaults']['disk'] = []
# labels
self.ptm['labels'] = {}
self.ptm['layout'] = QGraphicsLinearLayout(Qt.Horizontal, self.applet)
self.ptm['layout'].setContentsMargins(1, 1, 1, 1)
# names
self.ptm['names'] = {}
self.ptm['names']['disk'] = []
self.ptm['names']['hdd'] = []
self.ptm['names']['hddtemp'] = []
self.ptm['names']['net'] = ""
@ -232,6 +241,8 @@ class pyTextWidget(plasmascript.Applet):
for i in range(numCores):
self.ptm['values']['cpu'][i] = 0.0
self.ptm['values']['cpuclock'][i] = 0.0
self.ptm['values']['disk-r'] = {}
self.ptm['values']['disk-w'] = {}
self.ptm['values']['hdd'] = {}
self.ptm['values']['hddmb'] = {}
self.ptm['values']['hddtemp'] = {}
@ -271,6 +282,8 @@ class pyTextWidget(plasmascript.Applet):
self.cpuText()
if (self.ptm['vars']['bools']['cpuclock'] > 0):
self.cpuclockText()
if (self.ptm['vars']['bools']['disk'] > 0):
self.diskText()
if (self.ptm['vars']['bools']['hdd'] > 0):
self.hddText()
if (self.ptm['vars']['bools']['hddtemp'] > 0):
@ -393,6 +406,25 @@ class pyTextWidget(plasmascript.Applet):
self.setText("cpuclock", text)
def diskText(self):
line = self.ptm['vars']['formats']['disk']
devices = range(len(self.ptm['names']['disk']))
devices.reverse()
for i in devices:
if (line.split('$hddr' + str(i))[0] != line):
hdd = "%4i" % (self.ptm['values']['disk-r'][self.ptm['names']['disk'][i]])
line = line.split('$hddr' + str(i))[0] +\
hdd +\
line.split('$hddr' + str(i))[1]
if (line.split('$hddw' + str(i))[0] != line):
hdd = "%4i" % (self.ptm['values']['disk-w'][self.ptm['names']['disk'][i]])
line = line.split('$hddw' + str(i))[0] +\
hdd +\
line.split('$hddw' + str(i))[1]
text = self.ptm['vars']['app']['format'][0] + line + self.ptm['vars']['app']['format'][1]
self.setText("disk", text)
def hddText(self):
"""function to set hdd text"""
line = self.ptm['vars']['formats']['hdd']
@ -517,11 +549,16 @@ class pyTextWidget(plasmascript.Applet):
"""function to read settings"""
self.ptm[name] = ptm
if (name == "names"):
for item in ['hdd', 'hddtemp', 'temp']:
for item in ['hddtemp', 'temp']:
for value in self.ptm['names'][item]:
self.ptm['values'][item][value] = 0.0
if (item == "hdd"):
self.ptm['values']['hddmb'][value] = 0.0
for value in self.ptm['names']['hdd']:
self.ptm['values']['hdd'][value] = 0.0
self.ptm['values']['hddmb'][value] = 0.0
for value in self.ptm['names']['disk']:
self.ptm['values']['disk-r'][value] = 0.0
self.ptm['values']['disk-w'][value] = 0.0
def connectToEngine(self):
@ -529,6 +566,7 @@ class pyTextWidget(plasmascript.Applet):
self.ptm['dataengine']['ext'] = self.dataEngine("ext-sysmon")
self.ptm['dataengine']['system'] = self.dataEngine("systemmonitor")
self.ptm['dataengine']['time'] = self.dataEngine("time")
QObject.connect(self.ptm['dataengine']['system'], SIGNAL("sourceAdded(QString)"), self.addDiskDevice)
self.dataengine.connectToEngine(self.ptm['vars']['bools'], self.ptm['dataengine'],
self.ptm['vars']['app']['interval'], self.ptm['names'])
@ -539,8 +577,8 @@ class pyTextWidget(plasmascript.Applet):
if (self.ptm['vars']['bools'][label] > 0):
self.addLabel(label, None, False)
keys = {'cpu':self.ptm['values']['cpu'].keys(), 'cpuclock':self.ptm['values']['cpuclock'].keys(),
'hdd':self.ptm['values']['hdd'].keys(), 'net':self.ptm['names']['net'],
'temp':self.ptm['values']['temp'].keys()}
'disk':self.ptm['values']['disk-r'].keys(), 'hdd':self.ptm['values']['hdd'].keys(),
'net':self.ptm['names']['net'], 'temp':self.ptm['values']['temp'].keys()}
self.dataengine.disconnectFromSource(self.ptm['dataengine'], keys, label)

View File

@ -194,6 +194,8 @@ class PTMNotify:
return self.createText("processor")
elif (name == "custom"):
return self.createText("system")
elif (name == "disk"):
return self.createText("disk")
elif (name == "gpu"):
return self.createText("graphical")
elif (name == "gputemp"):

View File

@ -71,6 +71,7 @@ class Reinit():
ptmVars['bools'][label] = settings.get(self.defaults['confBool'][label], self.defaults['bool'][label]).toInt()[0]
ptmNames = {}
ptmNames['disk'] = str(settings.get('disk', 'disk/sda_(8:0)')).split('@@')
ptmNames['hdd'] = str(settings.get('mount', '/')).split('@@')
ptmNames['hddtemp'] = str(settings.get('hdd', '/dev/sda')).split('@@')
if (ptmVars['adv']['netdevBool'] > 0):

View File

@ -66,7 +66,7 @@
<x>0</x>
<y>0</y>
<width>526</width>
<height>624</height>
<height>660</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_7">
@ -114,7 +114,7 @@ $custom - custom time format</string>
<number>1</number>
</property>
<property name="maximum">
<number>17</number>
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
@ -170,7 +170,7 @@ $custom - custom format</string>
<number>1</number>
</property>
<property name="maximum">
<number>17</number>
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
@ -236,7 +236,7 @@ $cpuN - load CPU for core N, %</string>
<number>1</number>
</property>
<property name="maximum">
<number>17</number>
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
@ -302,7 +302,7 @@ $cpuclN - CPU clock for core N, MHz</string>
<number>1</number>
</property>
<property name="maximum">
<number>17</number>
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
@ -360,7 +360,7 @@ $cpuclN - CPU clock for core N, MHz</string>
<number>1</number>
</property>
<property name="maximum">
<number>17</number>
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
@ -418,7 +418,7 @@ $cpuclN - CPU clock for core N, MHz</string>
<number>1</number>
</property>
<property name="maximum">
<number>17</number>
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
@ -476,7 +476,7 @@ $cpuclN - CPU clock for core N, MHz</string>
<number>1</number>
</property>
<property name="maximum">
<number>17</number>
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
@ -539,7 +539,7 @@ $memgb - RAM usage, GB</string>
<number>1</number>
</property>
<property name="maximum">
<number>17</number>
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
@ -602,7 +602,7 @@ $swapgb - swap usage, GB</string>
<number>1</number>
</property>
<property name="maximum">
<number>17</number>
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
@ -662,7 +662,7 @@ $hddgbN - usage for mount point N (from 0), GB. Example: $hddgb0</string>
<number>1</number>
</property>
<property name="maximum">
<number>17</number>
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
@ -680,6 +680,65 @@ $hddgbN - usage for mount point N (from 0), GB. Example: $hddgb0</string>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_hddSpeed">
<item>
<widget class="QCheckBox" name="checkBox_hddSpeed">
<property name="minimumSize">
<size>
<width>120</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>HDD speed</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_hddSpeed">
<property name="toolTip">
<string>$hddrN - read speed HDD N (from 0), KB/s. Example: $hddr0
$hddwN - write speed HDD N (from 0), KB/s. Example: $hddw0</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QSlider" name="slider_hddSpeed">
<property name="maximumSize">
<size>
<width>120</width>
<height>16777215</height>
</size>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
</property>
<property name="value">
<number>11</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="tickPosition">
<enum>QSlider::TicksAbove</enum>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="layout_hddTemp">
<item>
@ -691,7 +750,7 @@ $hddgbN - usage for mount point N (from 0), GB. Example: $hddgb0</string>
</size>
</property>
<property name="text">
<string>HDD Temp</string>
<string>HDD temp</string>
</property>
<property name="checked">
<bool>true</bool>
@ -720,13 +779,13 @@ $hddgbN - usage for mount point N (from 0), GB. Example: $hddgb0</string>
<number>1</number>
</property>
<property name="maximum">
<number>17</number>
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
</property>
<property name="value">
<number>11</number>
<number>12</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
@ -783,13 +842,13 @@ $netdev - current network device</string>
<number>1</number>
</property>
<property name="maximum">
<number>17</number>
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
</property>
<property name="value">
<number>12</number>
<number>13</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
@ -842,13 +901,13 @@ $ac - AC status</string>
<number>1</number>
</property>
<property name="maximum">
<number>17</number>
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
</property>
<property name="value">
<number>13</number>
<number>14</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
@ -904,13 +963,13 @@ $title - song title</string>
<number>1</number>
</property>
<property name="maximum">
<number>17</number>
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
</property>
<property name="value">
<number>14</number>
<number>15</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
@ -964,13 +1023,13 @@ $ps - list of running processes comma separated</string>
<number>1</number>
</property>
<property name="maximum">
<number>17</number>
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
</property>
<property name="value">
<number>15</number>
<number>16</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
@ -1022,13 +1081,13 @@ $ps - list of running processes comma separated</string>
<number>1</number>
</property>
<property name="maximum">
<number>17</number>
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
</property>
<property name="value">
<number>16</number>
<number>17</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
@ -1080,13 +1139,13 @@ $ps - list of running processes comma separated</string>
<number>1</number>
</property>
<property name="maximum">
<number>17</number>
<number>18</number>
</property>
<property name="pageStep">
<number>1</number>
</property>
<property name="value">
<number>17</number>
<number>18</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
@ -1131,9 +1190,9 @@ $ps - list of running processes comma separated</string>
<property name="geometry">
<rect>
<x>0</x>
<y>-102</y>
<y>0</y>
<width>526</width>
<height>642</height>
<height>754</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_8">
@ -1370,6 +1429,58 @@ del - remove item</string>
<widget class="QListWidget" name="listWidget_mount">
<property name="toolTip">
<string>Editable
del - remove item</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="layout_hddSpeedDevice">
<item>
<layout class="QHBoxLayout" name="layout_hddSpeedDeviceSelect">
<item>
<widget class="QLabel" name="label_hddSpeedDevice">
<property name="minimumSize">
<size>
<width>120</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>HDD devices (speed)</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="comboBox_hddSpeedDevice">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_hddSpeedDevice">
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Add</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QListWidget" name="listWidget_hddSpeedDevice">
<property name="toolTip">
<string>Editable
del - remove item</string>
</property>
</widget>
@ -1389,7 +1500,7 @@ del - remove item</string>
</size>
</property>
<property name="text">
<string>HDD devices</string>
<string>HDD devices (temp)</string>
</property>
</widget>
</item>
@ -1697,8 +1808,8 @@ del - remove item</string>
<rect>
<x>0</x>
<y>0</y>
<width>544</width>
<height>504</height>
<width>326</width>
<height>227</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_9">
@ -2031,8 +2142,8 @@ del - remove item</string>
<rect>
<x>0</x>
<y>0</y>
<width>544</width>
<height>540</height>
<width>326</width>
<height>190</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_10">
@ -2365,8 +2476,8 @@ del - remove item</string>
<rect>
<x>0</x>
<y>0</y>
<width>544</width>
<height>540</height>
<width>326</width>
<height>302</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_11">
@ -2736,6 +2847,9 @@ del - remove item</string>
<tabstop>lineEdit_hdd</tabstop>
<tabstop>slider_hdd</tabstop>
<tabstop>checkBox_hddTemp</tabstop>
<tabstop>checkBox_hddSpeed</tabstop>
<tabstop>lineEdit_hddSpeed</tabstop>
<tabstop>slider_hddSpeed</tabstop>
<tabstop>lineEdit_hddTemp</tabstop>
<tabstop>slider_hddTemp</tabstop>
<tabstop>checkBox_net</tabstop>
@ -2766,6 +2880,9 @@ del - remove item</string>
<tabstop>comboBox_mount</tabstop>
<tabstop>pushButton_mount</tabstop>
<tabstop>listWidget_mount</tabstop>
<tabstop>comboBox_hddSpeedDevice</tabstop>
<tabstop>pushButton_hddSpeedDevice</tabstop>
<tabstop>listWidget_hddSpeedDevice</tabstop>
<tabstop>comboBox_hddDevice</tabstop>
<tabstop>pushButton_hddDevice</tabstop>
<tabstop>listWidget_hddDevice</tabstop>