PluginManager/PluginManager.py

changeset 4115
0c70a8f8d54a
parent 4113
feac3108a780
child 4378
d8f81e864816
--- a/PluginManager/PluginManager.py	Sun Feb 15 18:02:47 2015 +0100
+++ b/PluginManager/PluginManager.py	Mon Feb 16 19:02:35 2015 +0100
@@ -375,6 +375,13 @@
             self.__modulesCount += 1
             if reload_:
                 imp.reload(module)
+                self.initOnDemandPlugin(name)
+                try:
+                    pluginObject = self.__onDemandInactivePlugins[name]
+                    pluginObject.initToolbar(
+                        self.__ui, e5App().getObject("ToolbarManager"))
+                except (KeyError, AttributeError):
+                    pass
         except PluginLoadError:
             print("Error loading plug-in module:", name)
         except PluginPy2IncompatibleError:
@@ -404,12 +411,22 @@
         
         if name in self.__inactiveModules:
             try:
+                pluginObject = self.__inactivePlugins[name]
+                try:
+                    pluginObject.prepareUnload()
+                except AttributeError:
+                    pass
                 del self.__inactivePlugins[name]
             except KeyError:
                 pass
             del self.__inactiveModules[name]
         elif name in self.__onDemandInactiveModules:
             try:
+                pluginObject = self.__onDemandInactivePlugins[name]
+                try:
+                    pluginObject.prepareUnload()
+                except AttributeError:
+                    pass
                 del self.__onDemandInactivePlugins[name]
             except KeyError:
                 pass
@@ -492,11 +509,9 @@
             (E5ToolBarManager)
         """
         self.initOnDemandPlugins()
-        for name, ref in e5App().getPluginObjects():
+        for pluginObject in self.__onDemandInactivePlugins.values():
             try:
-                tb = ref.initToolbar(self.__ui, toolbarManager)
-                if tb is not None:
-                    self.__ui.addToolBar(tb)
+                pluginObject.initToolbar(self.__ui, toolbarManager)
             except AttributeError:
                 # ignore it
                 pass

eric ide

mercurial