diff --git a/sources/ptm/contents/code/configdef.py b/sources/ptm/contents/code/configdef.py index 0afc204..bb7945f 100644 --- a/sources/ptm/contents/code/configdef.py +++ b/sources/ptm/contents/code/configdef.py @@ -21,7 +21,7 @@ from PyQt4.QtCore import * from PyQt4.QtGui import * from PyKDE4.kdecore import * from PyKDE4.kdeui import * -import commands, os +import commands import config @@ -38,52 +38,37 @@ class ConfigDefinition: settings = config.Config(self.parent) # update local variables - self.parent.interval = self.configpage.ui.spinBox_interval.value() - settings.set('interval', self.parent.interval) - self.parent.font_family = str(self.configpage.ui.fontComboBox.currentFont().family()) - settings.set('font_family', self.parent.font_family) - self.parent.font_size = self.configpage.ui.spinBox_fontSize.value() - settings.set('font_size', self.parent.font_size) - self.parent.font_color = str(self.configpage.ui.kcolorcombo.color().name()) - settings.set('font_color', self.parent.font_color) - if (self.configpage.ui.comboBox_style.currentIndex() == 0): - self.parent.font_style = 'normal' - else: - self.parent.font_style = 'italic' - settings.set('font_style', self.parent.font_style) - self.parent.font_weight = self.configpage.ui.spinBox_weight.value() - settings.set('font_weight', self.parent.font_weight) + settings.set('interval', self.configpage.ui.spinBox_interval.value()) + settings.set('font_family', str(self.configpage.ui.fontComboBox.currentFont().family())) + settings.set('font_size', self.configpage.ui.spinBox_fontSize.value()) + settings.set('font_color', str(self.configpage.ui.kcolorcombo.color().name())) + settings.set('font_style', str(self.configpage.ui.comboBox_style.currentText())) + settings.set('font_weight', self.configpage.ui.spinBox_weight.value()) - self.parent.custom_time = str(self.configpage.ui.lineEdit_timeFormat.text()) - settings.set('custom_time', self.parent.custom_time) - self.parent.custom_uptime = str(self.configpage.ui.lineEdit_uptimeFormat.text()) - settings.set('custom_uptime', self.parent.custom_uptime) - # temp and mount below - self.parent.hddNames = [] - self.parent.hdd = {} + settings.set('custom_time', str(self.configpage.ui.lineEdit_timeFormat.text())) + settings.set('custom_uptime', str(self.configpage.ui.lineEdit_uptimeFormat.text())) + item = QStringList() + for i in range(self.configpage.ui.listWidget_tempDevice.count()): + item.append(self.configpage.ui.listWidget_tempDevice.item(i).text()) + settings.set('temp_device', str(item.join(QString('@@')))) + item = QStringList() + for i in range(self.configpage.ui.listWidget_mount.count()): + item.append(self.configpage.ui.listWidget_mount.item(i).text()) + settings.set('mount', str(item.join(QString('@@')))) + item = QStringList() for i in range(self.configpage.ui.listWidget_hddDevice.count()): - item = self.configpage.ui.listWidget_hddDevice.item(i).text() - self.parent.hddNames.append(str(item)) - self.parent.hdd[str(item)] =" 0.0" - settings.set('hdd', '@@'.join(self.parent.hddNames)) - self.parent.netdir = str(self.configpage.ui.lineEdit_netdir.text()) - settings.set('netdir', self.parent.netdir) - self.parent.netdevBool = str(self.configpage.ui.checkBox_netdev.checkState()) - settings.set('netdevBool', self.parent.netdevBool) - self.parent.custom_netdev = str(self.configpage.ui.comboBox_netdev.currentText()) - settings.set('custom_netdev', self.parent.custom_netdev) - self.parent.battery_device = str(self.configpage.ui.lineEdit_batdev.text()) - settings.set('battery_device', self.parent.battery_device) - self.parent.ac_device = str(self.configpage.ui.lineEdit_acdev.text()) - settings.set('ac_device', self.parent.ac_device) - self.parent.player_name = self.configpage.ui.comboBox_playerSelect.currentIndex() - settings.set('player_name', self.parent.player_name) + item.append(self.configpage.ui.listWidget_hddDevice.item(i).text()) + settings.set('hdd', 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())) + settings.set('battery_device', str(self.configpage.ui.lineEdit_batdev.text())) + settings.set('ac_device', str(self.configpage.ui.lineEdit_acdev.text())) + settings.set('player_name', self.configpage.ui.comboBox_playerSelect.currentIndex()) - self.parent.tooltipNum = self.configpage.ui.spinBox_tooltipNum.value() - settings.set('tooltip_num', self.parent.tooltipNum) + settings.set('tooltip_num', self.configpage.ui.spinBox_tooltipNum.value()) for label in ['cpu', 'cpuclock', 'mem', 'swap', 'down', 'up']: - exec ('self.parent.tooltipColors["' + label + '"] = str(self.configpage.kcolorcombo_' + label + '.color().name())') - exec ('settings.set("' + label + '_color", self.parent.tooltipColors["' + label + '"])') + exec('settings.set("' + label + '_color", str(self.configpage.kcolorcombo_' + label + '.color().name()))') dataengineConfig = unicode(KGlobal.dirs().localkdedir()) + "/share/config/extsysmon.conf" try: @@ -97,6 +82,7 @@ class ConfigDefinition: pass # disconnecting from source and clear layout + self.parent.disconnectFromSource() if (self.parent.uptimeBool > 0): self.parent.systemmonitor.disconnectSource("system/uptime", self.parent) self.parent.label_uptime.setText('') @@ -118,13 +104,6 @@ class ConfigDefinition: self.parent.systemmonitor.disconnectSource(item, self.parent) self.parent.label_temp.setText('') self.parent.layout.removeItem(self.parent.label_temp) - self.parent.tempNames = [] - self.parent.temp = {} - for i in range(self.configpage.ui.listWidget_tempDevice.count()): - item = self.configpage.ui.listWidget_tempDevice.item(i).text() - self.parent.tempNames.append(str(item)) - self.parent.temp[str(item)] =" 0.0" - settings.set('temp_device', '@@'.join(self.parent.tempNames)) if (self.parent.gpuBool > 0): self.parent.extsysmon.disconnectSource("gpu", self.parent) self.parent.label_gpu.setText('') @@ -149,13 +128,6 @@ class ConfigDefinition: self.parent.systemmonitor.disconnectSource("partitions" + item + "/filllevel", self.parent) self.parent.label_hdd.setText('') self.parent.layout.removeItem(self.parent.label_hdd) - self.parent.mountNames = [] - self.parent.mount = {} - for i in range(self.configpage.ui.listWidget_mount.count()): - item = self.configpage.ui.listWidget_mount.item(i).text() - self.parent.mountNames.append(str(item)) - self.parent.mount[str(item)] =" 0.0" - settings.set('mount', '@@'.join(self.parent.mountNames)) if (self.parent.hddtempBool > 0): self.parent.extsysmon.disconnectSource("hddtemp", self.parent) self.parent.label_hddtemp.setText('') diff --git a/sources/ptm/contents/code/configwindow.py b/sources/ptm/contents/code/configwindow.py index 2656822..dc2e7df 100644 --- a/sources/ptm/contents/code/configwindow.py +++ b/sources/ptm/contents/code/configwindow.py @@ -21,7 +21,6 @@ from PyQt4.QtCore import * from PyQt4.QtGui import * from PyKDE4.plasma import * from PyQt4 import uic -from PyKDE4 import plasmascript diff --git a/sources/ptm/contents/code/dataengine.py b/sources/ptm/contents/code/dataengine.py index 10ad051..9ad7697 100644 --- a/sources/ptm/contents/code/dataengine.py +++ b/sources/ptm/contents/code/dataengine.py @@ -19,8 +19,6 @@ from PyQt4.QtCore import * from PyQt4.QtGui import * -from PyKDE4.plasma import Plasma -from PyKDE4 import plasmascript import datetime @@ -36,54 +34,48 @@ class DataEngine: self.parent = parent - def connectToEngine(self): + def connectToEngine(self, bools=None, dataEngines=None, interval=1000, names=None): """function to initializate engine""" - self.parent.systemmonitor = self.parent.dataEngine("systemmonitor") - self.parent.extsysmon = self.parent.dataEngine("ext-sysmon") - - if (self.parent.timeBool > 0): - self.parent.timemon = self.parent.dataEngine("time") - self.parent.timemon.connectSource("Local", self.parent, 1000) - - if (self.parent.uptimeBool > 0): - self.parent.systemmonitor.connectSource("system/uptime", self.parent, self.parent.interval) - if (self.parent.cpuBool > 0): - self.parent.systemmonitor.connectSource("cpu/system/TotalLoad", self.parent, self.parent.interval) - for core in self.parent.cpuCore.keys(): - if (core > -1): - self.parent.systemmonitor.connectSource("cpu/cpu"+str(core)+"/TotalLoad", self.parent, self.parent.interval) - if (self.parent.cpuclockBool > 0): - self.parent.systemmonitor.connectSource("cpu/system/AverageClock", self.parent, self.parent.interval) - for core in self.parent.cpuClockCore.keys(): - if (core > -1): - self.parent.systemmonitor.connectSource("cpu/cpu"+str(core)+"/clock", self.parent, self.parent.interval) - if (self.parent.tempBool > 0): - for item in self.parent.tempNames: - self.parent.systemmonitor.connectSource(item, self.parent, self.parent.interval) - if (self.parent.gpuBool > 0): - self.parent.extsysmon.connectSource("gpu", self.parent, self.parent.interval) - if (self.parent.gputempBool > 0): - self.parent.extsysmon.connectSource("gputemp", self.parent, self.parent.interval) - if (self.parent.memBool > 0): - self.parent.systemmonitor.connectSource("mem/physical/free", self.parent, int(self.parent.interval*0.5)) - self.parent.systemmonitor.connectSource("mem/physical/used", self.parent, int(self.parent.interval*0.5)) - self.parent.systemmonitor.connectSource("mem/physical/application", self.parent, int(self.parent.interval*0.5)) - if (self.parent.swapBool > 0): - self.parent.systemmonitor.connectSource("mem/swap/free", self.parent, int(self.parent.interval*0.5)) - self.parent.systemmonitor.connectSource("mem/swap/used", self.parent, int(self.parent.interval*0.5)) - if (self.parent.hddBool > 0): - for item in self.parent.mountNames: - self.parent.systemmonitor.connectSource("partitions" + item + "/filllevel", self.parent, self.parent.interval) - if (self.parent.hddtempBool > 0): - self.parent.extsysmon.connectSource("hddtemp", self.parent, self.parent.interval) - if (self.parent.netBool > 0): - self.parent.updateNetdev = 0 - self.parent.systemmonitor.connectSource("network/interfaces/"+self.parent.netdev+"/transmitter/data", self.parent, self.parent.interval) - self.parent.systemmonitor.connectSource("network/interfaces/"+self.parent.netdev+"/receiver/data", self.parent, self.parent.interval) - if (self.parent.playerBool > 0): - self.parent.extsysmon.connectSource("player", self.parent, self.parent.interval) - if (self.parent.customBool > 0): - self.parent.extsysmon.connectSource("custom", self.parent, self.parent.interval) + if (bools['cpu'] > 0): + dataEngines['system'].connectSource("cpu/system/TotalLoad", self.parent, interval) + for core in range(8): + dataEngines['system'].connectSource("cpu/cpu" + str(core) + "/TotalLoad", self.parent, interval) + if (bools['cpuclock'] > 0): + dataEngines['system'].connectSource("cpu/system/AverageClock", self.parent, interval) + for core in range(8): + dataEngines['system'].connectSource("cpu/cpu" + str(core) + "/clock", self.parent, interval) + if (bools['custom'] > 0): + dataEngines['ext'].connectSource("custom", self.parent, interval) + if (bools['gpu'] > 0): + dataEngines['ext'].connectSource("gpu", self.parent, interval) + if (bools['gputemp'] > 0): + dataEngines['ext'].connectSource("gputemp", self.parent, interval) + if (bools['hdd'] > 0): + for item in names['hdd']: + dataEngines['system'].connectSource("partitions" + item + "/filllevel", self.parent, interval) + if (bools['hddtemp'] > 0): + dataEngines['ext'].connectSource("hddtemp", self.parent, interval) + if (bools['mem'] > 0): + dataEngines['system'].connectSource("mem/physical/free", self.parent, interval) + dataEngines['system'].connectSource("mem/physical/used", self.parent, interval) + dataEngines['system'].connectSource("mem/physical/application", self.parent, interval) + if (bools['net'] > 0): + self.updateNetdev = 0 + dataEngines['system'].connectSource("network/interfaces/" + names['net'] + "/transmitter/data", self.parent, interval) + dataEngines['system'].connectSource("network/interfaces/" + names['net'] + "/receiver/data", self.parent, interval) + if (bools['player'] > 0): + dataEngines['ext'].connectSource("player", self.parent, interval) + if (bools['swap'] > 0): + dataEngines['system'].connectSource("mem/swap/free", self.parent, interval) + dataEngines['system'].connectSource("mem/swap/used", self.parent, interval) + if (bools['temp'] > 0): + for item in names['temp']: + dataEngines['system'].connectSource(item, self.parent, interval) + if (bools['time'] > 0): + dataEngines['time'].connectSource("Local", self.parent, 1000) + if (bools['uptime'] > 0): + dataEngines['system'].connectSource("system/uptime", self.parent, interval) + def dataUpdated(self, sourceName, data): """function to update data""" @@ -145,11 +137,11 @@ class DataEngine: if (self.parent.updateNetdev == 100): self.parent.updateNetdev = 0 if (self.parent.netNonFormat.split('@@')[0] == self.parent.netNonFormat): - self.parent.systemmonitor.disconnectSource("network/interfaces/"+self.parent.netdev+"/transmitter/data", self.parent) - self.parent.systemmonitor.disconnectSource("network/interfaces/"+self.parent.netdev+"/receiver/data", self.parent) + dataEngines['system'].disconnectSource("network/interfaces/"+self.parent.netdev+"/transmitter/data", self.parent) + dataEngines['system'].disconnectSource("network/interfaces/"+self.parent.netdev+"/receiver/data", self.parent) self.parent.netdev = self.parent.setupNetdev() - self.parent.systemmonitor.connectSource("network/interfaces/"+self.parent.netdev+"/transmitter/data", self.parent, self.parent.interval) - self.parent.systemmonitor.connectSource("network/interfaces/"+self.parent.netdev+"/receiver/data", self.parent, self.parent.interval) + dataEngines['system'].connectSource("network/interfaces/"+self.parent.netdev+"/transmitter/data", self.parent, self.parent.interval) + dataEngines['system'].connectSource("network/interfaces/"+self.parent.netdev+"/receiver/data", self.parent, self.parent.interval) if (self.parent.netNonFormat.split('$netdev')[0] != self.parent.netNonFormat): self.parent.netFormat = self.parent.netNonFormat.split('$netdev')[0] + self.parent.netdev + self.parent.netNonFormat.split('$netdev')[1] else: @@ -247,7 +239,7 @@ class DataEngine: line = line.split('$artist')[0] + artist + line.split('$artist')[1] if (line.split('$progress')[0] != line): timeText = '%02i:%02i' % (int(time)/60, int(time)%60) - line = line.split('$progress')[0] + timeText + line.split('$progress')[1] + line = line.split('$progress')[0] + progress + line.split('$progress')[1] if (line.split('$time')[0] != line): timeText = '%02i:%02i' % (int(time)/60, int(time)%60) line = line.split('$time')[0] + timeText + line.split('$time')[1] @@ -273,9 +265,7 @@ class DataEngine: value = self.parent.custom_time for letters in timeLetters: if (value.split('$'+letters)[0] != value): - value = value.split('$'+letters)[0] + \ - str(data[QString(u'DateTime')].toString(letters).toUtf8()).decode("utf-8") + \ - value.split('$'+letters)[1] + value = value.split('$'+letters)[0] + str(rawDate.toString(letters).toUtf8()).decode("utf-8") + value.split('$'+letters)[1] line = self.parent.timeFormat.split('$custom')[0] + value + self.parent.timeFormat.split('$custom')[1] else: line = self.parent.timeFormat diff --git a/sources/ptm/contents/code/main.py b/sources/ptm/contents/code/main.py index 284faf4..d8f245f 100644 --- a/sources/ptm/contents/code/main.py +++ b/sources/ptm/contents/code/main.py @@ -24,17 +24,34 @@ from PyKDE4.kdeui import * from PyKDE4.kio import * from PyKDE4 import plasmascript from PyKDE4.plasma import Plasma -import commands, os, shutil, time +import commands, os, shutil import configdef import configwindow import dataengine +import ptmnotify import reinit import tooltip from util import * +class NewPlasmaLabel(Plasma.Label): + """new Label with defined clicked() event""" + def __init__(self, applet, parent): + """class definition""" + Plasma.Label.__init__(self, applet) + self.parent = parent + self.notify = ptmnotify.PTMNotify(self) + + + def mousePressEvent(self, event): + """mouse click event""" + if (event.button() == Qt.LeftButton): + self.notify.init() + + + class pyTextWidget(plasmascript.Applet): def __init__(self, parent, args=None): """widget definition""" @@ -44,18 +61,21 @@ class pyTextWidget(plasmascript.Applet): def init(self): """function to initializate widget""" self._name = str(self.package().metadata().pluginName()) - self.layout = QGraphicsLinearLayout(Qt.Horizontal, self.applet) + self.setupVar() self.dataengine = dataengine.DataEngine(self) - self.reinit = reinit.Reinit(self) + self.reinit = reinit.Reinit(self, self.ptm['defaults']) self.tooltipAgent = tooltip.Tooltip(self) self.timer = QTimer() QObject.connect(self.timer, SIGNAL("timeout()"), self.updateLabel) - self.setupVar() self.initTooltip() - self.reinit.reinit(confAccept=False) + self.reinit.reinit() + self.applet.setLayout(self.ptm['layout']) + self.theme = Plasma.Svg(self) + self.theme.setImagePath("widgets/background") + self.setBackgroundHints(Plasma.Applet.DefaultBackground) self.setHasConfigurationInterface(True) # Create notifyrc file if required @@ -129,6 +149,59 @@ class pyTextWidget(plasmascript.Applet): def setupVar(self): """function to setup variables""" + self.ptm = {} + # dataengines + self.ptm['dataengine'] = {'ext':None, 'system':None, 'time':None} + # defaults + self.ptm['defaults'] = {} + self.ptm['defaults']['order'] = {'6':'bat', '1':'cpu', '7':'cpuclock', 'f':'custom', '9':'gpu', + 'a':'gputemp', 'b':'hdd', 'c':'hddtemp', '3':'mem', '5':'net', '4':'swap', '2':'temp', + '8':'uptime', 'd':'player', 'e':'time'} + 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%]', + 'hddtemp':'[hdd temp: $hddtemp0°C]', 'mem':'[mem: $mem%]', + 'net':'[$netdev: $down/$upKB/s]', 'swap':'[swap: $swap%]', + 'temp':'[temp: $temp0°C]', 'uptime':'[uptime: $uptime]', + 'player':'[$artist - $title]', 'time':'[$time]'} + # 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']['hdd'] = [] + self.ptm['names']['hddtemp'] = [] + self.ptm['names']['net'] = "" + self.ptm['names']['temp'] = [] + # tooltips + self.ptm['tooltip'] = {} + self.ptm['tooltip']['bounds'] = {'cpu':100.0, 'cpuclock':4000.0, 'mem':16000.0, + 'swap':16000, 'down':10000.0, 'up':10000.0} + self.ptm['tooltip']['values'] = {'cpu':[0.0, 0.0], 'cpuclock':[0, 0], 'mem':[0, 0], + 'swap':[0, 0], 'down':[0, 0], 'up':[0, 0]} + # values + self.ptm['values'] = {} + self.ptm['values']['cpu'] = {-1:0.0} + self.ptm['values']['cpuclock'] = {-1:0} + numCores = int(commands.getoutput("grep -c '^processor' /proc/cpuinfo")) + for i in range(numCores): + self.ptm['values']['cpu'][i] = 0.0 + self.ptm['values']['cpuclock'][i] = 0 + self.ptm['values']['hdd'] = {} + self.ptm['values']['hddtemp'] = {} + self.ptm['values']['mem'] = {'used':0, 'free':0, 'total':1} + self.ptm['values']['net'] = {"up":0, "down":0} + self.ptm['values']['swap'] = {'used':0, 'free':0, 'total':1} + self.ptm['values']['temp'] = {} + # variables + self.ptm['vars'] = {} + self.ptm['vars']['adv'] = {} + self.ptm['vars']['app'] = {} + self.ptm['vars']['bools'] = {} + self.ptm['vars']['formats'] = {} + self.ptm['vars']['tooltip'] = {} + self.cpuCore = {-1:" 0.0"} self.cpuClockCore = {-1:" 0"} numCores = int(commands.getoutput("grep -c '^processor' /proc/cpuinfo")) @@ -315,6 +388,45 @@ class pyTextWidget(plasmascript.Applet): self.label_temp.setText(text) + # api's functions + def addLabel(self, name=None, text=None, add=True): + """function to add new label""" + if (add): + self.ptm['labels'][name] = NewPlasmaLabel(self.applet, self) + self.ptm['layout'].addItem(self.ptm['labels'][name]) + self.setText(name, text) + else: + self.setText(name, '') + self.ptm['layout'].removeItem(self.ptm['labels'][name]) + + + def applySettings(self, name=None, ptm=None): + """function to read settings""" + self.ptm[name] = ptm + if (name == "names"): + for item in ['hdd', 'hddtemp', 'temp']: + for value in self.ptm['names'][item]: + self.ptm['values'][item][value] = 0.0 + + + def connectToEngine(self): + """function to connect to dataengines""" + self.ptm['dataengine']['ext'] = self.dataEngine("ext-sysmon") + self.ptm['dataengine']['system'] = self.dataEngine("systemmonitor") + self.ptm['dataengine']['time'] = self.dataEngine("time") + self.dataengine.connectToEngine(self.ptm['vars']['bools'], self.ptm['dataengine'], + self.ptm['vars']['app']['interval'], self.ptm['names']) + + + def disconnectFromSource(self): + """function to disconnect from sources""" + + + def setText(self, name=None, text=None): + """function to set text to labels""" + self.ptm['labels'][name].setText(text) + + @pyqtSignature("dataUpdated(const QString &, const Plasma::DataEngine::Data &)") def dataUpdated(self, sourceName, data): """function to update label""" diff --git a/sources/ptm/contents/code/reinit.py b/sources/ptm/contents/code/reinit.py index 75e39ec..5600a11 100644 --- a/sources/ptm/contents/code/reinit.py +++ b/sources/ptm/contents/code/reinit.py @@ -19,247 +19,86 @@ from PyQt4.QtCore import * from PyQt4.QtGui import * -from PyKDE4.plasma import Plasma import config -import ptmnotify - - - -class NewPlasmaLabel(Plasma.Label): - """new Label with defined clicked() event""" - def __init__(self, applet, parent): - """class definition""" - Plasma.Label.__init__(self, applet) - self.parent = parent - self.notify = ptmnotify.PTMNotify(self) - - - def mousePressEvent(self, event): - """mouse click event""" - if (event.button() == Qt.LeftButton): - self.notify.init() class Reinit(): - def __init__(self, parent): + def __init__(self, parent, defaults=None): """class definition""" self.parent = parent + self.defaults = defaults + self.labels = defaults['format'].keys() - def reinit(self, confAccept=False): + def reinit(self): """function to reinitializate widget""" settings = config.Config(self.parent) - self.parent.interval = settings.get('interval', 2000).toInt()[0] - self.parent.font_family = str(settings.get('font_family', 'Terminus')) - self.parent.font_size = settings.get('font_size', 12).toInt()[0] - self.parent.font_color = str(settings.get('font_color', '#000000')) - self.parent.font_style = str(settings.get('font_style', 'normal')) - self.parent.font_weight = settings.get('font_weight', 400).toInt()[0] - self.parent.formatLine = "

$LINE

" + ptmVars = {} - self.parent.custom_time = str(settings.get('custom_time', '$hh:$mm')) - self.parent.custom_uptime = str(settings.get('custom_uptime', '$ds,$hs,$ms')) - self.parent.tempNames = [] - self.parent.temp = {} - for item in str(settings.get('temp_device', '')).split('@@'): - self.parent.tempNames.append(item) - self.parent.temp[item] =" 0.0" - self.parent.mountNames = [] - self.parent.mount = {} - for item in str(settings.get('mount', '/')).split('@@'): - self.parent.mountNames.append(item) - self.parent.mount[item] =" 0.0" - self.parent.hddNames = [] - self.parent.hdd = {} - for item in str(settings.get('hdd', '/dev/sda')).split('@@'): - self.parent.hddNames.append(item) - self.parent.hdd[item] =" 0.0" - self.parent.netdir = str(settings.get('netdir', '/sys/class/net')) - self.parent.netdevBool = settings.get('netdevBool', 0).toInt()[0] - self.parent.custom_netdev = str(settings.get('custom_netdev', 'lo')) - self.parent.battery_device = str(settings.get('battery_device', '/sys/class/power_supply/BAT0/capacity')) - self.parent.ac_device = str(settings.get('ac_device', '/sys/class/power_supply/AC/online')) - self.parent.player_name = settings.get('player_name', 0).toInt()[0] + ptmVars['adv'] = {} + ptmVars['adv']['acDev'] = str(settings.get('ac_device', '/sys/class/power_supply/AC/online')) + ptmVars['adv']['batDev'] = str(settings.get('battery_device', '/sys/class/power_supply/BAT0/capacity')) + ptmVars['adv']['customTime'] = str(settings.get('custom_time', '$hh:$mm')) + ptmVars['adv']['customUptime'] = str(settings.get('custom_uptime', '$dd,$hh,$mm')) + ptmVars['adv']['netdevBool'] = settings.get('netdevBool', 0).toInt()[0] + ptmVars['adv']['netDir'] = str(settings.get('netdir', '/sys/class/net')) + ptmVars['adv']['player'] = settings.get('player_name', 0).toInt()[0] - self.parent.tooltipNum = settings.get('tooltip_num', 100).toInt()[0] - self.parent.tooltipColors['cpu'] = str(settings.get('cpu_color', '#ff0000')) - self.parent.tooltipColors['cpuclock'] = str(settings.get('cpuclock_color', '#00ff00')) - self.parent.tooltipColors['mem'] = str(settings.get('mem_color', '#0000ff')) - self.parent.tooltipColors['swap'] = str(settings.get('swap_color', '#ffff00')) - self.parent.tooltipColors['down'] = str(settings.get('down_color', '#00ffff')) - self.parent.tooltipColors['up'] = str(settings.get('up_color', '#ff00ff')) + ptmVars['app'] = {} + ptmVars['app']['format'] = "

$LINE

" + ptmVars['app']['interval'] = settings.get('interval', 2000).toInt()[0] + ptmVars['app']['order'] = str(settings.get('label_order', '1345')) - self.parent.tooltipReq = [] - self.parent.label_order = str(settings.get('label_order', '1345')) - for label in self.parent.dict_orders.values(): - if ((label == 'cpu') or (label == 'mem') or (label == 'swap') or (label == 'net')): - exec ('self.parent.' + label + 'Bool = settings.get("' + label + 'Bool", 2).toInt()[0]') + ptmVars['tooltip'] = {} + ptmVars['tooltip']['colors'] = {} + ptmVars['tooltip']['colors']['cpu'] = str(settings.get('cpu_color', '#ff0000')) + ptmVars['tooltip']['colors']['cpuclock'] = str(settings.get('cpuclock_color', '#00ff00')) + ptmVars['tooltip']['colors']['mem'] = str(settings.get('mem_color', '#0000ff')) + ptmVars['tooltip']['colors']['swap'] = str(settings.get('swap_color', '#ffff00')) + ptmVars['tooltip']['colors']['down'] = str(settings.get('down_color', '#00ffff')) + ptmVars['tooltip']['colors']['up'] = str(settings.get('up_color', '#ff00ff')) + ptmVars['tooltip']['num'] = settings.get('tooltip_num', 100).toInt()[0] + + ptmVars['bools'] = {} + for label in self.labels: + if (label in ['cpu', 'mem', 'swap', 'net']): + exec("ptmVars['bools'][label] = settings.get('" + label + "Bool', 2).toInt()[0]") else: - exec ('self.parent.' + label + 'Bool = settings.get("' + label + 'Bool", 0).toInt()[0]') + exec("ptmVars['bools'][label] = settings.get('" + label + "Bool', 0).toInt()[0]") + print (ptmVars['bools']) - # labels - for order in self.parent.label_order: - if (order == "1"): - if (self.parent.cpuBool > 0): - self.parent.cpuFormat = str(settings.get('cpuFormat', '[cpu: $cpu%]')) - self.parent.label_cpu = NewPlasmaLabel(self.parent.applet, self.parent) - line = self.parent.cpuFormat - text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1] - self.parent.label_cpu.setText(text) - self.parent.layout.addItem(self.parent.label_cpu) - if (self.parent.cpuBool == 2): - self.parent.tooltipReq.append('cpu') - elif (order == "2"): - if (self.parent.tempBool > 0): - self.parent.tempFormat = str(settings.get('tempFormat', '[temp: $temp0°C]')) - self.parent.label_temp = NewPlasmaLabel(self.parent.applet, self.parent) - line = self.parent.tempFormat - text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1] - self.parent.label_temp.setText(text) - self.parent.layout.addItem(self.parent.label_temp) - elif (order == "3"): - if (self.parent.memBool > 0): - self.parent.memFormat = str(settings.get('memFormat', '[mem: $mem%]')) - self.parent.label_mem = NewPlasmaLabel(self.parent.applet, self.parent) - if (self.parent.memFormat.split('$memmb')[0] != self.parent.memFormat): - self.parent.memInMb = True - elif (self.parent.memFormat.split('$mem')[0] != self.parent.memFormat): - self.parent.memInMb = False - line = self.parent.memFormat - text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1] - self.parent.label_mem.setText(text) - self.parent.layout.addItem(self.parent.label_mem) - if (self.parent.memBool == 2): - self.parent.tooltipReq.append('mem') - elif (order == "4"): - if (self.parent.swapBool > 0): - self.parent.swapFormat = str(settings.get('swapFormat', '[swap: $swap%]')) - self.parent.label_swap = NewPlasmaLabel(self.parent.applet, self.parent) - if (self.parent.swapFormat.split('$swapmb')[0] != self.parent.swapFormat): - self.parent.swapInMb = True - elif (self.parent.swapFormat.split('$swap')[0] != self.parent.swapFormat): - self.parent.swapInMb = False - line = self.parent.swapFormat - text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1] - self.parent.label_swap.setText(text) - self.parent.layout.addItem(self.parent.label_swap) - if (self.parent.swapBool == 2): - self.parent.tooltipReq.append('swap') - elif (order == "5"): - if (self.parent.netBool > 0): - self.parent.netNonFormat = str(settings.get('netNonFormat', '[net: $down/$upKB/s]')) - self.parent.label_net = NewPlasmaLabel(self.parent.applet, self.parent) - if (self.parent.netdevBool > 0): - self.parent.netdev = self.parent.custom_netdev + ptmNames = {} + ptmNames['hdd'] = str(settings.get('mount', '/')).split('@@') + ptmNames['hddtemp'] = str(settings.get('hdd', '/dev/sda')).split('@@') + ptmNames['net'] = str(settings.get('custom_netdev', 'lo')) + ptmNames['temp'] = str(settings.get('temp_device', '')).split('@@') + self.parent.applySettings('names', ptmNames) + + ptmVars['formats'] = {} + ptmVars['tooltip']['required'] = [] + for order in ptmVars['app']['order']: + label = self.defaults['order'][order] + if (ptmVars['bools'][label] > 0): + exec("ptmVars['formats'][label] = str(settings.get('" + label + "Format', self.defaults['format'][label]))") + text = ptmVars['app']['format'].split('$LINE')[0] + ptmVars['formats'][label] + ptmVars['app']['format'].split('$LINE')[1] + self.parent.addLabel(label, text, True) + if ((label in ['cpu', 'cpuclock', 'mem', 'net', 'swap']) and (ptmVars['bools'][label] == 2)): + if (label == 'net'): + ptmVars['tooltip']['required'].append("down") + ptmVars['tooltip']['required'].append("up") else: - self.parent.netdev = self.parent.setupNetdev() - if (self.parent.netNonFormat.split('$netdev')[0] != self.parent.netNonFormat): - self.parent.netFormat = self.parent.netNonFormat.split('$netdev')[0] + self.parent.netdev + self.parent.netNonFormat.split('$netdev')[1] - else: - self.parent.netFormat = self.parent.netNonFormat - line = self.parent.netFormat - text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1] - self.parent.label_net.setText(text) - self.parent.layout.addItem(self.parent.label_net) - if (self.parent.netBool == 2): - self.parent.tooltipReq.append('down') - self.parent.tooltipReq.append('up') - elif (order == "6"): - if (self.parent.batBool > 0): - self.parent.batFormat = str(settings.get('batFormat', '[bat: $bat%$ac]')) - self.parent.label_bat = NewPlasmaLabel(self.parent.applet, self.parent) - line = self.parent.batFormat - text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1] - self.parent.label_bat.setText(text) - self.parent.layout.addItem(self.parent.label_bat) - elif (order == "7"): - if (self.parent.cpuclockBool > 0): - self.parent.cpuclockFormat = str(settings.get('cpuclockFormat', '[mhz: $cpucl]')) - self.parent.label_cpuclock = NewPlasmaLabel(self.parent.applet, self.parent) - line = self.parent.cpuclockFormat - text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1] - self.parent.label_cpuclock.setText(text) - self.parent.layout.addItem(self.parent.label_cpuclock) - if (self.parent.cpuclockBool == 2): - self.parent.tooltipReq.append('cpuclock') - elif (order == "8"): - if (self.parent.uptimeBool > 0): - self.parent.uptimeFormat = str(settings.get('uptimeFormat', '[uptime: $uptime]')) - self.parent.label_uptime = NewPlasmaLabel(self.parent.applet, self.parent) - line = self.parent.uptimeFormat - text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1] - self.parent.label_uptime.setText(text) - self.parent.layout.addItem(self.parent.label_uptime) - elif (order == "9"): - if (self.parent.gpuBool > 0): - self.parent.gpuFormat = str(settings.get('gpuFormat', '[gpu: $gpu%]')) - self.parent.label_gpu = NewPlasmaLabel(self.parent.applet, self.parent) - line = self.parent.gpuFormat - text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1] - self.parent.label_gpu.setText(text) - self.parent.layout.addItem(self.parent.label_gpu) - elif (order == "a"): - if (self.parent.gputempBool > 0): - self.parent.gputempFormat = str(settings.get('gputempFormat', '[gpu temp: $gputemp°C]')) - self.parent.label_gputemp = NewPlasmaLabel(self.parent.applet, self.parent) - line = self.parent.gputempFormat - text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1] - self.parent.label_gputemp.setText(text) - self.parent.layout.addItem(self.parent.label_gputemp) - elif (order == "b"): - if (self.parent.hddBool > 0): - self.parent.hddFormat = str(settings.get('hddFormat', '[hdd: $hdd0%]')) - self.parent.label_hdd = NewPlasmaLabel(self.parent.applet, self.parent) - line = self.parent.hddFormat - text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1] - self.parent.label_hdd.setText(text) - self.parent.layout.addItem(self.parent.label_hdd) - elif (order == "c"): - if (self.parent.hddtempBool > 0): - self.parent.hddtempFormat = str(settings.get('hddtempFormat', '[hdd temp: $hddtemp0°C]')) - self.parent.label_hddtemp = NewPlasmaLabel(self.parent.applet, self.parent) - line = self.parent.hddtempFormat - text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1] - self.parent.label_hddtemp.setText(text) - self.parent.layout.addItem(self.parent.label_hddtemp) - elif (order == "d"): - if (self.parent.playerBool > 0): - self.parent.playerFormat = str(settings.get('playerFormat', '[$artist - $title]')) - self.parent.label_player = NewPlasmaLabel(self.parent.applet, self.parent) - line = self.parent.playerFormat - text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1] - self.parent.label_player.setText(text) - self.parent.layout.addItem(self.parent.label_player) - elif (order == "e"): - if (self.parent.timeBool > 0): - self.parent.timeFormat = str(settings.get('timeFormat', '[$time]')) - self.parent.label_time = NewPlasmaLabel(self.parent.applet, self.parent) - line = self.parent.timeFormat - text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1] - self.parent.label_time.setText(text) - self.parent.layout.addItem(self.parent.label_time) - elif (order == "f"): - if (self.parent.customBool > 0): - self.parent.customFormat = str(settings.get('customFormat', '[$custom]')) - self.parent.label_custom = NewPlasmaLabel(self.parent.applet, self.parent) - line = self.parent.customFormat - text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1] - self.parent.label_custom.setText(text) - self.parent.layout.addItem(self.parent.label_custom) - if not confAccept: - self.parent.layout.setContentsMargins(1, 1, 1, 1) - self.parent.applet.setLayout(self.parent.layout) - self.parent.theme = Plasma.Svg(self.parent) - self.parent.theme.setImagePath("widgets/background") - self.parent.setBackgroundHints(Plasma.Applet.DefaultBackground) + ptmVars['tooltip']['required'].append(label) + self.parent.applySettings('vars', ptmVars) + self.parent.resize(10, 10) # create dataengines self.parent.thread().wait(60000) - self.parent.dataengine.connectToEngine() + self.parent.connectToEngine() self.parent.timer.setInterval(self.parent.interval) self.parent.startPolling() diff --git a/sources/ptm/contents/code/util.py b/sources/ptm/contents/code/util.py index 499e523..e722a47 100644 --- a/sources/ptm/contents/code/util.py +++ b/sources/ptm/contents/code/util.py @@ -34,7 +34,7 @@ class Util(): try: os.mkdir(name) except: - print 'Failed to create directory: ' + name + print ('Failed to create directory: ' + name) def kdeHome(self): @@ -42,7 +42,7 @@ class Util(): def createNotifyrc(self): - print '[%s] creating notifyrc' % (self.applet._name) + print ('[%s] creating notifyrc' % (self.applet._name)) self.createDirectory(self.kdeHome() + 'share/apps/%s' % self.applet._name) source = self.applet.package().path() + 'contents/misc/%s.notifyrc' % self.applet._name