configuration window refactoring

type "player_name" is str now
This commit is contained in:
arcan1s 2014-04-05 17:15:21 +04:00
parent 2e93325601
commit 614e15d336
5 changed files with 79 additions and 95 deletions

View File

@ -65,7 +65,7 @@ class ConfigDefinition:
settings.set('custom_netdev', str(self.configpage.ui.comboBox_netdev.currentText())) settings.set('custom_netdev', str(self.configpage.ui.comboBox_netdev.currentText()))
settings.set('battery_device', str(self.configpage.ui.lineEdit_batdev.text())) settings.set('battery_device', str(self.configpage.ui.lineEdit_batdev.text()))
settings.set('ac_device', str(self.configpage.ui.lineEdit_acdev.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()) settings.set('tooltip_num', self.configpage.ui.spinBox_tooltipNum.value())
for label in ['cpu', 'cpuclock', 'mem', 'swap', 'down', 'up']: for label in ['cpu', 'cpuclock', 'mem', 'swap', 'down', 'up']:
@ -84,87 +84,16 @@ class ConfigDefinition:
# disconnecting from source and clear layout # disconnecting from source and clear layout
self.parent.disconnectFromSource() 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 = "---------------" labelOrder = "---------------"
for label in self.defaults['order'].keys():
for label in self.parent.dict_orders.keys(): if (self.configpage.checkboxes[self.defaults['order'][label]].checkState() > 0):
exec ('self.parent.' + self.parent.dict_orders[label] + 'Bool = ' + str(self.configpage.checkboxes[self.parent.dict_orders[label]].checkState())) pos = self.configpage.sliders[self.defaults['order'][label]].value() - 1
if (self.configpage.checkboxes[self.parent.dict_orders[label]].checkState() > 0): labelOrder = labelOrder[:pos] + label + labelOrder[pos+1:]
pos = self.configpage.sliders[self.parent.dict_orders[label]].value() - 1 settings.set(self.defaults['confFormat'][self.defaults['order'][label]], str(self.configpage.lineedits[self.defaults['order'][label]].text()))
self.parent.label_order = self.parent.label_order[:pos] + label + self.parent.label_order[pos+1:] settings.set(self.defaults['confBool'][self.defaults['order'][label]], self.configpage.checkboxes[self.defaults['order'][label]].checkState())
exec ('self.parent.' + self.parent.dict_orders[label] + 'Format = str(self.configpage.lineedits[self.parent.dict_orders[label]].text())') labelOrder = ''.join(labelOrder.split('-'))
exec ('settings.set("' + self.parent.dict_orders[label] + 'Format", self.parent.' + self.parent.dict_orders[label] + 'Format)') settings.set('label_order', labelOrder)
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)
# reinitializate # reinitializate
self.parent.reInit() self.parent.reInit()
@ -228,7 +157,8 @@ class ConfigDefinition:
self.configpage.ui.comboBox_netdev.setCurrentIndex(index) 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_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.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.spinBox_tooltipNum.setValue(settings.get('tooltip_num', 100).toInt()[0])
self.configpage.ui.kcolorcombo_cpu.setColor(QColor(str(settings.get('cpu_color', '#ff0000')))) 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.spinBox_mpdport.setValue(int(deSettings['MPDPORT']))
self.configpage.ui.lineEdit_customCommand.setText(deSettings['CUSTOM']) 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(): 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) self.configpage.checkboxes[self.defaults['order'][label]].setCheckState(bool)
if (bool > 0): if (bool > 0):
self.configpage.sliders[self.defaults['order'][label]].setValue(label_order.find(label)+1) 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'][label], self.defaults['format'][label]))) 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 # add config page
page = parent.addPage(self.configpage, i18n(self.parent.name())) page = parent.addPage(self.configpage, i18n(self.parent.name()))

View File

@ -168,19 +168,19 @@ class DataEngine:
elif (sourceName == "player"): elif (sourceName == "player"):
updatedData['name'] = "player" updatedData['name'] = "player"
updatedData['value'] = {} 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']['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']['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']['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']['time'] = str(data[QString(u'amarok_duration')].toUtf8()).decode("utf-8")
updatedData['value']['title'] = str(data[QString(u'amarok_title')].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']['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']['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']['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']['time'] = str(data[QString(u'mpd_duration')].toUtf8()).decode("utf-8")
updatedData['value']['title'] = str(data[QString(u'mpd_title')].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']['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']['artist'] = str(data[QString(u'qmmp_artist')].toUtf8()).decode("utf-8")
updatedData['value']['progress'] = str(data[QString(u'qmmp_progress')].toUtf8()).decode("utf-8") updatedData['value']['progress'] = str(data[QString(u'qmmp_progress')].toUtf8()).decode("utf-8")
@ -244,3 +244,49 @@ class DataEngine:
#pass #pass
return updatedData 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)

View File

@ -402,6 +402,13 @@ class pyTextWidget(plasmascript.Applet):
def disconnectFromSource(self): def disconnectFromSource(self):
"""function to disconnect from sources""" """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): def reInit(self):

View File

@ -149,16 +149,16 @@ class PTMNotify:
text = text + "%s" %(commands.getoutput("acpi -abi")) text = text + "%s" %(commands.getoutput("acpi -abi"))
except: except:
text = "Something wrong" text = "Something wrong"
elif (type == "musicplayer"): elif (type == "player"):
try: try:
artist = "N\\A" artist = "N\\A"
album = "N\\A" album = "N\\A"
title = "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-") 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-") 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-") 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") output = commands.getoutput("echo 'currentsong\nclose' | curl --connect-timeout 1 -fsm 3 telnet://localhost:6600 2> /dev/null")
for line in output.split("\n"): for line in output.split("\n"):
if (line.split(": ")[0] == "Artist"): if (line.split(": ")[0] == "Artist"):
@ -167,7 +167,7 @@ class PTMNotify:
album = line.split(": ")[1] album = line.split(": ")[1]
elif (line.split(": ")[0] == "Title"): elif (line.split(": ")[0] == "Title"):
title = line.split(": ")[1] 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") artist = commands.getoutput("qmmp --nowplaying '%if(%p,%p,Unknown)' 2> /dev/null")
album = commands.getoutput("qmmp --nowplaying '%if(%a,%a,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") title = commands.getoutput("qmmp --nowplaying '%if(%t,%t,Unknown)' 2> /dev/null")
@ -261,7 +261,7 @@ class PTMNotify:
pass pass
try: try:
if (sender == self.parent.parent.label_player): if (sender == self.parent.parent.label_player):
content = self.createText("musicplayer") content = self.createText("player")
return content return content
except: except:
pass pass

View File

@ -43,7 +43,7 @@ class Reinit():
ptmVars['adv']['customUptime'] = str(settings.get('custom_uptime', '$dd,$hh,$mm')) ptmVars['adv']['customUptime'] = str(settings.get('custom_uptime', '$dd,$hh,$mm'))
ptmVars['adv']['netdevBool'] = settings.get('netdevBool', 0).toInt()[0] ptmVars['adv']['netdevBool'] = settings.get('netdevBool', 0).toInt()[0]
ptmVars['adv']['netDir'] = str(settings.get('netdir', '/sys/class/net')) 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'] = {}
ptmVars['app']['format'] = "<pre><p align=\"center\"><span style=\" font-family:'" + str(settings.get('font_family', 'Terminus')) +\ ptmVars['app']['format'] = "<pre><p align=\"center\"><span style=\" font-family:'" + str(settings.get('font_family', 'Terminus')) +\