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 """ |