diff options
-rw-r--r-- | nephilim/winMain.py | 4 | ||||
-rw-r--r-- | nephilim/winSettings.py | 101 |
2 files changed, 51 insertions, 54 deletions
diff --git a/nephilim/winMain.py b/nephilim/winMain.py index 6dc3368..190b40b 100644 --- a/nephilim/winMain.py +++ b/nephilim/winMain.py @@ -5,7 +5,7 @@ import logging from misc import ORGNAME, APPNAME, sec2min, appIcon from mpclient import MPClient from winConnect import winConnect -from winSettings import winSettings +from winSettings import SettingsWindow import plugins DEFAULT_LAYOUT_FILE = 'default_layout' @@ -205,7 +205,7 @@ class winMain(QtGui.QMainWindow): def showWinSettings(self): if not self.wSettings: - self.wSettings=winSettings(self) + self.wSettings = SettingsWindow(self) self.wSettings.show() self.wSettings.raise_() diff --git a/nephilim/winSettings.py b/nephilim/winSettings.py index e512efb..8986a1c 100644 --- a/nephilim/winSettings.py +++ b/nephilim/winSettings.py @@ -3,18 +3,16 @@ from PyQt4.QtCore import QVariant import os from misc import ORGNAME, APPNAME, Button, appIcon -import plugins import plugin -class winSettings(QtGui.QWidget): - btnSave=None - btnClose=None - lstPlugins=None - - winMain=None - settings = None - settings_wg = [] +class SettingsWindow(QtGui.QWidget): + save_btn = None + close_btn = None + pluginlist = None + main_win = None + settings = None + settings_wg = [] class SettingsWidgetMPD(plugin.Plugin.SettingsWidget): mpclient = None @@ -42,18 +40,21 @@ class winSettings(QtGui.QWidget): class Output(QtGui.QCheckBox): id = None mpclient = None + def __init__(self, text, mpclient, id): + QtGui.QCheckBox.__init__(self, text) + self.mpclient = mpclient + self.id = id + self.connect(self, QtCore.SIGNAL('stateChanged(int)'), self.change_state) + def change_state(self, state): self.mpclient.set_output(self.id, state) for output in self.mpclient.outputs(): - box = Output(output['outputname']) + box = Output(output['outputname'], self.mpclient, output['outputid']) if output['outputenabled'] == '1': box.setChecked(True) else: box.setChecked(False) - box.id = int(output['outputid']) - box.mpclient = self.mpclient - self.connect(box, QtCore.SIGNAL('stateChanged(int)'), box.change_state) self.outputs.layout().addWidget(box) self.setLayout(QtGui.QVBoxLayout()) @@ -73,33 +74,34 @@ class winSettings(QtGui.QWidget): def update_db(self): self.mpclient.update_db() - def __init__(self, winMain, parent=None): - QtGui.QWidget.__init__(self, parent) + def __init__(self, main_win): + QtGui.QWidget.__init__(self, main_win, QtCore.Qt.Window) self.settings = QtCore.QSettings(ORGNAME, APPNAME) - self.winMain = winMain + self.main_win = main_win + + self.save_btn = Button('save all', self.save_clicked) + self.close_btn = Button('close', self.close_clicked) - self.btnSave = Button('save all', self.onBtnSaveClick) - self.btnClose = Button('close', self.onBtnCloseClick) + tab_wg = QtGui.QTabWidget(self) + self.settings_wg.append(self.SettingsWidgetMPD(self.main_win.mpclient)) + tab_wg.addTab(self.settings_wg[-1], 'MPD settings') - tabWidget = QtGui.QTabWidget(parent) - self.settings_wg.append(self.SettingsWidgetMPD(self.winMain.mpclient)) - tabWidget.addTab(self.settings_wg[-1], 'MPD settings') + self.pluginlist = QtGui.QListWidget(self) + self.fill_pluginlist() + tab_wg.addTab(self.pluginlist, 'Plugins') - self.lstPlugins = QtGui.QListWidget(self) - tabWidget.addTab(self.lstPlugins, 'plugins') - for plugin in self.winMain.plugins.loaded_plugins(): + for plugin in self.main_win.plugins.loaded_plugins(): wg = plugin.get_settings_widget() if wg: self.settings_wg.append(wg) - tabWidget.addTab(self.settings_wg[-1], plugin.name()) - self.fillList() + tab_wg.addTab(self.settings_wg[-1], plugin.name()) self.setLayout(QtGui.QGridLayout()) - self.layout().addWidget(tabWidget, 0, 0, 1, 2) - self.layout().addWidget(self.btnSave, 1, 0) - self.layout().addWidget(self.btnClose, 1, 1) + self.layout().addWidget(tab_wg, 0, 0, 1, 2) + self.layout().addWidget(self.save_btn, 1, 0) + self.layout().addWidget(self.close_btn, 1, 1) - self.connect(self.lstPlugins, QtCore.SIGNAL('itemChanged (QListWidgetItem*)'), self.onlstPluginItemChanged) + self.connect(self.pluginlist, QtCore.SIGNAL('itemChanged(QListWidgetItem*)'), self.plugin_checked) self.setWindowIcon(QtGui.QIcon(appIcon)) self.setWindowTitle('Settings') @@ -107,46 +109,41 @@ class winSettings(QtGui.QWidget): self.center() self.resize(800,400) - def fillList(self): - self.lstPlugins.clear() - for plugin in self.winMain.plugins.plugins(): - item = QtGui.QListWidgetItem("%s\t%s"%(plugin.name(), plugin.getInfo())) + def fill_pluginlist(self): + self.pluginlist.clear() + for plugin in self.main_win.plugins.plugins(): + item = QtGui.QListWidgetItem("%s\t%s"%(plugin.name(), plugin.info())) if plugin.is_loaded(): item.setCheckState(QtCore.Qt.Checked) else: item.setCheckState(QtCore.Qt.Unchecked) - if self.settings.value(plugin.name() + '/load') == None: - # load new plugins by default - item.setTextColor(QtCore.Qt.blue) - self.settings.setValue(plugin.name() + '/load', QtCore.QVariant(True)) - - self.lstPlugins.addItem(item) + self.pluginlist.addItem(item) def center(self): screen = QtGui.QDesktopWidget().screenGeometry() - size = self.geometry() + size = self.geometry() self.move((screen.width()-size.width())/2, (screen.height()-size.height())/2+100) - def onBtnSaveClick(self): + def save_clicked(self): for wg in self.settings_wg: wg.save_settings() - def onBtnCloseClick(self): + def close_clicked(self): self.close() - def onlstPluginItemChanged(self, item): - # check here if we have to load or unload the plugin! + + def plugin_checked(self, item): toload = (item.checkState() == QtCore.Qt.Checked) - name=str(item.text()[0:str(item.text()).find('\t')]) + name = str(item.text()[0:str(item.text()).find('\t')]) if toload: # refresh the plugin file - self.winMain.plugins.load(name) - self.fillList() - self.winMain.restoreLayout() + self.main_win.plugins.load(name) + self.fill_pluginlist() + self.main_win.restoreLayout() else: - self.winMain.plugins.unload(name) + self.main_win.plugins.unload(name) self.settings.setValue(name + '/load', QtCore.QVariant(toload)) def closeEvent(self, event): - self.settings_wg = None - self.winMain.wSettings=None + self.settings_wg = None + self.main_win.wSettings = None |