39 """ |
39 """ |
40 from .CloseheadExtension.ProjectHelper import CloseheadProjectHelper |
40 from .CloseheadExtension.ProjectHelper import CloseheadProjectHelper |
41 from .GpgExtension.ProjectHelper import GpgProjectHelper |
41 from .GpgExtension.ProjectHelper import GpgProjectHelper |
42 from .HisteditExtension.ProjectHelper import HisteditProjectHelper |
42 from .HisteditExtension.ProjectHelper import HisteditProjectHelper |
43 from .LargefilesExtension.ProjectHelper import LargefilesProjectHelper |
43 from .LargefilesExtension.ProjectHelper import LargefilesProjectHelper |
44 from .PurgeExtension.ProjectHelper import PurgeProjectHelper |
44 from .PurgeBuiltin.ProjectHelper import PurgeProjectHelper |
45 from .QueuesExtension.ProjectHelper import QueuesProjectHelper |
45 from .QueuesExtension.ProjectHelper import QueuesProjectHelper |
46 from .RebaseExtension.ProjectHelper import RebaseProjectHelper |
46 from .RebaseExtension.ProjectHelper import RebaseProjectHelper |
47 from .ShelveExtension.ProjectHelper import ShelveProjectHelper |
47 from .ShelveBuiltin.ProjectHelper import ShelveProjectHelper |
48 |
48 |
49 super().__init__(vcsObject, projectObject, parent, name) |
49 super().__init__(vcsObject, projectObject, parent, name) |
|
50 |
|
51 # instantiate interfaces for additional built-in functions |
|
52 self.__builtins = { |
|
53 "purge": PurgeProjectHelper(), |
|
54 "shelve": ShelveProjectHelper(), |
|
55 } |
|
56 self.__builtinMenuTitles = { |
|
57 self.__builtins[b].menuTitle(): b for b in self.__builtins |
|
58 } |
50 |
59 |
51 # instantiate the extensions |
60 # instantiate the extensions |
52 self.__extensions = { |
61 self.__extensions = { |
|
62 "closehead": CloseheadProjectHelper(), |
|
63 "gpg": GpgProjectHelper(), |
|
64 "histedit": HisteditProjectHelper(), |
|
65 "largefiles": LargefilesProjectHelper(), |
53 "mq": QueuesProjectHelper(), |
66 "mq": QueuesProjectHelper(), |
54 "purge": PurgeProjectHelper(), |
|
55 "gpg": GpgProjectHelper(), |
|
56 "rebase": RebaseProjectHelper(), |
67 "rebase": RebaseProjectHelper(), |
57 "shelve": ShelveProjectHelper(), |
|
58 "largefiles": LargefilesProjectHelper(), |
|
59 "histedit": HisteditProjectHelper(), |
|
60 "closehead": CloseheadProjectHelper(), |
|
61 } |
68 } |
62 |
69 self.__extensionMenuTitles = { |
63 self.__extensionMenuTitles = {} |
70 self.__extensions[e].menuTitle(): e for e in self.__extensions |
64 for extension in self.__extensions: |
71 } |
65 self.__extensionMenuTitles[self.__extensions[extension].menuTitle()] = ( |
|
66 extension |
|
67 ) |
|
68 |
72 |
69 self.__toolbarManager = None |
73 self.__toolbarManager = None |
70 |
74 |
71 def setObjects(self, vcsObject, projectObject): |
75 def setObjects(self, vcsObject, projectObject): |
72 """ |
76 """ |
77 @param projectObject reference to the project object |
81 @param projectObject reference to the project object |
78 @type Project |
82 @type Project |
79 """ |
83 """ |
80 self.vcs = vcsObject |
84 self.vcs = vcsObject |
81 self.project = projectObject |
85 self.project = projectObject |
|
86 |
|
87 for builtin in self.__builtins.values(): |
|
88 builtin.setObjects(vcsObject, projectObject) |
82 |
89 |
83 for extension in self.__extensions.values(): |
90 for extension in self.__extensions.values(): |
84 extension.setObjects(vcsObject, projectObject) |
91 extension.setObjects(vcsObject, projectObject) |
85 |
92 |
86 self.vcs.iniFileChanged.connect(self.__checkActions) |
93 self.vcs.iniFileChanged.connect(self.__checkActions) |
1783 bookmarksMenu.addAction(self.hgBookmarkPushAct) |
1790 bookmarksMenu.addAction(self.hgBookmarkPushAct) |
1784 bookmarksMenu.addAction(self.hgBookmarkPushCurrentAct) |
1791 bookmarksMenu.addAction(self.hgBookmarkPushCurrentAct) |
1785 if self.vcs.version >= (5, 7): |
1792 if self.vcs.version >= (5, 7): |
1786 bookmarksMenu.addAction(self.hgBookmarkPushAllAct) |
1793 bookmarksMenu.addAction(self.hgBookmarkPushAllAct) |
1787 self.subMenus.append(bookmarksMenu) |
1794 self.subMenus.append(bookmarksMenu) |
|
1795 |
|
1796 self.__builtinsMenu = QMenu(self.tr("Other Functions"), menu) |
|
1797 self.__builtinsMenu.setTearOffEnabled(True) |
|
1798 self.__builtinMenus = {} |
|
1799 for builtinMenuTitle in sorted(self.__builtinMenuTitles): |
|
1800 builtinName = self.__builtinMenuTitles[builtinMenuTitle] |
|
1801 builtinMenu = self.__builtins[builtinName].initMenu(self.__builtinsMenu) |
|
1802 self.__builtinMenus[builtinName] = builtinMenu |
|
1803 self.__builtinsMenu.addMenu(builtinMenu) |
1788 |
1804 |
1789 self.__extensionsMenu = QMenu(self.tr("Extensions"), menu) |
1805 self.__extensionsMenu = QMenu(self.tr("Extensions"), menu) |
1790 self.__extensionsMenu.setTearOffEnabled(True) |
1806 self.__extensionsMenu.setTearOffEnabled(True) |
1791 self.__extensionsMenu.aboutToShow.connect(self.__showExtensionMenu) |
1807 self.__extensionsMenu.aboutToShow.connect(self.__showExtensionMenu) |
1792 self.__extensionMenus = {} |
1808 self.__extensionMenus = {} |