diff -r 3bb9b7d997db -r 83084f088655 eric7/Plugins/VcsPlugins/vcsMercurial/ProjectHelper.py --- 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): """