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=