diff options
Diffstat (limited to 'winSettings.py')
-rw-r--r-- | winSettings.py | 34 |
1 files changed, 28 insertions, 6 deletions
diff --git a/winSettings.py b/winSettings.py index 7951da0..310673f 100644 --- a/winSettings.py +++ b/winSettings.py @@ -2,11 +2,13 @@ from PyQt4 import QtGui, QtCore from misc import * from clMonty import monty +from clSettings import settings class winSettings(QtGui.QWidget): btnSave=None btnClose=None + lstPlugins=None winMain=None @@ -17,20 +19,28 @@ class winSettings(QtGui.QWidget): self.btnSave=Button('save all', self.onBtnSaveClick) self.btnClose=Button('close', self.onBtnCloseClick) - tabPlugins=QtGui.QTextEdit(self) - tabPlugins.setReadOnly(True) + self.lstPlugins=QtGui.QListWidget(self) layoutWin=QtGui.QVBoxLayout() layoutButtons=QtGui.QHBoxLayout() tabWidget=QtGui.QTabWidget(parent) self.setLayout(layoutWin) - tabWidget.addTab(tabPlugins, "plugins") + tabWidget.addTab(self.lstPlugins, "plugins") for p in self.winMain.plugins: plugin=self.winMain.plugins[p] - tabPlugins.insertHtml("%s: <i>%s</i><br />"%(plugin.getName(), plugin.getInfo())) + item=QtGui.QListWidgetItem("%s\t%s"%(plugin.getName(), plugin.getInfo())) + if plugin.isLoaded(): + item.setCheckState(QtCore.Qt.Checked) + else: + item.setCheckState(QtCore.Qt.Unchecked) + + if settings.get('%s.load'%(plugin.getName(True)),None)==None: + # load new plugins by default + item.setTextColor(QtCore.Qt.blue) + settings.set('%s.load'%(plugin.getName(True)), 1) + self.lstPlugins.addItem(item) tabWidget.addTab(plugin.getSettingsWidget(), plugin.getName()) - layoutWin.addWidget(tabWidget) layoutWin.addLayout(layoutButtons) @@ -39,6 +49,8 @@ class winSettings(QtGui.QWidget): layoutButtons.addWidget(self.btnSave) layoutButtons.addWidget(self.btnClose) + self.connect(self.lstPlugins, QtCore.SIGNAL('itemChanged (QListWidgetItem*)'), self.onlstPluginItemChanged) + self.setWindowIcon(appIcon) self.setWindowTitle('Settings') self.setAttribute(QtCore.Qt.WA_DeleteOnClose) @@ -57,7 +69,17 @@ class winSettings(QtGui.QWidget): plugin.saveSettings() def onBtnCloseClick(self): self.close() - + def onlstPluginItemChanged(self, item): + # check here if we have to load or unload the plugin! + pluginName=str(item.text()[0:str(item.text()).find('\t')]) + plugin=self.winMain.getPlugin(pluginName) + loaded=int(item.checkState()==QtCore.Qt.Checked) + settings.set('%s.load'%(plugin.getName(True)), loaded) + if loaded: + plugin.load() + else: + plugin.unload() + return def closeEvent(self, event): for p in self.winMain.plugins: plugin=self.winMain.plugins[p] |