src/eric7/Plugins/VcsPlugins/vcsMercurial/ShelveExtension/ProjectBrowserHelper.py

branch
eric7
changeset 9221
bf71ee032bb4
parent 9209
b99e7fd55fd3
child 9413
80c06d472826
equal deleted inserted replaced
9220:e9e7eca7efee 9221:bf71ee032bb4
16 16
17 class ShelveProjectBrowserHelper(HgExtensionProjectBrowserHelper): 17 class ShelveProjectBrowserHelper(HgExtensionProjectBrowserHelper):
18 """ 18 """
19 Class implementing the shelve extension project browser helper. 19 Class implementing the shelve extension project browser helper.
20 """ 20 """
21
21 def __init__(self, vcsObject, browserObject, projectObject): 22 def __init__(self, vcsObject, browserObject, projectObject):
22 """ 23 """
23 Constructor 24 Constructor
24 25
25 @param vcsObject reference to the vcs object 26 @param vcsObject reference to the vcs object
26 @param browserObject reference to the project browser object 27 @param browserObject reference to the project browser object
27 @param projectObject reference to the project object 28 @param projectObject reference to the project object
28 """ 29 """
29 super().__init__( 30 super().__init__(vcsObject, browserObject, projectObject)
30 vcsObject, browserObject, projectObject) 31
31
32 def initMenus(self): 32 def initMenus(self):
33 """ 33 """
34 Public method to generate the extension menus. 34 Public method to generate the extension menus.
35 35
36 @return dictionary of populated menu (dict of QMenu). The dict 36 @return dictionary of populated menu (dict of QMenu). The dict
37 must have the keys 'mainMenu', 'multiMenu', 'backMenu', 'dirMenu' 37 must have the keys 'mainMenu', 'multiMenu', 'backMenu', 'dirMenu'
38 and 'dirMultiMenu'. 38 and 'dirMultiMenu'.
39 """ 39 """
40 self.__menus = {} 40 self.__menus = {}
41 41
42 menu = QMenu(self.menuTitle()) 42 menu = QMenu(self.menuTitle())
43 menu.setTearOffEnabled(True) 43 menu.setTearOffEnabled(True)
44 menu.addAction(self.tr("Shelve changes"), self.__hgShelve) 44 menu.addAction(self.tr("Shelve changes"), self.__hgShelve)
45 self.__menus['mainMenu'] = menu 45 self.__menus["mainMenu"] = menu
46 46
47 menu = QMenu(self.menuTitle()) 47 menu = QMenu(self.menuTitle())
48 menu.setTearOffEnabled(True) 48 menu.setTearOffEnabled(True)
49 menu.addAction(self.tr("Shelve changes"), self.__hgShelve) 49 menu.addAction(self.tr("Shelve changes"), self.__hgShelve)
50 self.__menus['multiMenu'] = menu 50 self.__menus["multiMenu"] = menu
51 51
52 menu = QMenu(self.menuTitle()) 52 menu = QMenu(self.menuTitle())
53 menu.setTearOffEnabled(True) 53 menu.setTearOffEnabled(True)
54 menu.addAction(self.tr("Shelve changes"), self.__hgShelve) 54 menu.addAction(self.tr("Shelve changes"), self.__hgShelve)
55 self.__menus['dirMenu'] = menu 55 self.__menus["dirMenu"] = menu
56 56
57 menu = QMenu(self.menuTitle()) 57 menu = QMenu(self.menuTitle())
58 menu.setTearOffEnabled(True) 58 menu.setTearOffEnabled(True)
59 menu.addAction(self.tr("Shelve changes"), self.__hgShelve) 59 menu.addAction(self.tr("Shelve changes"), self.__hgShelve)
60 self.__menus['dirMultiMenu'] = menu 60 self.__menus["dirMultiMenu"] = menu
61 61
62 return self.__menus 62 return self.__menus
63 63
64 def menuTitle(self): 64 def menuTitle(self):
65 """ 65 """
66 Public method to get the menu title. 66 Public method to get the menu title.
67 67
68 @return title of the menu (string) 68 @return title of the menu (string)
69 """ 69 """
70 return self.tr("Shelve") 70 return self.tr("Shelve")
71 71
72 def showExtensionMenu(self, key, controlled): 72 def showExtensionMenu(self, key, controlled):
73 """ 73 """
74 Public method to prepare the extension menu for display. 74 Public method to prepare the extension menu for display.
75 75
76 @param key menu key (string, one of 'mainMenu', 'multiMenu', 76 @param key menu key (string, one of 'mainMenu', 'multiMenu',
77 'backMenu', 'dirMenu' or 'dirMultiMenu') 77 'backMenu', 'dirMenu' or 'dirMultiMenu')
78 @param controlled flag indicating to prepare the menu for a 78 @param controlled flag indicating to prepare the menu for a
79 version controlled entry or a non-version controlled entry 79 version controlled entry or a non-version controlled entry
80 (boolean) 80 (boolean)
81 """ 81 """
82 if key in self.__menus: 82 if key in self.__menus:
83 self.__menus[key].setEnabled(controlled) 83 self.__menus[key].setEnabled(controlled)
84 84
85 def __reopenProject(self, shouldReopen, title): 85 def __reopenProject(self, shouldReopen, title):
86 """ 86 """
87 Private method to reopen the project if needed and wanted. 87 Private method to reopen the project if needed and wanted.
88 88
89 @param shouldReopen flag indicating that the project should 89 @param shouldReopen flag indicating that the project should
90 be reopened (boolean) 90 be reopened (boolean)
91 @param title title of the message box (string) 91 @param title title of the message box (string)
92 """ 92 """
93 if shouldReopen: 93 if shouldReopen:
94 res = EricMessageBox.yesNo( 94 res = EricMessageBox.yesNo(
95 None, 95 None,
96 title, 96 title,
97 self.tr("""The project should be reread. Do this now?"""), 97 self.tr("""The project should be reread. Do this now?"""),
98 yesDefault=True) 98 yesDefault=True,
99 )
99 if res: 100 if res:
100 self.project.reopenProject() 101 self.project.reopenProject()
101 102
102 def __hgShelve(self): 103 def __hgShelve(self):
103 """ 104 """
104 Private slot used to shelve all current changes. 105 Private slot used to shelve all current changes.
105 """ 106 """
106 names = [] 107 names = []

eric ide

mercurial