Plugins/VcsPlugins/vcsMercurial/ProjectHelper.py

changeset 1088
9c84b88cff09
parent 1078
aeee8401e2ce
child 1093
47bc4ef30315
equal deleted inserted replaced
1087:fb8cd56819a9 1088:9c84b88cff09
890 bisectMenu.addAction(self.hgBisectBadAct) 890 bisectMenu.addAction(self.hgBisectBadAct)
891 bisectMenu.addAction(self.hgBisectSkipAct) 891 bisectMenu.addAction(self.hgBisectSkipAct)
892 bisectMenu.addAction(self.hgBisectResetAct) 892 bisectMenu.addAction(self.hgBisectResetAct)
893 self.subMenus.append(bisectMenu) 893 self.subMenus.append(bisectMenu)
894 894
895 extensionsMenu = QMenu(self.trUtf8("Extensions"), menu) 895 self.__extensionsMenu = QMenu(self.trUtf8("Extensions"), menu)
896 extensionsMenu.aboutToShow.connect(self.__showExtensionMenu) 896 self.__extensionsMenu.setTearOffEnabled(True)
897 self.__extensionsMenu.aboutToShow.connect(self.__showExtensionMenu)
897 self.extensionMenus = {} 898 self.extensionMenus = {}
898 for extensionMenuTitle in sorted(self.__extensionMenuTitles): 899 for extensionMenuTitle in sorted(self.__extensionMenuTitles):
899 extensionName = self.__extensionMenuTitles[extensionMenuTitle] 900 extensionName = self.__extensionMenuTitles[extensionMenuTitle]
900 self.extensionMenus[extensionName] = extensionsMenu.addMenu( 901 self.extensionMenus[extensionName] = self.__extensionsMenu.addMenu(
901 self.__extensions[extensionName].initMenu(extensionsMenu)) 902 self.__extensions[extensionName].initMenu(self.__extensionsMenu))
903 self.vcs.activeExtensionsChanged.connect(self.__showExtensionMenu)
902 904
903 act = menu.addAction( 905 act = menu.addAction(
904 UI.PixmapCache.getIcon( 906 UI.PixmapCache.getIcon(
905 os.path.join("VcsPlugins", "vcsMercurial", "icons", "mercurial.png")), 907 os.path.join("VcsPlugins", "vcsMercurial", "icons", "mercurial.png")),
906 self.vcs.vcsName(), self._vcsInfoDisplay) 908 self.vcs.vcsName(), self._vcsInfoDisplay)
917 menu.addAction(self.hgOutgoingAct) 919 menu.addAction(self.hgOutgoingAct)
918 menu.addAction(self.hgPushAct) 920 menu.addAction(self.hgPushAct)
919 menu.addSeparator() 921 menu.addSeparator()
920 menu.addMenu(bundleMenu) 922 menu.addMenu(bundleMenu)
921 menu.addSeparator() 923 menu.addSeparator()
922 menu.addMenu(extensionsMenu) 924 menu.addMenu(self.__extensionsMenu)
923 menu.addSeparator() 925 menu.addSeparator()
924 menu.addAction(self.vcsNewAct) 926 menu.addAction(self.vcsNewAct)
925 menu.addAction(self.vcsExportAct) 927 menu.addAction(self.vcsExportAct)
926 menu.addSeparator() 928 menu.addSeparator()
927 menu.addAction(self.vcsAddAct) 929 menu.addAction(self.vcsAddAct)
966 968
967 def shutdown(self): 969 def shutdown(self):
968 """ 970 """
969 Public method to perform shutdown actions. 971 Public method to perform shutdown actions.
970 """ 972 """
973 self.vcs.activeExtensionsChanged.disconnect(self.__showExtensionMenu)
974
971 # close torn off sub menus 975 # close torn off sub menus
972 for menu in self.subMenus: 976 for menu in self.subMenus:
973 if menu.isTearOffMenuVisible(): 977 if menu.isTearOffMenuVisible():
974 menu.hideTearOffMenu() 978 menu.hideTearOffMenu()
975 979
976 # close torn off extension menus 980 # close torn off extension menus
977 for extensionName in self.extensionMenus: 981 for extensionName in self.extensionMenus:
978 menu = self.extensionMenus[extensionName].menu() 982 menu = self.extensionMenus[extensionName].menu()
979 if menu.isTearOffMenuVisible(): 983 if menu.isTearOffMenuVisible():
980 menu.hideTearOffMenu() 984 menu.hideTearOffMenu()
985
986 if self.__extensionsMenu.isTearOffMenuVisible():
987 self.__extensionsMenu.hideTearOffMenu()
981 988
982 def __showExtensionMenu(self): 989 def __showExtensionMenu(self):
983 """ 990 """
984 Private slot showing the extensions menu. 991 Private slot showing the extensions menu.
985 """ 992 """
986 for extensionName in self.extensionMenus: 993 for extensionName in self.extensionMenus:
987 self.extensionMenus[extensionName].setEnabled( 994 self.extensionMenus[extensionName].setEnabled(
988 self.vcs.isExtensionActive(extensionName)) 995 self.vcs.isExtensionActive(extensionName))
996 if not self.extensionMenus[extensionName].isEnabled() and \
997 self.extensionMenus[extensionName].menu().isTearOffMenuVisible():
998 self.extensionMenus[extensionName].menu().hideTearOffMenu()
989 999
990 def __hgExtendedDiff(self): 1000 def __hgExtendedDiff(self):
991 """ 1001 """
992 Private slot used to perform a hg diff with the selection of revisions. 1002 Private slot used to perform a hg diff with the selection of revisions.
993 """ 1003 """

eric ide

mercurial