summaryrefslogtreecommitdiff
path: root/nephilim/clPlugin.py
diff options
context:
space:
mode:
Diffstat (limited to 'nephilim/clPlugin.py')
-rw-r--r--nephilim/clPlugin.py145
1 files changed, 71 insertions, 74 deletions
diff --git a/nephilim/clPlugin.py b/nephilim/clPlugin.py
index 5849634..dcbd1a0 100644
--- a/nephilim/clPlugin.py
+++ b/nephilim/clPlugin.py
@@ -6,90 +6,95 @@ import plugins
from misc import *
class Plugin:
- name = None
- dockWidget = None
- settings = None
- winMain = None
- loaded = None
- listeners = None
- mpclient = None
- DEFAULTS = {}
-
- def __init__(self, winMain, name):
- self.name = name
- self.winMain = winMain
- self.loaded = False
- self.listeners = []
- self.mpclient = winMain.mpclient
- self.settings = QtCore.QSettings(ORGNAME, APPNAME)
+ _name = None
+ _dock_widget = None
+ _settings = None
+ _loaded = None
+ _listeners = None
+ _parent = None
+ _mpclient = None
+ DEFAULTS = {}
+ LISTENERS = {}
+
+ def __init__(self, parent, mpclient, name):
+ self._name = name
+ self._parent = parent
+ self._mpclient = mpclient
+ self._loaded = False
+ self._listeners = []
+ self._settings = QtCore.QSettings(ORGNAME, APPNAME)
#init settings
- self.settings.beginGroup(self.name)
+ self._settings.beginGroup(name)
for key in self.DEFAULTS:
- if not self.settings.contains(key):
- self.settings.setValue(key, QVariant(self.DEFAULTS[key]))
- self.settings.endGroup()
+ if not self._settings.contains(key):
+ self._settings.setValue(key, QVariant(self.DEFAULTS[key]))
+ self._settings.endGroup()
- def getName(self):
- return self.name
- def getInfo(self):
- return ''
- def getExtInfo(self):
+ for event, listener in self.LISTENERS.iteritems():
+ self._listeners.append([event, eval('self.%s'%listener)])
+
+ def name(self):
+ return self._name
+ def info(self):
return ''
- def getWinMain(self):
- return self.winMain
- def setStatus(self, status):
- self.winMain.setStatus(status)
+ def parent(self):
+ return self._parent
+ def set_status(self, status):
+ self._parent.setStatus(status)
+ def mpclient(self):
+ return self._mpclient
+ def settings(self):
+ return self._settings
def load(self):
logging.info("loading")
- if len(self.listeners):
- logging.debug("adding %s listeners"%(len(self.listeners)))
- for listener in self.listeners:
- self.mpclient.add_listener(listener[0], listener[1])
+ logging.debug("adding %s listeners"%(len(self._listeners)))
+ for listener in self._listeners:
+ self._mpclient.add_listener(listener[0], listener[1])
self._load()
- opts=QtGui.QDockWidget.DockWidgetClosable|QtGui.QDockWidget.DockWidgetMovable
- self.winMain.addDock(self.getDockWidget(opts))
- self.loaded=True
+ opts = QtGui.QDockWidget.DockWidgetClosable|QtGui.QDockWidget.DockWidgetMovable
+ self._parent.addDock(self.get_dock_widget(opts))
+ self._loaded = True
def unload(self):
- if not self.loaded:
+ if not self._loaded:
return
logging.info("unloading")
- if len(self.listeners):
- logging.debug("removing %s listeners"%(len(self.listeners)))
- for listener in self.listeners:
- self.mpclient.remove_listener(listener[0], listener[1])
+ if self._listeners:
+ logging.debug("removing %s listeners"%(len(self._listeners)))
+ for listener in self._listeners:
+ self._mpclient.remove_listener(listener[0], listener[1])
self._unload()
- dock_widget = self.getDockWidget()
+ dock_widget = self.get_dock_widget()
if dock_widget:
- self.winMain.removeDock(dock_widget)
- self.dockWidget = None
- self.settingsWidget = None
- self.loaded = False
- def isLoaded(self):
- return self.loaded
-
- def addListener(self, event, callback):
- self.listeners.append([event, callback])
-
- def getDockWidget(self, opts=None):
- self.dockWidget = self._getDockWidget()
- if self.dockWidget and opts:
- self.dockWidget.setFeatures(opts)
- self.dockWidget.setAllowedAreas(QtCore.Qt.AllDockWidgetAreas)
- return self.dockWidget
+ self._parent.removeDock(dock_widget)
+ self._dock_widget = None
+ self._settingsWidget = None
+ self._loaded = False
+ def is_loaded(self):
+ return self._loaded
+
+ def get_dock_widget(self, opts = None):
+ self._dock_widget = self._get_dock_widget()
+ if self._dock_widget and opts:
+ self._dock_widget.setFeatures(opts)
+ self._dock_widget.setAllowedAreas(QtCore.Qt.AllDockWidgetAreas)
+ return self._dock_widget
class SettingsWidget(QtGui.QWidget):
""" plugins should subclass this"""
plugin = None
- settings = None
+ _settings = None
def __init__(self, plugin):
QtGui.QWidget.__init__(self)
- self.plugin = plugin
- self.settings = QtCore.QSettings(ORGNAME, APPNAME)
+ self.plugin = plugin
+ self._settings = QtCore.QSettings(ORGNAME, APPNAME)
+
+ def settings(self):
+ return self._settings
def save_settings(self):
""" reimplement this"""
@@ -109,21 +114,13 @@ class Plugin:
"""Should return subclassed SettingsWidget."""
return
- def resetSettingCache(self):
- #self.settings=None
- self.settingsWidget=None
-
- def _getPluginClassname(self, cl):
- """Returns the name of a plugin (without 'plugin'-prefix)"""
- return str(cl).split('.')[-1].lower()[len('plugin'):]
-
- def _getDockWidget(self):
+ def _get_dock_widget(self):
"""Override this one."""
return None
- def _createDock(self, widget):
- """Creates a QDockWidget with parent $parent containing widget $widget."""
- dock=QtGui.QDockWidget(self.name, self.winMain)
- dock.setObjectName(self.name)
+ def _create_dock(self, widget):
+ """Creates a QDockWidget with _parent $_parent containing widget $widget."""
+ dock=QtGui.QDockWidget(self._name, self._parent)
+ dock.setObjectName(self._name)
dock.setWidget(widget)
return dock