diff --git a/screenshots/config.png b/screenshots/config.png index 4ac811d..3927a70 100644 Binary files a/screenshots/config.png and b/screenshots/config.png differ diff --git a/source/contents/code/configwindow.py b/source/contents/code/configwindow.py index b1a75a8..e37f2cc 100644 --- a/source/contents/code/configwindow.py +++ b/source/contents/code/configwindow.py @@ -10,6 +10,7 @@ from PyKDE4 import plasmascript class ConfigWindow(QWidget): def __init__(self, parent, settings): + """Settings window definition""" QWidget.__init__(self) self.ui = uic.loadUi(parent.package().filePath('ui', 'configwindow.ui'), self) self.parent = parent @@ -21,40 +22,246 @@ class ConfigWindow(QWidget): QObject.connect(self.ui.checkBox_swap, SIGNAL("stateChanged(int)"), self.swapStatus) QObject.connect(self.ui.checkBox_temp, SIGNAL("stateChanged(int)"), self.tempStatus) + QObject.connect(self.ui.slider_bat, SIGNAL("valueChanged(int)"), self.setBat) + QObject.connect(self.ui.slider_cpu, SIGNAL("valueChanged(int)"), self.setCpu) + QObject.connect(self.ui.slider_mem, SIGNAL("valueChanged(int)"), self.setMem) + QObject.connect(self.ui.slider_net, SIGNAL("valueChanged(int)"), self.setNet) + QObject.connect(self.ui.slider_swap, SIGNAL("valueChanged(int)"), self.setSwap) + QObject.connect(self.ui.slider_temp, SIGNAL("valueChanged(int)"), self.setTemp) + def batStatus(self): + """function to enable battery label""" if (self.ui.checkBox_bat.checkState() == 2): self.ui.lineEdit_bat.setEnabled(True) + self.ui.slider_bat.setEnabled(True) + self.setSlider() else: self.ui.lineEdit_bat.setDisabled(True) + self.ui.slider_bat.setDisabled(True) + self.setSlider() def cpuStatus(self): + """function to enable cpu label""" if (self.ui.checkBox_cpu.checkState() == 2): self.ui.lineEdit_cpu.setEnabled(True) + self.ui.slider_cpu.setEnabled(True) + self.setSlider() else: self.ui.lineEdit_cpu.setDisabled(True) + self.ui.slider_cpu.setDisabled(True) + self.setSlider() def memStatus(self): + """function to enable memory label""" if (self.ui.checkBox_mem.checkState() == 2): self.ui.lineEdit_mem.setEnabled(True) + self.ui.slider_mem.setEnabled(True) + self.setSlider() else: self.ui.lineEdit_mem.setDisabled(True) + self.ui.slider_mem.setDisabled(True) + self.setSlider() def netStatus(self): + """function to enable network label""" if (self.ui.checkBox_net.checkState() == 2): self.ui.lineEdit_net.setEnabled(True) self.ui.comboBox_numNet.setEnabled(True) + self.ui.slider_net.setEnabled(True) + self.setSlider() else: self.ui.lineEdit_net.setDisabled(True) self.ui.comboBox_numNet.setDisabled(True) + self.ui.slider_net.setDisabled(True) + self.setSlider() def swapStatus(self): + """function to enable swap label""" if (self.ui.checkBox_swap.checkState() == 2): self.ui.lineEdit_swap.setEnabled(True) + self.ui.slider_swap.setEnabled(True) + self.setSlider() else: self.ui.lineEdit_swap.setDisabled(True) + self.ui.slider_swap.setDisabled(True) + self.setSlider() def tempStatus(self): + """function to enable temperature label""" if (self.ui.checkBox_temp.checkState() == 2): self.ui.lineEdit_temp.setEnabled(True) + self.ui.slider_temp.setEnabled(True) + self.setSlider() else: - self.ui.lineEdit_temp.setDisabled(True) \ No newline at end of file + self.ui.lineEdit_temp.setDisabled(True) + self.ui.slider_temp.setDisabled(True) + self.setSlider() + + def setBat(self): + """function to set sliders""" + if (self.ui.checkBox_cpu.checkState() == 2): + if (self.ui.slider_cpu.value() == self.ui.slider_bat.value()): + self.ui.slider_cpu.setValue(self.oldValue()) + if (self.ui.checkBox_mem.checkState() == 2): + if (self.ui.slider_mem.value() == self.ui.slider_bat.value()): + self.ui.slider_mem.setValue(self.oldValue()) + if (self.ui.checkBox_net.checkState() == 2): + if (self.ui.slider_net.value() == self.ui.slider_bat.value()): + self.ui.slider_net.setValue(self.oldValue()) + if (self.ui.checkBox_swap.checkState() == 2): + if (self.ui.slider_swap.value() == self.ui.slider_bat.value()): + self.ui.slider_swap.setValue(self.oldValue()) + if (self.ui.checkBox_temp.checkState() == 2): + if (self.ui.slider_temp.value() == self.ui.slider_bat.value()): + self.ui.slider_temp.setValue(self.oldValue()) + + def setCpu(self): + """function to set sliders""" + if (self.ui.checkBox_bat.checkState() == 2): + if (self.ui.slider_bat.value() == self.ui.slider_cpu.value()): + self.ui.slider_bat.setValue(self.oldValue()) + if (self.ui.checkBox_mem.checkState() == 2): + if (self.ui.slider_mem.value() == self.ui.slider_cpu.value()): + self.ui.slider_mem.setValue(self.oldValue()) + if (self.ui.checkBox_net.checkState() == 2): + if (self.ui.slider_net.value() == self.ui.slider_cpu.value()): + self.ui.slider_net.setValue(self.oldValue()) + if (self.ui.checkBox_swap.checkState() == 2): + if (self.ui.slider_swap.value() == self.ui.slider_cpu.value()): + self.ui.slider_swap.setValue(self.oldValue()) + if (self.ui.checkBox_temp.checkState() == 2): + if (self.ui.slider_temp.value() == self.ui.slider_cpu.value()): + self.ui.slider_temp.setValue(self.oldValue()) + + def setMem(self): + """function to set sliders""" + if (self.ui.checkBox_bat.checkState() == 2): + if (self.ui.slider_bat.value() == self.ui.slider_mem.value()): + self.ui.slider_bat.setValue(self.oldValue()) + if (self.ui.checkBox_cpu.checkState() == 2): + if (self.ui.slider_cpu.value() == self.ui.slider_mem.value()): + self.ui.slider_cpu.setValue(self.oldValue()) + if (self.ui.checkBox_net.checkState() == 2): + if (self.ui.slider_net.value() == self.ui.slider_mem.value()): + self.ui.slider_net.setValue(self.oldValue()) + if (self.ui.checkBox_swap.checkState() == 2): + if (self.ui.slider_swap.value() == self.ui.slider_mem.value()): + self.ui.slider_swap.setValue(self.oldValue()) + if (self.ui.checkBox_temp.checkState() == 2): + if (self.ui.slider_temp.value() == self.ui.slider_mem.value()): + self.ui.slider_temp.setValue(self.oldValue()) + + def setNet(self): + """function to set sliders""" + if (self.ui.checkBox_bat.checkState() == 2): + if (self.ui.slider_bat.value() == self.ui.slider_net.value()): + self.ui.slider_bat.setValue(self.oldValue()) + if (self.ui.checkBox_cpu.checkState() == 2): + if (self.ui.slider_cpu.value() == self.ui.slider_net.value()): + self.ui.slider_cpu.setValue(self.oldValue()) + if (self.ui.checkBox_mem.checkState() == 2): + if (self.ui.slider_mem.value() == self.ui.slider_net.value()): + self.ui.slider_mem.setValue(self.oldValue()) + if (self.ui.checkBox_swap.checkState() == 2): + if (self.ui.slider_swap.value() == self.ui.slider_net.value()): + self.ui.slider_swap.setValue(self.oldValue()) + if (self.ui.checkBox_temp.checkState() == 2): + if (self.ui.slider_temp.value() == self.ui.slider_net.value()): + self.ui.slider_temp.setValue(self.oldValue()) + + def setSwap(self): + """function to set sliders""" + if (self.ui.checkBox_bat.checkState() == 2): + if (self.ui.slider_bat.value() == self.ui.slider_swap.value()): + self.ui.slider_bat.setValue(self.oldValue()) + if (self.ui.checkBox_cpu.checkState() == 2): + if (self.ui.slider_cpu.value() == self.ui.slider_swap.value()): + self.ui.slider_cpu.setValue(self.oldValue()) + if (self.ui.checkBox_mem.checkState() == 2): + if (self.ui.slider_mem.value() == self.ui.slider_swap.value()): + self.ui.slider_mem.setValue(self.oldValue()) + if (self.ui.checkBox_net.checkState() == 2): + if (self.ui.slider_net.value() == self.ui.slider_swap.value()): + self.ui.slider_net.setValue(self.oldValue()) + if (self.ui.checkBox_net.checkState() == 2): + if (self.ui.slider_temp.value() == self.ui.slider_swap.value()): + self.ui.slider_temp.setValue(self.oldValue()) + + def setTemp(self): + """function to set sliders""" + if (self.ui.checkBox_bat.checkState() == 2): + if (self.ui.slider_bat.value() == self.ui.slider_temp.value()): + self.ui.slider_bat.setValue(self.oldValue()) + if (self.ui.checkBox_cpu.checkState() == 2): + if (self.ui.slider_cpu.value() == self.ui.slider_temp.value()): + self.ui.slider_cpu.setValue(self.oldValue()) + if (self.ui.checkBox_mem.checkState() == 2): + if (self.ui.slider_mem.value() == self.ui.slider_temp.value()): + self.ui.slider_mem.setValue(self.oldValue()) + if (self.ui.checkBox_net.checkState() == 2): + if (self.ui.slider_net.value() == self.ui.slider_temp.value()): + self.ui.slider_net.setValue(self.oldValue()) + if (self.ui.checkBox_swap.checkState() == 2): + if (self.ui.slider_swap.value() == self.ui.slider_temp.value()): + self.ui.slider_swap.setValue(self.oldValue()) + + def setSlider(self): + """function to reset sliders""" + self.ui.slider_bat.setMaximum(6) + self.ui.slider_cpu.setMaximum(6) + self.ui.slider_mem.setMaximum(6) + self.ui.slider_net.setMaximum(6) + self.ui.slider_swap.setMaximum(6) + self.ui.slider_temp.setMaximum(6) + count = 0 + if (self.ui.checkBox_bat.checkState() == 2): + count += 1 + self.ui.slider_bat.setValue(count) + if (self.ui.checkBox_cpu.checkState() == 2): + count += 1 + self.ui.slider_cpu.setValue(count) + if (self.ui.checkBox_mem.checkState() == 2): + count += 1 + self.ui.slider_mem.setValue(count) + if (self.ui.checkBox_net.checkState() == 2): + count += 1 + self.ui.slider_net.setValue(count) + if (self.ui.checkBox_swap.checkState() == 2): + count += 1 + self.ui.slider_swap.setValue(count) + if (self.ui.checkBox_temp.checkState() == 2): + count += 1 + self.ui.slider_temp.setValue(count) + self.ui.slider_bat.setMaximum(count) + self.ui.slider_cpu.setMaximum(count) + self.ui.slider_mem.setMaximum(count) + self.ui.slider_net.setMaximum(count) + self.ui.slider_swap.setMaximum(count) + self.ui.slider_temp.setMaximum(count) + + def oldValue(self): + """function for set* functions""" + oldOrder = "------" + count = 0 + if (self.ui.checkBox_bat.checkState() == 2): + oldOrder = oldOrder[:5] + str(self.ui.slider_bat.value()) + count += 1 + if (self.ui.checkBox_cpu.checkState() == 2): + oldOrder = str(self.ui.slider_cpu.value()) + oldOrder[0:] + count += 1 + if (self.ui.checkBox_mem.checkState() == 2): + oldOrder = oldOrder[:2] + str(self.ui.slider_mem.value()) + oldOrder[3:] + count += 1 + if (self.ui.checkBox_net.checkState() == 2): + oldOrder = oldOrder[:4] + str(self.ui.slider_net.value()) + oldOrder[5:] + count += 1 + if (self.ui.checkBox_swap.checkState() == 2): + oldOrder = oldOrder[:3] + str(self.ui.slider_swap.value()) + oldOrder[4:] + count += 1 + if (self.ui.checkBox_temp.checkState() == 2): + oldOrder = oldOrder[:1] + str(self.ui.slider_temp.value()) + oldOrder[2:] + count += 1 + + for value in range(count+1): + if ((oldOrder.find(str(value)) == -1) and (int(value) != 0)): + return int(value) \ No newline at end of file diff --git a/source/contents/code/main.py b/source/contents/code/main.py index 0a64bc2..8613c72 100755 --- a/source/contents/code/main.py +++ b/source/contents/code/main.py @@ -16,7 +16,7 @@ import commands, os, time class pyTextWidget(plasmascript.Applet): - def __init__(self,parent, args=None): + def __init__(self, parent, args=None): """widget definition""" plasmascript.Applet.__init__(self,parent) @@ -25,108 +25,8 @@ class pyTextWidget(plasmascript.Applet): self._name = str(self.package().metadata().pluginName()) self.layout = QGraphicsLinearLayout(Qt.Horizontal, self.applet) self.setHasConfigurationInterface(True) - self.resize(10,10) - # initial configuration - self.settings = Config(self) - self.interval = int(self.settings.get('interval', '2000')) - self.font_family = str(self.settings.get('font_family', 'Terminus')) - self.font_size = int(self.settings.get('font_size', 12)) - self.font_color = str(self.settings.get('font_color', '#000000')) - self.font_style = str(self.settings.get('font_style', 'normal')) - self.formatLine = "" - self.formatLine = self.formatLine + "

$LINE"
-        self.formatLine = self.formatLine + "

" - - self.cpuBool = self.settings.get('cpuBool', True) - if (self.cpuBool): - self.cpuFormat = str(self.settings.get('cpuFormat', '[cpu: $cpu%]')) - self.label_cpu = Plasma.Label(self.applet) - text = self.formatLine.split('$LINE')[0] + self.cpuFormat.split('$cpu')[0] + '-----' + self.cpuFormat.split('$cpu')[1] + self.formatLine.split('$LINE')[1] - self.label_cpu.setText(text) - self.layout.addItem(self.label_cpu) - - self.tempBool = self.settings.get('tempBool', True) - if (self.tempBool): - self.tempFormat = str(self.settings.get('tempFormat', '[temp: $temp°C]')) - self.setupTemp() - self.label_temp = Plasma.Label(self.applet) - text = self.formatLine.split('$LINE')[0] + self.tempFormat.split('$temp')[0] + '----' + self.tempFormat.split('$temp')[1] + self.formatLine.split('$LINE')[1] - self.label_temp.setText(text) - self.layout.addItem(self.label_temp) - - self.memBool = self.settings.get('memBool', True) - if (self.memBool): - self.memFormat = str(self.settings.get('memFormat', '[mem: $mem%]')) - if (self.memFormat.split('$memmb')[0] != self.memFormat): - self.memInMb = True - text = self.formatLine.split('$LINE')[0] + self.memFormat.split('$memmb')[0] + '-----' + self.memFormat.split('$memmb')[1] + self.formatLine.split('$LINE')[1] - else: - self.memInMb = False - self.mem_used = 0.0 - self.mem_free = 1.0 - self.mem_uf = 0.0 - text = self.formatLine.split('$LINE')[0] + self.memFormat.split('$mem')[0] + '-----' + self.memFormat.split('$mem')[1] + self.formatLine.split('$LINE')[1] - self.label_mem = Plasma.Label(self.applet) - self.label_mem.setText(text) - self.layout.addItem(self.label_mem) - - self.swapBool = self.settings.get('swapBool', True) - if (self.swapBool): - self.swapFormat = str(self.settings.get('swapFormat', '[swap: $swap%]')) - if (self.swapFormat.split('$swapmb')[0] != self.swapFormat): - self.swapInMb = True - text = self.formatLine.split('$LINE')[0] + self.swapFormat.split('$swapmb')[0] + '-----' + self.swapFormat.split('$swapmb')[1] + self.formatLine.split('$LINE')[1] - else: - self.swapInMb = False - text = self.formatLine.split('$LINE')[0] + self.swapFormat.split('$swap')[0] + '-----' + self.swapFormat.split('$swap')[1] + self.formatLine.split('$LINE')[1] - self.swap_free = 1.0 - self.swap_used = 0.0 - self.label_swap = Plasma.Label(self.applet) - self.label_swap.setText(text) - self.layout.addItem(self.label_swap) - - self.netBool = self.settings.get('netBool', True) - if (self.netBool): - self.netNonFormat = str(self.settings.get('netNonFormat', '[net: $netKB/s]')) - if (self.netNonFormat.split('@@netdev=')[0] != self.netNonFormat): - self.netdev = self.netNonFormat.split('@@')[1].split('netdev=')[1] - self.netNonFormat = self.netNonFormat.split('@@')[0] + self.netNonFormat.split('@@')[2] - else: - self.num_dev = int(self.settings.get('num_dev', 0)) - self.setupNetdev() - if (self.netNonFormat.split('$netdev')[0] != self.netNonFormat): - self.netFormat = self.netNonFormat.split('$netdev')[0] + self.netdev + self.netNonFormat.split('$netdev')[1] - else: - self.netFormat = self.netNonFormat - self.label_netDown = Plasma.Label(self.applet) - text = self.formatLine.split('$LINE')[0] + self.netFormat.split('$net')[0] + '----' + self.formatLine.split('$LINE')[1] - self.label_netDown.setText(text) - self.layout.addItem(self.label_netDown) - self.label_netUp = Plasma.Label(self.applet) - text = self.formatLine.split('$LINE')[0] + '/----' + self.netFormat.split('$net')[1] + self.formatLine.split('$LINE')[1] - self.label_netUp.setText(text) - self.layout.addItem(self.label_netUp) - - self.batBool = self.settings.get('batBool', True) - if (self.batBool): - self.batFormat = str(self.settings.get('batFormat', '[bat: $bat%]')) - self.label_bat = Plasma.Label(self.applet) - text = self.formatLine.split('$LINE')[0] + self.batFormat.split('$bat')[0] + '---' + self.batFormat.split('$bat')[1] + self.formatLine.split('$LINE')[1] - self.label_bat.setText(text) - self.layout.addItem(self.label_bat) - - self.applet.setLayout(self.layout) - self.theme = Plasma.Svg(self) - self.theme.setImagePath("widgets/background") - self.setBackgroundHints(Plasma.Applet.DefaultBackground) - - # start timer - self.connectToEngine() - self.timer = QtCore.QTimer() - self.timer.setInterval(self.interval) - self.startPolling() + self.reinit() def configAccepted(self): """function to accept settings""" @@ -141,70 +41,119 @@ class pyTextWidget(plasmascript.Applet): self.settings.set('font_color', self.font_color) self.font_style = str(self.configpage.ui.lineEdit_style.text()) self.settings.set('font_style', self.font_style) - self.formatLine = "" - self.formatLine = self.formatLine + "

$LINE"
-        self.formatLine = self.formatLine + "

" + # disconnecting from source and clear layout + if (self.cpuBool): + self.systemmonitor.disconnectSource("cpu/system/TotalLoad", self) + self.label_cpu.setText('') + self.layout.removeItem(self.label_cpu) + if (self.tempBool): + self.systemmonitor.disconnectSource(self.tempdev, self) + self.label_temp.setText('') + self.layout.removeItem(self.label_temp) + if (self.memBool): + if (self.memInMb): + self.systemmonitor.disconnectSource("mem/physical/application", self) + else: + self.systemmonitor.disconnectSource("mem/physical/free", self) + self.systemmonitor.disconnectSource("mem/physical/used", self) + self.systemmonitor.disconnectSource("mem/physical/application", self) + self.label_mem.setText('') + self.layout.removeItem(self.label_mem) + if (self.swapBool): + if (self.swapInMb): + self.systemmonitor.disconnectSource("mem/swap/used", self) + else: + self.systemmonitor.disconnectSource("mem/swap/free", self) + self.systemmonitor.disconnectSource("mem/swap/used", self) + self.label_swap.setText('') + self.layout.removeItem(self.label_swap) + if (self.netBool): + self.systemmonitor.disconnectSource("network/interfaces/", self) + self.systemmonitor.disconnectSource("network/interfaces/", self) + self.label_netDown.setText('') + self.label_netUp.setText('') + self.layout.removeItem(self.label_netUp) + self.layout.removeItem(self.label_netDown) + if (self.batBool): + self.label_bat.setText('') + self.layout. removeItem(self.label_bat) + + self.label_order = "------" if (self.configpage.ui.checkBox_cpu.checkState() == 2): self.cpuBool = True - self.cpuFormat = str(self.configpage.ui.lineEdit_cpu.text()) - self.settings.set('cpuFormat', self.cpuFormat) + pos = self.configpage.ui.slider_cpu.value() - 1 + self.label_order = self.label_order[:pos] + "1" + self.label_order[pos+1:] else: self.cpuBool = False + self.cpuFormat = str(self.configpage.ui.lineEdit_cpu.text()) self.settings.set('cpuBool', self.cpuBool) + self.settings.set('cpuFormat', self.cpuFormat) if (self.configpage.ui.checkBox_temp.checkState() == 2): self.tempBool = True - self.tempFormat = str(self.configpage.ui.lineEdit_temp.text()) - self.settings.set('tempFormat', self.tempFormat) + pos = self.configpage.ui.slider_temp.value() - 1 + self.label_order = self.label_order[:pos] + "2" + self.label_order[pos+1:] else: self.tempBool = False + self.tempFormat = str(self.configpage.ui.lineEdit_temp.text()) self.settings.set('tempBool', self.tempBool) + self.settings.set('tempFormat', self.tempFormat) if (self.configpage.ui.checkBox_mem.checkState() == 2): self.memBool = True - self.memFormat = str(self.configpage.ui.lineEdit_mem.text()) - self.settings.set('memFormat', self.memFormat) + pos = self.configpage.ui.slider_mem.value() - 1 + self.label_order = self.label_order[:pos] + "3" + self.label_order[pos+1:] else: self.memBool = False + self.memFormat = str(self.configpage.ui.lineEdit_mem.text()) self.settings.set('memBool', self.memBool) + self.settings.set('memFormat', self.memFormat) if (self.configpage.ui.checkBox_swap.checkState() == 2): self.swapBool = True - self.swapFormat = str(self.configpage.ui.lineEdit_swap.text()) - self.settings.set('swapFormat', self.swapFormat) + pos = self.configpage.ui.slider_swap.value() - 1 + self.label_order = self.label_order[:pos] + "4" + self.label_order[pos+1:] else: self.swapBool = False + self.swapFormat = str(self.configpage.ui.lineEdit_swap.text()) self.settings.set('swapBool', self.swapBool) + self.settings.set('swapFormat', self.swapFormat) if (self.configpage.ui.checkBox_net.checkState() == 2): self.netBool = True - self.netFormat = str(self.configpage.ui.lineEdit_net.text()) - self.num_dev = int(self.configpage.ui.comboBox_numNet.currentIndex()) - self.settings.set('netFormat', self.netFormat) - self.settings.set('num_dev', self.num_dev) + pos = self.configpage.ui.slider_net.value() - 1 + self.label_order = self.label_order[:pos] + "5" + self.label_order[pos+1:] + else: self.netBool = False + self.netNonFormat = str(self.configpage.ui.lineEdit_net.text()) + self.num_dev = int(self.configpage.ui.comboBox_numNet.currentIndex()) self.settings.set('netBool', self.netBool) + self.settings.set('netNonFormat', self.netNonFormat) + self.settings.set('num_dev', self.num_dev) if (self.configpage.ui.checkBox_bat.checkState() == 2): self.batBool = True - self.batFormat = str(self.configpage.ui.lineEdit_bat.text()) - self.settings.set('batFormat', self.batFormat) + pos = self.configpage.ui.slider_bat.value() - 1 + self.label_order = self.label_order[:pos] + "6" + self.label_order[pos+1:] else: self.batBool = False - self.settings.set('batBool', self.batBool) + self.batFormat = str(self.configpage.ui.lineEdit_bat.text()) + self.settings.set('batBool', self.batBool) - # update timer - self.timer.setInterval(self.interval) - self.startPolling() + self.label_order = self.label_order.split('-')[0] + self.settings.set('label_order', self.label_order) + self.settings.set('batFormat', self.batFormat) + + # reinitializate + self.reinit() def createConfigurationInterface(self, parent): """function to setup configuration window""" self.configpage = ConfigWindow(self, self.settings) - font = QFont(str(self.settings.get('font_family', 'Terminus')), int(self.settings.get('font_size', 12)), int(int(self.settings.get('font_weight', 50)))) + font = QFont(str(self.settings.get('font_family', 'Terminus')), int(self.settings.get('font_size', 12)), 50) self.configpage.ui.spinBox_interval.setValue(int(self.settings.get('interval', '2000'))) self.configpage.ui.fontComboBox.setCurrentFont(font) self.configpage.ui.spinBox_fontSize.setValue(int(self.settings.get('font_size', 12))) @@ -213,53 +162,77 @@ class pyTextWidget(plasmascript.Applet): if (self.cpuBool): self.configpage.ui.checkBox_cpu.setCheckState(2) + self.configpage.ui.slider_cpu.setMaximum(len(self.label_order)) + self.configpage.ui.slider_cpu.setValue(self.label_order.find("1")+1) + self.configpage.ui.slider_cpu.setEnabled(True) self.configpage.ui.lineEdit_cpu.setEnabled(True) self.configpage.ui.lineEdit_cpu.setText(str(self.settings.get('cpuFormat', '[cpu: $cpu%]'))) else: self.configpage.ui.checkBox_cpu.setCheckState(0) + self.configpage.ui.slider_cpu.setDisabled(True) self.configpage.ui.lineEdit_cpu.setDisabled(True) if (self.tempBool): self.configpage.ui.checkBox_temp.setCheckState(2) + self.configpage.ui.slider_temp.setMaximum(len(self.label_order)) + self.configpage.ui.slider_temp.setValue(self.label_order.find("2")+1) + self.configpage.ui.slider_temp.setEnabled(True) self.configpage.ui.lineEdit_temp.setEnabled(True) self.configpage.ui.lineEdit_temp.setText(str(self.settings.get('tempFormat', '[temp: $temp°C]'))) else: self.configpage.ui.checkBox_temp.setCheckState(0) + self.configpage.ui.slider_temp.setDisabled(True) self.configpage.ui.lineEdit_temp.setDisabled(True) if (self.memBool): self.configpage.ui.checkBox_mem.setCheckState(2) + self.configpage.ui.slider_mem.setMaximum(len(self.label_order)) + self.configpage.ui.slider_mem.setValue(self.label_order.find("3")+1) + self.configpage.ui.slider_mem.setEnabled(True) self.configpage.ui.lineEdit_mem.setEnabled(True) self.configpage.ui.lineEdit_mem.setText(str(self.settings.get('memFormat', '[mem: $mem%]'))) else: self.configpage.ui.checkBox_mem.setCheckState(0) + self.configpage.ui.slider_mem.setDisabled(True) self.configpage.ui.lineEdit_mem.setDisabled(True) if (self.swapBool): self.configpage.ui.checkBox_swap.setCheckState(2) + self.configpage.ui.slider_swap.setMaximum(len(self.label_order)) + self.configpage.ui.slider_swap.setValue(self.label_order.find("4")+1) + self.configpage.ui.slider_swap.setEnabled(True) self.configpage.ui.lineEdit_swap.setEnabled(True) self.configpage.ui.lineEdit_swap.setText(str(self.settings.get('swapFormat', '[swap: $swap%]'))) else: self.configpage.ui.checkBox_swap.setCheckState(0) + self.configpage.ui.slider_swap.setDisabled(True) self.configpage.ui.lineEdit_swap.setDisabled(True) if (self.netBool): self.configpage.ui.checkBox_net.setCheckState(2) + self.configpage.ui.slider_net.setMaximum(len(self.label_order)) + self.configpage.ui.slider_net.setValue(self.label_order.find("5")+1) + self.configpage.ui.slider_net.setEnabled(True) self.configpage.ui.lineEdit_net.setEnabled(True) self.configpage.ui.comboBox_numNet.setEnabled(True) self.configpage.ui.comboBox_numNet.setCurrentIndex(int(self.settings.get('num_dev', 0))) self.configpage.ui.lineEdit_net.setText(str(self.settings.get('netNonFormat', '[net: $net%]'))) else: self.configpage.ui.checkBox_swap.setCheckState(0) + self.configpage.ui.slider_net.setDisabled(True) self.configpage.ui.comboBox_numNet.setDisabled(True) self.configpage.ui.lineEdit_swap.setDisabled(True) if (self.batBool): self.configpage.ui.checkBox_bat.setCheckState(2) + self.configpage.ui.slider_bat.setMaximum(len(self.label_order)) + self.configpage.ui.slider_bat.setValue(self.label_order.find("6")+1) + self.configpage.ui.slider_bat.setEnabled(True) self.configpage.ui.lineEdit_bat.setEnabled(True) self.configpage.ui.lineEdit_bat.setText(str(self.settings.get('batFormat', '[bat: $bat%]'))) else: self.configpage.ui.checkBox_bat.setCheckState(0) + self.configpage.ui.slider_bat.setDisabled(True) self.configpage.ui.lineEdit_bat.setDisabled(True) # add config page @@ -268,6 +241,112 @@ class pyTextWidget(plasmascript.Applet): parent.okClicked.connect(self.configAccepted) + def reinit(self): + """function to reinitializate widget""" + self.settings = Config(self) + self.interval = int(self.settings.get('interval', 2000)) + self.font_family = str(self.settings.get('font_family', 'Terminus')) + self.font_size = int(self.settings.get('font_size', 12)) + self.font_color = str(self.settings.get('font_color', '#000000')) + self.font_style = str(self.settings.get('font_style', 'normal')) + self.formatLine = "" + self.formatLine = self.formatLine + "

$LINE"
+        self.formatLine = self.formatLine + "

" + self.label_order = str(self.settings.get('label_order', '123456')) + + for order in self.label_order: + if (order == "1"): + self.cpuBool = self.settings.get('cpuBool', True) + if (self.cpuBool): + self.cpuFormat = str(self.settings.get('cpuFormat', '[cpu: $cpu%]')) + self.label_cpu = Plasma.Label(self.applet) + text = self.formatLine.split('$LINE')[0] + self.cpuFormat.split('$cpu')[0] + '-----' + self.cpuFormat.split('$cpu')[1] + self.formatLine.split('$LINE')[1] + self.label_cpu.setText(text) + self.layout.addItem(self.label_cpu) + elif (order == "2"): + self.tempBool = self.settings.get('tempBool', True) + if (self.tempBool): + self.tempFormat = str(self.settings.get('tempFormat', '[temp: $temp°C]')) + self.setupTemp() + self.label_temp = Plasma.Label(self.applet) + text = self.formatLine.split('$LINE')[0] + self.tempFormat.split('$temp')[0] + '----' + self.tempFormat.split('$temp')[1] + self.formatLine.split('$LINE')[1] + self.label_temp.setText(text) + self.layout.addItem(self.label_temp) + elif (order == "3"): + self.memBool = self.settings.get('memBool', True) + if (self.memBool): + self.memFormat = str(self.settings.get('memFormat', '[mem: $mem%]')) + if (self.memFormat.split('$memmb')[0] != self.memFormat): + self.memInMb = True + text = self.formatLine.split('$LINE')[0] + self.memFormat.split('$memmb')[0] + '-----' + self.memFormat.split('$memmb')[1] + self.formatLine.split('$LINE')[1] + else: + self.memInMb = False + self.mem_used = 0.0 + self.mem_free = 1.0 + self.mem_uf = 0.0 + text = self.formatLine.split('$LINE')[0] + self.memFormat.split('$mem')[0] + '-----' + self.memFormat.split('$mem')[1] + self.formatLine.split('$LINE')[1] + self.label_mem = Plasma.Label(self.applet) + self.label_mem.setText(text) + self.layout.addItem(self.label_mem) + elif (order == "4"): + self.swapBool = self.settings.get('swapBool', True) + if (self.swapBool): + self.swapFormat = str(self.settings.get('swapFormat', '[swap: $swap%]')) + if (self.swapFormat.split('$swapmb')[0] != self.swapFormat): + self.swapInMb = True + text = self.formatLine.split('$LINE')[0] + self.swapFormat.split('$swapmb')[0] + '-----' + self.swapFormat.split('$swapmb')[1] + self.formatLine.split('$LINE')[1] + else: + self.swapInMb = False + text = self.formatLine.split('$LINE')[0] + self.swapFormat.split('$swap')[0] + '-----' + self.swapFormat.split('$swap')[1] + self.formatLine.split('$LINE')[1] + self.swap_free = 1.0 + self.swap_used = 0.0 + self.label_swap = Plasma.Label(self.applet) + self.label_swap.setText(text) + self.layout.addItem(self.label_swap) + elif (order == "5"): + self.netBool = self.settings.get('netBool', True) + if (self.netBool): + self.netNonFormat = str(self.settings.get('netNonFormat', '[net: $netKB/s]')) + if (self.netNonFormat.split('@@netdev=')[0] != self.netNonFormat): + self.netdev = self.netNonFormat.split('@@')[1].split('netdev=')[1] + self.netNonFormat = self.netNonFormat.split('@@')[0] + self.netNonFormat.split('@@')[2] + else: + self.num_dev = int(self.settings.get('num_dev', 0)) + self.setupNetdev() + if (self.netNonFormat.split('$netdev')[0] != self.netNonFormat): + self.netFormat = self.netNonFormat.split('$netdev')[0] + self.netdev + self.netNonFormat.split('$netdev')[1] + else: + self.netFormat = self.netNonFormat + self.label_netDown = Plasma.Label(self.applet) + text = self.formatLine.split('$LINE')[0] + self.netFormat.split('$net')[0] + '----' + self.formatLine.split('$LINE')[1] + self.label_netDown.setText(text) + self.layout.addItem(self.label_netDown) + self.label_netUp = Plasma.Label(self.applet) + text = self.formatLine.split('$LINE')[0] + '/----' + self.netFormat.split('$net')[1] + self.formatLine.split('$LINE')[1] + self.label_netUp.setText(text) + self.layout.addItem(self.label_netUp) + elif (order == "6"): + self.batBool = self.settings.get('batBool', True) + if (self.batBool): + self.batFormat = str(self.settings.get('batFormat', '[bat: $bat%]')) + self.label_bat = Plasma.Label(self.applet) + text = self.formatLine.split('$LINE')[0] + self.batFormat.split('$bat')[0] + '---' + self.batFormat.split('$bat')[1] + self.formatLine.split('$LINE')[1] + self.label_bat.setText(text) + self.layout.addItem(self.label_bat) + + self.applet.setLayout(self.layout) + self.theme = Plasma.Svg(self) + self.theme.setImagePath("widgets/background") + self.setBackgroundHints(Plasma.Applet.DefaultBackground) + self.resize(10,10) + + # start timer + self.connectToEngine() + self.timer = QtCore.QTimer() + self.timer.setInterval(self.interval) + self.startPolling() + def setupNetdev(self): """function to setup network device""" if (self.num_dev == 0): diff --git a/source/contents/ui/configwindow.ui b/source/contents/ui/configwindow.ui index 39fda4f..be78028 100644 --- a/source/contents/ui/configwindow.ui +++ b/source/contents/ui/configwindow.ui @@ -6,7 +6,7 @@ 0 0 - 372 + 519 382 @@ -18,7 +18,7 @@ - 372 + 519 382 @@ -42,7 +42,7 @@ - 364 + 511 378 @@ -95,7 +95,7 @@ - CPU + CPU true @@ -121,6 +121,43 @@ + + + + + 0 + 0 + + + + + 111 + 25 + + + + + 111 + 25 + + + + 1 + + + 6 + + + 1 + + + Qt::Horizontal + + + QSlider::TicksAbove + + + @@ -166,7 +203,7 @@ - Temperature + Temperature true @@ -192,6 +229,46 @@ + + + + + 0 + 0 + + + + + 111 + 25 + + + + + 111 + 25 + + + + 1 + + + 7 + + + 6 + + + 1 + + + Qt::Horizontal + + + QSlider::TicksAbove + + + @@ -237,7 +314,7 @@ - Memory + Memory true @@ -263,6 +340,43 @@ + + + + + 0 + 0 + + + + + 111 + 25 + + + + + 111 + 25 + + + + 1 + + + 6 + + + 1 + + + Qt::Horizontal + + + QSlider::TicksAbove + + + @@ -308,7 +422,7 @@ - Swap + Swap true @@ -334,6 +448,43 @@ + + + + + 0 + 0 + + + + + 111 + 25 + + + + + 111 + 25 + + + + 1 + + + 6 + + + 1 + + + Qt::Horizontal + + + QSlider::TicksAbove + + + @@ -379,7 +530,7 @@ - Network + Network true @@ -437,6 +588,43 @@ + + + + + 0 + 0 + + + + + 111 + 25 + + + + + 111 + 25 + + + + 1 + + + 6 + + + 1 + + + Qt::Horizontal + + + QSlider::TicksAbove + + + @@ -482,7 +670,7 @@ - Battery + Battery true @@ -508,6 +696,43 @@ + + + + + 0 + 0 + + + + + 111 + 25 + + + + + 111 + 25 + + + + 1 + + + 6 + + + 1 + + + Qt::Horizontal + + + QSlider::TicksAbove + + + @@ -553,7 +778,7 @@ - Time interval + Time interval @@ -649,7 +874,7 @@ - Font + Font @@ -743,7 +968,7 @@ - Font size + Font size @@ -836,7 +1061,7 @@ - Font color + Font color @@ -920,7 +1145,7 @@ - Font style + Font style @@ -1006,17 +1231,23 @@ checkBox_cpu lineEdit_cpu + slider_cpu checkBox_temp lineEdit_temp + slider_temp checkBox_mem lineEdit_mem + slider_mem checkBox_swap lineEdit_swap + slider_swap checkBox_net comboBox_numNet lineEdit_net + slider_net checkBox_bat lineEdit_bat + slider_bat spinBox_interval fontComboBox spinBox_fontSize diff --git a/source/metadata.desktop b/source/metadata.desktop index e48b628..25f1f29 100644 --- a/source/metadata.desktop +++ b/source/metadata.desktop @@ -9,7 +9,7 @@ X-Plasma-MainScript=code/main.py X-KDE-PluginInfo-Author=Evgeniy Alexeev aka arcanis X-KDE-PluginInfo-Email=esalexeev@gmail.com X-KDE-PluginInfo-Name=py-text-monitor -X-KDE-PluginInfo-Version=1.1 +X-KDE-PluginInfo-Version=1.1.1 X-KDE-PluginInfo-Website=http://kde-look.org/ X-KDE-PluginInfo-Category=System Information X-KDE-PluginInfo-Depends=