summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nephilim/winMain.py4
-rw-r--r--nephilim/winSettings.py101
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