PluginProjectDjango.py

changeset 143
29d8187f989e
parent 142
ecadd7fd0963
child 145
104b14713e9e
--- a/PluginProjectDjango.py	Thu Jan 10 14:21:03 2019 +0100
+++ b/PluginProjectDjango.py	Fri May 10 19:39:15 2019 +0200
@@ -28,7 +28,7 @@
 author = "Detlev Offenbach <detlev@die-offenbachs.de>"
 autoactivate = True
 deactivateable = True
-version = "5.2.2"
+version = "5.2.3"
 className = "ProjectDjangoPlugin"
 packageName = "ProjectDjango"
 shortDescription = "Project support for Django projects."
@@ -165,8 +165,9 @@
         """
         self.__object = None
         
+        self.__mainMenu = None
         self.__mainAct = None
-        self.__mainMenu = None
+        self.__separatorAct = None
         
         self.__e5project = e5App().getObject("Project")
         
@@ -287,19 +288,34 @@
         Private slot to handle the projectOpened signal.
         """
         if self.__e5project.getProjectType() == "Django":
-            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