17 from VCS.ProjectHelper import VcsProjectHelper |
17 from VCS.ProjectHelper import VcsProjectHelper |
18 |
18 |
19 from .BookmarksExtension.ProjectHelper import BookmarksProjectHelper |
19 from .BookmarksExtension.ProjectHelper import BookmarksProjectHelper |
20 from .QueuesExtension.ProjectHelper import QueuesProjectHelper |
20 from .QueuesExtension.ProjectHelper import QueuesProjectHelper |
21 from .FetchExtension.ProjectHelper import FetchProjectHelper |
21 from .FetchExtension.ProjectHelper import FetchProjectHelper |
|
22 from .PurgeExtension.ProjectHelper import PurgeProjectHelper |
22 |
23 |
23 from E5Gui.E5Action import E5Action |
24 from E5Gui.E5Action import E5Action |
24 |
25 |
25 import UI.PixmapCache |
26 import UI.PixmapCache |
26 import Preferences |
27 import Preferences |
44 # instantiate the extensions |
45 # instantiate the extensions |
45 self.__extensions = { |
46 self.__extensions = { |
46 "bookmarks": BookmarksProjectHelper(), |
47 "bookmarks": BookmarksProjectHelper(), |
47 "mq": QueuesProjectHelper(), |
48 "mq": QueuesProjectHelper(), |
48 "fetch": FetchProjectHelper(), |
49 "fetch": FetchProjectHelper(), |
|
50 "purge": PurgeProjectHelper(), |
49 } |
51 } |
|
52 |
|
53 # TODO: create a dictionary of menu titles to extension key to be used below |
50 |
54 |
51 def setObjects(self, vcsObject, projectObject): |
55 def setObjects(self, vcsObject, projectObject): |
52 """ |
56 """ |
53 Public method to set references to the vcs and project objects. |
57 Public method to set references to the vcs and project objects. |
54 |
58 |
831 |
835 |
832 @param menu reference to the menu to be populated (QMenu) |
836 @param menu reference to the menu to be populated (QMenu) |
833 """ |
837 """ |
834 menu.clear() |
838 menu.clear() |
835 |
839 |
|
840 # TODO: make submenus tearable |
836 adminMenu = QMenu(self.trUtf8("Repository Administration"), menu) |
841 adminMenu = QMenu(self.trUtf8("Repository Administration"), menu) |
837 adminMenu.addAction(self.hgHeadsAct) |
842 adminMenu.addAction(self.hgHeadsAct) |
838 adminMenu.addAction(self.hgParentsAct) |
843 adminMenu.addAction(self.hgParentsAct) |
839 adminMenu.addAction(self.hgTipAct) |
844 adminMenu.addAction(self.hgTipAct) |
840 adminMenu.addAction(self.hgShowBranchAct) |
845 adminMenu.addAction(self.hgShowBranchAct) |
872 bisectMenu.addAction(self.hgBisectResetAct) |
877 bisectMenu.addAction(self.hgBisectResetAct) |
873 |
878 |
874 extensionsMenu = QMenu(self.trUtf8("Extensions"), menu) |
879 extensionsMenu = QMenu(self.trUtf8("Extensions"), menu) |
875 extensionsMenu.aboutToShow.connect(self.__showExtensionMenu) |
880 extensionsMenu.aboutToShow.connect(self.__showExtensionMenu) |
876 self.extensionMenus = {} |
881 self.extensionMenus = {} |
877 for extensionName in self.__extensions: |
882 # TODO: use extension menu titles for sorting |
|
883 for extensionName in sorted(self.__extensions): |
878 self.extensionMenus[extensionName] = extensionsMenu.addMenu( |
884 self.extensionMenus[extensionName] = extensionsMenu.addMenu( |
879 self.__extensions[extensionName].initMenu(extensionsMenu)) |
885 self.__extensions[extensionName].initMenu(extensionsMenu)) |
880 |
886 |
881 act = menu.addAction( |
887 act = menu.addAction( |
882 UI.PixmapCache.getIcon( |
888 UI.PixmapCache.getIcon( |