diff --git a/sources/ptm/contents/code/configdef.py b/sources/ptm/contents/code/configdef.py index 67becad..2f114cb 100644 --- a/sources/ptm/contents/code/configdef.py +++ b/sources/ptm/contents/code/configdef.py @@ -65,7 +65,7 @@ class ConfigDefinition: 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()) + settings.set('player_name', str(self.configpage.ui.comboBox_playerSelect.currentText())) settings.set('tooltip_num', self.configpage.ui.spinBox_tooltipNum.value()) for label in ['cpu', 'cpuclock', 'mem', 'swap', 'down', 'up']: @@ -84,87 +84,16 @@ class ConfigDefinition: # 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('') - self.parent.layout.removeItem(self.parent.label_uptime) - if (self.parent.cpuBool > 0): - self.parent.systemmonitor.disconnectSource("cpu/system/TotalLoad", self.parent) - for core in self.parent.cpuCore.keys(): - self.parent.systemmonitor.disconnectSource("cpu/cpu"+str(core)+"/TotalLoad", self.parent) - self.parent.label_cpu.setText('') - self.parent.layout.removeItem(self.parent.label_cpu) - if (self.parent.cpuclockBool > 0): - self.parent.systemmonitor.disconnectSource("cpu/system/AverageClock", self.parent) - for core in self.parent.cpuClockCore.keys(): - self.parent.systemmonitor.disconnectSource("cpu/cpu"+str(core)+"/clock", self.parent) - self.parent.label_cpuclock.setText('') - self.parent.layout.removeItem(self.parent.label_cpuclock) - if (self.parent.tempBool > 0): - for item in self.parent.temp: - self.parent.systemmonitor.disconnectSource(item, self.parent) - self.parent.label_temp.setText('') - self.parent.layout.removeItem(self.parent.label_temp) - if (self.parent.gpuBool > 0): - self.parent.extsysmon.disconnectSource("gpu", self.parent) - self.parent.label_gpu.setText('') - self.parent.layout.removeItem(self.parent.label_gpu) - if (self.parent.gputempBool > 0): - self.parent.extsysmon.disconnectSource("gputemp", self.parent) - self.parent.label_gputemp.setText('') - self.parent.layout.removeItem(self.parent.label_gputemp) - if (self.parent.memBool > 0): - self.parent.systemmonitor.disconnectSource("mem/physical/application", self.parent) - self.parent.systemmonitor.disconnectSource("mem/physical/free", self.parent) - self.parent.systemmonitor.disconnectSource("mem/physical/used", self.parent) - self.parent.label_mem.setText('') - self.parent.layout.removeItem(self.parent.label_mem) - if (self.parent.swapBool > 0): - self.parent.systemmonitor.disconnectSource("mem/swap/used", self.parent) - self.parent.systemmonitor.disconnectSource("mem/swap/free", self.parent) - self.parent.label_swap.setText('') - self.parent.layout.removeItem(self.parent.label_swap) - if (self.parent.hddBool > 0): - for item in self.parent.mount: - self.parent.systemmonitor.disconnectSource("partitions" + item + "/filllevel", self.parent) - self.parent.label_hdd.setText('') - self.parent.layout.removeItem(self.parent.label_hdd) - if (self.parent.hddtempBool > 0): - self.parent.extsysmon.disconnectSource("hddtemp", self.parent) - self.parent.label_hddtemp.setText('') - self.parent.layout.removeItem(self.parent.label_hddtemp) - if (self.parent.netBool > 0): - 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) - self.parent.label_net.setText('') - self.parent.layout.removeItem(self.parent.label_net) - if (self.parent.batBool > 0): - self.parent.label_bat.setText('') - self.parent.layout.removeItem(self.parent.label_bat) - if (self.parent.playerBool > 0): - self.parent.extsysmon.disconnectSource("player", self.parent) - self.parent.label_player.setText('') - self.parent.layout.removeItem(self.parent.label_player) - if (self.parent.timeBool > 0): - self.parent.timemon.disconnectSource("Local", self.parent) - self.parent.label_time.setText('') - self.parent.layout.removeItem(self.parent.label_time) - if (self.parent.customBool > 0): - self.parent.label_custom.setText('') - self.parent.layout.removeItem(self.parent.label_custom) - self.parent.label_order = "---------------" - - for label in self.parent.dict_orders.keys(): - exec ('self.parent.' + self.parent.dict_orders[label] + 'Bool = ' + str(self.configpage.checkboxes[self.parent.dict_orders[label]].checkState())) - if (self.configpage.checkboxes[self.parent.dict_orders[label]].checkState() > 0): - pos = self.configpage.sliders[self.parent.dict_orders[label]].value() - 1 - self.parent.label_order = self.parent.label_order[:pos] + label + self.parent.label_order[pos+1:] - exec ('self.parent.' + self.parent.dict_orders[label] + 'Format = str(self.configpage.lineedits[self.parent.dict_orders[label]].text())') - exec ('settings.set("' + self.parent.dict_orders[label] + 'Format", self.parent.' + self.parent.dict_orders[label] + 'Format)') - exec ('settings.set("' + self.parent.dict_orders[label] + 'Bool", self.parent.' + self.parent.dict_orders[label] + 'Bool)') - self.parent.label_order = ''.join(self.parent.label_order.split('-')) - settings.set('label_order', self.parent.label_order) + labelOrder = "---------------" + for label in self.defaults['order'].keys(): + if (self.configpage.checkboxes[self.defaults['order'][label]].checkState() > 0): + pos = self.configpage.sliders[self.defaults['order'][label]].value() - 1 + labelOrder = labelOrder[:pos] + label + labelOrder[pos+1:] + settings.set(self.defaults['confFormat'][self.defaults['order'][label]], str(self.configpage.lineedits[self.defaults['order'][label]].text())) + settings.set(self.defaults['confBool'][self.defaults['order'][label]], self.configpage.checkboxes[self.defaults['order'][label]].checkState()) + labelOrder = ''.join(labelOrder.split('-')) + settings.set('label_order', labelOrder) # reinitializate self.parent.reInit() @@ -228,7 +157,8 @@ class ConfigDefinition: self.configpage.ui.comboBox_netdev.setCurrentIndex(index) self.configpage.ui.lineEdit_batdev.setText(str(settings.get('battery_device', '/sys/class/power_supply/BAT0/capacity'))) self.configpage.ui.lineEdit_acdev.setText(str(settings.get('ac_device', '/sys/class/power_supply/AC/online'))) - self.configpage.ui.comboBox_playerSelect.setCurrentIndex(settings.get('player_name', 0).toInt()[0]) + index = self.configpage.ui.comboBox_playerSelect.findText(str(settings.get('player_name', "amarok"))) + self.configpage.ui.comboBox_playerSelect.setCurrentIndex(index) self.configpage.ui.spinBox_tooltipNum.setValue(settings.get('tooltip_num', 100).toInt()[0]) self.configpage.ui.kcolorcombo_cpu.setColor(QColor(str(settings.get('cpu_color', '#ff0000')))) @@ -264,13 +194,14 @@ class ConfigDefinition: self.configpage.ui.spinBox_mpdport.setValue(int(deSettings['MPDPORT'])) self.configpage.ui.lineEdit_customCommand.setText(deSettings['CUSTOM']) - label_order = str(settings.get('label_order', '1345')) + labelOrder = str(settings.get('label_order', '1345')) for label in self.defaults['order'].keys(): - bool = self.defaults['confBool'][self.defaults['order'][label]] + bool = self.defaults['bool'][self.defaults['order'][label]] self.configpage.checkboxes[self.defaults['order'][label]].setCheckState(bool) if (bool > 0): - self.configpage.sliders[self.defaults['order'][label]].setValue(label_order.find(label)+1) - self.configpage.lineedits[self.defaults['order'][label]].setText(str(settings.get(self.defaults['confFormat'][label], self.defaults['format'][label]))) + self.configpage.sliders[self.defaults['order'][label]].setValue(labelOrder.find(label) + 1) + self.configpage.lineedits[self.defaults['order'][label]].setText(str(settings.get(self.defaults['confFormat'][self.defaults['order'][label]], + self.defaults['format'][self.defaults['order'][label]]))) # add config page page = parent.addPage(self.configpage, i18n(self.parent.name())) diff --git a/sources/ptm/contents/code/dataengine.py b/sources/ptm/contents/code/dataengine.py index c258f29..b36d02a 100644 --- a/sources/ptm/contents/code/dataengine.py +++ b/sources/ptm/contents/code/dataengine.py @@ -168,19 +168,19 @@ class DataEngine: elif (sourceName == "player"): updatedData['name'] = "player" updatedData['value'] = {} - if (adv['player'] == 0): + if (adv['player'] == "amarok"): updatedData['value']['album'] = str(data[QString(u'amarok_album')].toUtf8()).decode("utf-8") updatedData['value']['artist'] = str(data[QString(u'amarok_artist')].toUtf8()).decode("utf-8") updatedData['value']['progress'] = str(data[QString(u'amarok_progress')].toUtf8()).decode("utf-8") updatedData['value']['time'] = str(data[QString(u'amarok_duration')].toUtf8()).decode("utf-8") updatedData['value']['title'] = str(data[QString(u'amarok_title')].toUtf8()).decode("utf-8") - elif (adv['player'] == 1): + elif (adv['player'] == "mpd"): updatedData['value']['album'] = str(data[QString(u'mpd_album')].toUtf8()).decode("utf-8") updatedData['value']['artist'] = str(data[QString(u'mpd_artist')].toUtf8()).decode("utf-8") updatedData['value']['progress'] = str(data[QString(u'mpd_progress')].toUtf8()).decode("utf-8") updatedData['value']['time'] = str(data[QString(u'mpd_duration')].toUtf8()).decode("utf-8") updatedData['value']['title'] = str(data[QString(u'mpd_title')].toUtf8()).decode("utf-8") - elif (adv['player'] == 2): + elif (adv['player'] == "qmmp"): updatedData['value']['album'] = str(data[QString(u'qmmp_album')].toUtf8()).decode("utf-8") updatedData['value']['artist'] = str(data[QString(u'qmmp_artist')].toUtf8()).decode("utf-8") updatedData['value']['progress'] = str(data[QString(u'qmmp_progress')].toUtf8()).decode("utf-8") @@ -244,3 +244,49 @@ class DataEngine: #pass return updatedData + + + def disconnectFromSource(self, dataEngines=None, keys=None, name=None): + """function to disconnect from sources""" + if (name == "bat"): + pass + elif (name == "cpu"): + dataEngines['system'].disconnectSource("cpu/system/TotalLoad", self.parent) + for item in keys['cpu']: + if (item != -1): + dataEngines['system'].disconnectSource("cpu/cpu" + str(item) + "/TotalLoad", self.parent) + elif (name == "cpuclock"): + dataEngines['system'].disconnectSource("cpu/system/AverageClock", self.parent) + for item in keys['cpuclock']: + if (item != -1): + dataEngines['system'].disconnectSource("cpu/cpu" + str(item) + "/clock", self.parent) + elif (name == "custom"): + dataEngines['ext'].disconnectSource("custom", self.parent) + elif (name == "gpu"): + dataEngines['ext'].disconnectSource("gpu", self.parent) + elif (name == "gputemp"): + dataEngines['ext'].disconnectSource("gputemp", self.parent) + elif (name == "hdd"): + for item in keys['hdd']: + dataEngines['system'].disconnectSource("partitions" + item + "/filllevel", self.parent) + elif (name == "hddtemp"): + dataEngines['ext'].disconnectSource("hddtemp", self.parent) + elif (name == "mem"): + dataEngines['system'].disconnectSource("mem/physical/application", self.parent) + dataEngines['system'].disconnectSource("mem/physical/free", self.parent) + dataEngines['system'].disconnectSource("mem/physical/used", self.parent) + elif (name == "net"): + dataEngines['system'].disconnectSource("network/interfaces/" + keys['net'] + "/transmitter/data", self.parent) + dataEngines['system'].disconnectSource("network/interfaces/" + keys['net'] + "/receiver/data", self.parent) + elif (name == "player"): + dataEngines['ext'].disconnectSource("player", self.parent) + elif (name == "swap"): + dataEngines['system'].disconnectSource("mem/swap/used", self.parent) + dataEngines['system'].disconnectSource("mem/swap/free", self.parent) + elif (name == "temp"): + for item in keys['temp']: + dataEngines['system'].disconnectSource(item, self.parent) + elif (name == "time"): + dataEngines['time'].disconnectSource("Local", self.parent) + elif (name == "uptime"): + dataEngines['system'].disconnectSource("system/uptime", self.parent) diff --git a/sources/ptm/contents/code/main.py b/sources/ptm/contents/code/main.py index 51c656e..a5a222c 100644 --- a/sources/ptm/contents/code/main.py +++ b/sources/ptm/contents/code/main.py @@ -402,6 +402,13 @@ class pyTextWidget(plasmascript.Applet): def disconnectFromSource(self): """function to disconnect from sources""" + for label in self.ptm['defaults']['format'].keys(): + if (self.ptm['vars']['bools'][label] > 0): + self.addLabel(label, None, False) + keys = {'cpu':self.ptm['values']['cpu'].keys(), 'cpuclock':self.ptm['values']['cpuclock'].keys(), + 'hdd':self.ptm['values']['hdd'].keys(), 'net':self.ptm['names']['net'], + 'temp':self.ptm['values']['temp'].keys()} + self.dataengine.disconnectFromSource(self.ptm['dataengine'], keys, label) def reInit(self): diff --git a/sources/ptm/contents/code/ptmnotify.py b/sources/ptm/contents/code/ptmnotify.py index 6cd57ea..7dbfbf4 100644 --- a/sources/ptm/contents/code/ptmnotify.py +++ b/sources/ptm/contents/code/ptmnotify.py @@ -149,16 +149,16 @@ class PTMNotify: text = text + "%s" %(commands.getoutput("acpi -abi")) except: text = "Something wrong" - elif (type == "musicplayer"): + elif (type == "player"): try: artist = "N\\A" album = "N\\A" title = "N\\A" - if (self.parent.parent.player_name == 0): + if (self.parent.parent.player_name == "amarok"): artist = commands.getoutput("qdbus org.kde.amarok /Player GetMetadata 2> /dev/null | grep albumartist: | cut -c14-") album = commands.getoutput("qdbus org.kde.amarok /Player GetMetadata 2> /dev/null | grep album: | cut -c8-") title = commands.getoutput("qdbus org.kde.amarok /Player GetMetadata 2> /dev/null | grep title: | cut -c8-") - elif (self.parent.parent.player_name == 1): + elif (self.parent.parent.player_name == "mpd"): output = commands.getoutput("echo 'currentsong\nclose' | curl --connect-timeout 1 -fsm 3 telnet://localhost:6600 2> /dev/null") for line in output.split("\n"): if (line.split(": ")[0] == "Artist"): @@ -167,7 +167,7 @@ class PTMNotify: album = line.split(": ")[1] elif (line.split(": ")[0] == "Title"): title = line.split(": ")[1] - elif (self.parent.parent.player_name == 2): + elif (self.parent.parent.player_name == "qmmp"): artist = commands.getoutput("qmmp --nowplaying '%if(%p,%p,Unknown)' 2> /dev/null") album = commands.getoutput("qmmp --nowplaying '%if(%a,%a,Unknown)' 2> /dev/null") title = commands.getoutput("qmmp --nowplaying '%if(%t,%t,Unknown)' 2> /dev/null") @@ -261,7 +261,7 @@ class PTMNotify: pass try: if (sender == self.parent.parent.label_player): - content = self.createText("musicplayer") + content = self.createText("player") return content except: pass diff --git a/sources/ptm/contents/code/reinit.py b/sources/ptm/contents/code/reinit.py index c35ed31..9553505 100644 --- a/sources/ptm/contents/code/reinit.py +++ b/sources/ptm/contents/code/reinit.py @@ -43,7 +43,7 @@ class Reinit(): 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] + ptmVars['adv']['player'] = str(settings.get('player_name', "amarok")) ptmVars['app'] = {} ptmVars['app']['format'] = "