src/eric7/Plugins/VcsPlugins/vcsMercurial/ProjectHelper.py

branch
eric7
changeset 11068
15f0385e0471
parent 11067
67b92e2cb719
child 11075
282fc28b44ee
--- a/src/eric7/Plugins/VcsPlugins/vcsMercurial/ProjectHelper.py	Sun Dec 01 14:55:31 2024 +0100
+++ b/src/eric7/Plugins/VcsPlugins/vcsMercurial/ProjectHelper.py	Sun Dec 01 18:17:51 2024 +0100
@@ -41,30 +41,34 @@
         from .GpgExtension.ProjectHelper import GpgProjectHelper
         from .HisteditExtension.ProjectHelper import HisteditProjectHelper
         from .LargefilesExtension.ProjectHelper import LargefilesProjectHelper
-        from .PurgeExtension.ProjectHelper import PurgeProjectHelper
+        from .PurgeBuiltin.ProjectHelper import PurgeProjectHelper
         from .QueuesExtension.ProjectHelper import QueuesProjectHelper
         from .RebaseExtension.ProjectHelper import RebaseProjectHelper
-        from .ShelveExtension.ProjectHelper import ShelveProjectHelper
+        from .ShelveBuiltin.ProjectHelper import ShelveProjectHelper
 
         super().__init__(vcsObject, projectObject, parent, name)
 
+        # instantiate interfaces for additional built-in functions
+        self.__builtins = {
+            "purge": PurgeProjectHelper(),
+            "shelve": ShelveProjectHelper(),
+        }
+        self.__builtinMenuTitles = {
+            self.__builtins[b].menuTitle(): b for b in self.__builtins
+        }
+
         # instantiate the extensions
         self.__extensions = {
-            "mq": QueuesProjectHelper(),
-            "purge": PurgeProjectHelper(),
+            "closehead": CloseheadProjectHelper(),
             "gpg": GpgProjectHelper(),
-            "rebase": RebaseProjectHelper(),
-            "shelve": ShelveProjectHelper(),
-            "largefiles": LargefilesProjectHelper(),
             "histedit": HisteditProjectHelper(),
-            "closehead": CloseheadProjectHelper(),
+            "largefiles": LargefilesProjectHelper(),
+            "mq": QueuesProjectHelper(),
+            "rebase": RebaseProjectHelper(),
         }
-
-        self.__extensionMenuTitles = {}
-        for extension in self.__extensions:
-            self.__extensionMenuTitles[self.__extensions[extension].menuTitle()] = (
-                extension
-            )
+        self.__extensionMenuTitles = {
+            self.__extensions[e].menuTitle(): e for e in self.__extensions
+        }
 
         self.__toolbarManager = None
 
@@ -80,6 +84,9 @@
         self.vcs = vcsObject
         self.project = projectObject
 
+        for builtin in self.__builtins.values():
+            builtin.setObjects(vcsObject, projectObject)
+
         for extension in self.__extensions.values():
             extension.setObjects(vcsObject, projectObject)
 
@@ -1786,6 +1793,15 @@
             bookmarksMenu.addAction(self.hgBookmarkPushAllAct)
         self.subMenus.append(bookmarksMenu)
 
+        self.__builtinsMenu = QMenu(self.tr("Other Functions"), menu)
+        self.__builtinsMenu.setTearOffEnabled(True)
+        self.__builtinMenus = {}
+        for builtinMenuTitle in sorted(self.__builtinMenuTitles):
+            builtinName = self.__builtinMenuTitles[builtinMenuTitle]
+            builtinMenu = self.__builtins[builtinName].initMenu(self.__builtinsMenu)
+            self.__builtinMenus[builtinName] = builtinMenu
+            self.__builtinsMenu.addMenu(builtinMenu)
+
         self.__extensionsMenu = QMenu(self.tr("Extensions"), menu)
         self.__extensionsMenu.setTearOffEnabled(True)
         self.__extensionsMenu.aboutToShow.connect(self.__showExtensionMenu)
@@ -1864,6 +1880,7 @@
         menu.addAction(self.vcsDiffAct)
         menu.addAction(self.hgExtDiffAct)
         menu.addSeparator()
+        menu.addMenu(self.__builtinsMenu)
         menu.addMenu(self.__extensionsMenu)
         menu.addSeparator()
         menu.addAction(self.vcsSwitchAct)

eric ide

mercurial