src/eric7/Plugins/VcsPlugins/vcsMercurial/ProjectHelper.py

branch
eric7
changeset 11068
15f0385e0471
parent 11067
67b92e2cb719
child 11075
282fc28b44ee
equal deleted inserted replaced
11067:67b92e2cb719 11068:15f0385e0471
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 = {}
1862 menu.addAction(self.hgSummaryAct) 1878 menu.addAction(self.hgSummaryAct)
1863 menu.addSeparator() 1879 menu.addSeparator()
1864 menu.addAction(self.vcsDiffAct) 1880 menu.addAction(self.vcsDiffAct)
1865 menu.addAction(self.hgExtDiffAct) 1881 menu.addAction(self.hgExtDiffAct)
1866 menu.addSeparator() 1882 menu.addSeparator()
1883 menu.addMenu(self.__builtinsMenu)
1867 menu.addMenu(self.__extensionsMenu) 1884 menu.addMenu(self.__extensionsMenu)
1868 menu.addSeparator() 1885 menu.addSeparator()
1869 menu.addAction(self.vcsSwitchAct) 1886 menu.addAction(self.vcsSwitchAct)
1870 menu.addSeparator() 1887 menu.addSeparator()
1871 menu.addMenu(subrepoMenu) 1888 menu.addMenu(subrepoMenu)

eric ide

mercurial