840 |
840 |
841 @param menu reference to the menu to be populated (QMenu) |
841 @param menu reference to the menu to be populated (QMenu) |
842 """ |
842 """ |
843 menu.clear() |
843 menu.clear() |
844 |
844 |
845 # TODO: close torn off menus in the shutdown method (extend base class with this method) |
845 self.subMenus = [] |
|
846 |
846 adminMenu = QMenu(self.trUtf8("Repository Administration"), menu) |
847 adminMenu = QMenu(self.trUtf8("Repository Administration"), menu) |
847 adminMenu.setTearOffEnabled(True) |
848 adminMenu.setTearOffEnabled(True) |
848 adminMenu.addAction(self.hgHeadsAct) |
849 adminMenu.addAction(self.hgHeadsAct) |
849 adminMenu.addAction(self.hgParentsAct) |
850 adminMenu.addAction(self.hgParentsAct) |
850 adminMenu.addAction(self.hgTipAct) |
851 adminMenu.addAction(self.hgTipAct) |
862 adminMenu.addSeparator() |
863 adminMenu.addSeparator() |
863 adminMenu.addAction(self.hgBackoutAct) |
864 adminMenu.addAction(self.hgBackoutAct) |
864 adminMenu.addAction(self.hgRollbackAct) |
865 adminMenu.addAction(self.hgRollbackAct) |
865 adminMenu.addSeparator() |
866 adminMenu.addSeparator() |
866 adminMenu.addAction(self.hgVerifyAct) |
867 adminMenu.addAction(self.hgVerifyAct) |
|
868 self.subMenus.append(adminMenu) |
867 |
869 |
868 specialsMenu = QMenu(self.trUtf8("Specials"), menu) |
870 specialsMenu = QMenu(self.trUtf8("Specials"), menu) |
869 specialsMenu.setTearOffEnabled(True) |
871 specialsMenu.setTearOffEnabled(True) |
870 specialsMenu.addAction(self.hgPushForcedAct) |
872 specialsMenu.addAction(self.hgPushForcedAct) |
871 specialsMenu.addSeparator() |
873 specialsMenu.addSeparator() |
872 specialsMenu.addAction(self.hgServeAct) |
874 specialsMenu.addAction(self.hgServeAct) |
|
875 self.subMenus.append(specialsMenu) |
873 |
876 |
874 bundleMenu = QMenu(self.trUtf8("Changegroup Management"), menu) |
877 bundleMenu = QMenu(self.trUtf8("Changegroup Management"), menu) |
875 bundleMenu.setTearOffEnabled(True) |
878 bundleMenu.setTearOffEnabled(True) |
876 bundleMenu.addAction(self.hgBundleAct) |
879 bundleMenu.addAction(self.hgBundleAct) |
877 bundleMenu.addAction(self.hgIdentifyBundleAct) |
880 bundleMenu.addAction(self.hgIdentifyBundleAct) |
878 bundleMenu.addAction(self.hgPreviewBundleAct) |
881 bundleMenu.addAction(self.hgPreviewBundleAct) |
879 bundleMenu.addAction(self.hgUnbundleAct) |
882 bundleMenu.addAction(self.hgUnbundleAct) |
|
883 self.subMenus.append(bundleMenu) |
880 |
884 |
881 bisectMenu = QMenu(self.trUtf8("Bisect"), menu) |
885 bisectMenu = QMenu(self.trUtf8("Bisect"), menu) |
882 bisectMenu.setTearOffEnabled(True) |
886 bisectMenu.setTearOffEnabled(True) |
883 bisectMenu.addAction(self.hgBisectGoodAct) |
887 bisectMenu.addAction(self.hgBisectGoodAct) |
884 bisectMenu.addAction(self.hgBisectBadAct) |
888 bisectMenu.addAction(self.hgBisectBadAct) |
885 bisectMenu.addAction(self.hgBisectSkipAct) |
889 bisectMenu.addAction(self.hgBisectSkipAct) |
886 bisectMenu.addAction(self.hgBisectResetAct) |
890 bisectMenu.addAction(self.hgBisectResetAct) |
|
891 self.subMenus.append(bisectMenu) |
887 |
892 |
888 extensionsMenu = QMenu(self.trUtf8("Extensions"), menu) |
893 extensionsMenu = QMenu(self.trUtf8("Extensions"), menu) |
889 extensionsMenu.aboutToShow.connect(self.__showExtensionMenu) |
894 extensionsMenu.aboutToShow.connect(self.__showExtensionMenu) |
890 self.extensionMenus = {} |
895 self.extensionMenus = {} |
891 for extensionMenuTitle in sorted(self.__extensionMenuTitles): |
896 for extensionMenuTitle in sorted(self.__extensionMenuTitles): |
954 menu.addSeparator() |
959 menu.addSeparator() |
955 menu.addAction(self.vcsPropsAct) |
960 menu.addAction(self.vcsPropsAct) |
956 menu.addSeparator() |
961 menu.addSeparator() |
957 menu.addAction(self.hgEditUserConfigAct) |
962 menu.addAction(self.hgEditUserConfigAct) |
958 menu.addAction(self.hgConfigAct) |
963 menu.addAction(self.hgConfigAct) |
|
964 |
|
965 def shutdown(self): |
|
966 """ |
|
967 Public method to perform shutdown actions. |
|
968 """ |
|
969 # close torn off sub menus |
|
970 for menu in self.subMenus: |
|
971 if menu.isTearOffMenuVisible(): |
|
972 menu.hideTearOffMenu() |
|
973 |
|
974 # close torn off extension menus |
|
975 for extensionName in self.extensionMenus: |
|
976 menu = self.extensionMenus[extensionName].menu() |
|
977 if menu.isTearOffMenuVisible(): |
|
978 menu.hideTearOffMenu() |
959 |
979 |
960 def __showExtensionMenu(self): |
980 def __showExtensionMenu(self): |
961 """ |
981 """ |
962 Private slot showing the extensions menu. |
982 Private slot showing the extensions menu. |
963 """ |
983 """ |