eric7/Plugins/VcsPlugins/vcsMercurial/ProjectHelper.py

branch
eric7
changeset 8324
83084f088655
parent 8322
b422b4e77d19
child 8356
68ec9c3d4de5
--- a/eric7/Plugins/VcsPlugins/vcsMercurial/ProjectHelper.py	Tue May 18 19:25:53 2021 +0200
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/ProjectHelper.py	Wed May 19 17:36:34 2021 +0200
@@ -1427,13 +1427,13 @@
         self.__extensionsMenu = QMenu(self.tr("Extensions"), menu)
         self.__extensionsMenu.setTearOffEnabled(True)
         self.__extensionsMenu.aboutToShow.connect(self.__showExtensionMenu)
-        # TODO: change this to store the menu instead of the menu action to not use action.menu()
-        self.extensionMenus = {}
+        self.__extensionMenus = {}
         for extensionMenuTitle in sorted(self.__extensionMenuTitles):
             extensionName = self.__extensionMenuTitles[extensionMenuTitle]
-            self.extensionMenus[extensionName] = self.__extensionsMenu.addMenu(
-                self.__extensions[extensionName].initMenu(
-                    self.__extensionsMenu))
+            extensionMenu = self.__extensions[extensionName].initMenu(
+                    self.__extensionsMenu)
+            self.__extensionMenus[extensionName] = extensionMenu
+            self.__extensionsMenu.addMenu(extensionMenu)
         self.vcs.activeExtensionsChanged.connect(self.__showExtensionMenu)
         
         graftMenu = QMenu(self.tr("Copy Changesets"), menu)
@@ -1630,9 +1630,9 @@
                 menu.hideTearOffMenu()
         
         # close torn off extension menus
-        for extensionName in self.extensionMenus:
+        for extensionName in self.__extensionMenus:
             self.__extensions[extensionName].shutdown()
-            menu = self.extensionMenus[extensionName].menu()
+            menu = self.__extensionMenus[extensionName]
             if menu.isTearOffMenuVisible():
                 menu.hideTearOffMenu()
         
@@ -1643,17 +1643,15 @@
         """
         Private slot showing the extensions menu.
         """
-        for extensionName in self.extensionMenus:
-            self.extensionMenus[extensionName].setEnabled(
+        for extensionName in self.__extensionMenus:
+            extensionMenu = self.__extensionMenus[extensionName]
+            extensionMenu.menuAction().setEnabled(
                 self.vcs.isExtensionActive(extensionName))
             if (
-                not self.extensionMenus[extensionName].isEnabled() and
-                self.extensionMenus[extensionName].menu()
-                .isTearOffMenuVisible()
+                not extensionMenu.menuAction().isEnabled() and
+                extensionMenu.isTearOffMenuVisible()
             ):
-                self.extensionMenus[extensionName].menu().hideTearOffMenu()
-        if self.vcs.version < (4, 8, 0):
-            self.extensionMenus["closehead"].setEnabled(False)
+                extensionMenu.hideTearOffMenu()
     
     def __hgExtendedDiff(self):
         """

eric ide

mercurial