summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <wyskas@gmail.com>2009-11-21 12:11:40 +0100
committerAnton Khirnov <wyskas@gmail.com>2009-11-21 12:11:40 +0100
commit6c1241b211db9b3985940c0c87610c29bba250aa (patch)
treea14626d8a2138e201eff0ab93b8c47a23da142ac
parentce80e156d269076c148b9e8592b6f2ae74e0680f (diff)
plugin: really remove dock widgets
-rw-r--r--nephilim/plugin.py27
-rw-r--r--nephilim/winMain.py2
2 files changed, 12 insertions, 17 deletions
diff --git a/nephilim/plugin.py b/nephilim/plugin.py
index 560081b..4fc20cd 100644
--- a/nephilim/plugin.py
+++ b/nephilim/plugin.py
@@ -31,9 +31,8 @@ class Plugin(QtCore.QObject):
settings = None
# public, read-only
- loaded = None
-
- _dock_widget = None
+ loaded = False
+ dock_widget = None
_parent = None
o = None
@@ -66,7 +65,10 @@ class Plugin(QtCore.QObject):
self.logger.info('loading')
self._load()
opts = QtGui.QDockWidget.DockWidgetClosable|QtGui.QDockWidget.DockWidgetMovable
- QtGui.QApplication.instance().main_win.add_dock(self.get_dock_widget(opts))
+ self.dock_widget = self._get_dock_widget()
+ if self.dock_widget:
+ self.dock_widget.setFeatures(opts)
+ QtGui.QApplication.instance().main_win.add_dock(self.dock_widget)
QtGui.QApplication.instance().main_win.restore_layout()
self.mpclient.connect_changed.connect(self.set_enabled)
self.loaded = True
@@ -75,24 +77,16 @@ class Plugin(QtCore.QObject):
return
self.logger.info("unloading")
self._unload()
- dock_widget = self.get_dock_widget()
- if dock_widget:
- QtGui.QApplication.instance().main_win.remove_dock(dock_widget)
- self._dock_widget = None
+ if self.dock_widget:
+ QtGui.QApplication.instance().main_win.remove_dock(self.dock_widget)
+ self.dock_widget = None
self.settingsWidget = None
self.mpclient.connect_changed.disconnect(self.set_enabled)
- self.loaded = False
+ self.loaded = False
def set_enabled(self, val):
if self.o:
self.o.setEnabled(val)
- 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
@@ -132,6 +126,7 @@ class Plugin(QtCore.QObject):
dock=QtGui.QDockWidget(self.name, QtGui.QApplication.instance().main_win)
dock.setObjectName(self.name)
dock.setWidget(widget)
+ dock.setAllowedAreas(QtCore.Qt.AllDockWidgetAreas)
return dock
def _load(self):
diff --git a/nephilim/winMain.py b/nephilim/winMain.py
index c765038..d4668c9 100644
--- a/nephilim/winMain.py
+++ b/nephilim/winMain.py
@@ -143,9 +143,9 @@ class winMain(QtGui.QMainWindow):
self.__update_layout_menu()
def remove_dock(self, dock):
if dock:
+ self.removeDockWidget(dock)
if dock in self.__docks:
self.__docks.remove(dock)
- self.removeDockWidget(dock)
self.__update_layout_menu()
def setStatus(self, status):