PluginProjectPyramid.py

changeset 127
5e8519ee5565
parent 126
f148f85d9e16
child 132
c0d53fb9a0e0
--- a/PluginProjectPyramid.py	Thu Jan 10 14:21:05 2019 +0100
+++ b/PluginProjectPyramid.py	Fri May 10 19:41:20 2019 +0200
@@ -28,7 +28,7 @@
 author = "Detlev Offenbach <detlev@die-offenbachs.de>"
 autoactivate = True
 deactivateable = True
-version = "2.4.2"
+version = "2.4.3"
 className = "ProjectPyramidPlugin"
 packageName = "ProjectPyramid"
 shortDescription = "Project support for Pyramid projects."
@@ -153,8 +153,9 @@
         """
         self.__object = None
         
+        self.__mainMenu = None
         self.__mainAct = None
-        self.__mainMenu = None
+        self.__separatorAct = None
         
         self.__e5project = e5App().getObject("Project")
         
@@ -273,19 +274,34 @@
         Private slot to handle the projectOpened signal.
         """
         if self.__e5project.getProjectType() == "Pyramid":
-            projectAct = self.__ui.getMenuBarAction("project")
-            actions = self.__ui.menuBar().actions()
-            insertAct = actions[actions.index(projectAct) + 1]
-            self.__mainAct = self.__ui.menuBar().insertMenu(
-                insertAct, self.__mainMenu)
+            projectToolsMenu = self.__ui.getMenu("project_tools")
+            if projectToolsMenu is not None:
+                insertBeforeAct = projectToolsMenu.actions()[0]
+                self.__mainAct = projectToolsMenu.insertMenu(
+                    insertBeforeAct, self.__mainMenu)
+                self.__separatorAct = projectToolsMenu.insertSeparator(
+                    insertBeforeAct)
+            else:
+                projectAct = self.__ui.getMenuBarAction("project")
+                actions = self.__ui.menuBar().actions()
+                insertBeforeAct = actions[actions.index(projectAct) + 1]
+                self.__mainAct = self.__ui.menuBar().insertMenu(
+                    insertBeforeAct, self.__mainMenu)
     
     def __projectClosed(self):
         """
         Private slot to handle the projectClosed signal.
         """
         if self.__mainAct is not None:
-            self.__ui.menuBar().removeAction(self.__mainAct)
-            self.__mainAct = None
+            projectToolsMenu = self.__ui.getMenu("project_tools")
+            if projectToolsMenu is not None:
+                projectToolsMenu.removeAction(self.__separatorAct)
+                projectToolsMenu.removeAction(self.__mainAct)
+                self.__mainAct = None
+                self.__separatorAct = None
+            else:
+                self.__ui.menuBar().removeAction(self.__mainAct)
+                self.__mainAct = None
             self.__object.projectClosed()
     
     def fileTypesCallback(self):

eric ide

mercurial