Plugins/VcsPlugins/vcsMercurial/ShelveExtension/ProjectHelper.py

changeset 3297
7b7e8124fb51
parent 3291
58e95eea9b6d
child 3309
b5f782f7d43b
equal deleted inserted replaced
3294:3aabaf28817b 3297:7b7e8124fb51
40 """<b>Shelve changes</b>""" 40 """<b>Shelve changes</b>"""
41 """<p>This shelves all current changes of the project.</p>""" 41 """<p>This shelves all current changes of the project.</p>"""
42 )) 42 ))
43 self.hgShelveAct.triggered[()].connect(self.__hgShelve) 43 self.hgShelveAct.triggered[()].connect(self.__hgShelve)
44 self.actions.append(self.hgShelveAct) 44 self.actions.append(self.hgShelveAct)
45
46 self.hgShelveBrowserAct = E5Action(
47 self.tr('Show shelve browser'),
48 self.tr('Show shelve browser...'),
49 0, 0, self, 'mercurial_shelve_browser')
50 self.hgShelveBrowserAct.setStatusTip(self.tr(
51 'Show a dialog with all shelves'
52 ))
53 self.hgShelveBrowserAct.setWhatsThis(self.tr(
54 """<b>Show shelve browser...</b>"""
55 """<p>This shows a dialog listing all available shelves."""
56 """ Actions on these shelves may be executed via the"""
57 """ context menu.</p>"""
58 ))
59 self.hgShelveBrowserAct.triggered[()].connect(
60 self.__hgShelveBrowser)
61 self.actions.append(self.hgShelveBrowserAct)
62
63 self.hgUnshelveAct = E5Action(
64 self.tr('Restore shelved change'),
65 self.tr('Restore shelved change...'),
66 0, 0, self, 'mercurial_unshelve')
67 self.hgUnshelveAct.setStatusTip(self.tr(
68 'Restore a shelved change to the project directory'
69 ))
70 self.hgUnshelveAct.setWhatsThis(self.tr(
71 """<b>Restore shelved change</b>"""
72 """<p>This restore a shelved change to the project directory."""
73 """</p>"""
74 ))
75 self.hgUnshelveAct.triggered[()].connect(self.__hgUnshelve)
76 self.actions.append(self.hgUnshelveAct)
77
78 self.hgUnshelveAbortAct = E5Action(
79 self.tr('Abort restore'),
80 self.tr('Abort restore...'),
81 0, 0, self, 'mercurial_unshelve_abort')
82 self.hgUnshelveAbortAct.setStatusTip(self.tr(
83 'Abort the restore operation in progress'
84 ))
85 self.hgUnshelveAbortAct.setWhatsThis(self.tr(
86 """<b>Abort restore</b>"""
87 """<p>This aborts the restore operation in progress and reverts"""
88 """ already applied changes.</p>"""
89 ))
90 self.hgUnshelveAbortAct.triggered[()].connect(self.__hgUnshelveAbort)
91 self.actions.append(self.hgUnshelveAbortAct)
92
93 self.hgUnshelveContinueAct = E5Action(
94 self.tr('Continue restore'),
95 self.tr('Continue restore...'),
96 0, 0, self, 'mercurial_unshelve_continue')
97 self.hgUnshelveContinueAct.setStatusTip(self.tr(
98 'Continue the restore operation in progress'
99 ))
100 self.hgUnshelveContinueAct.setWhatsThis(self.tr(
101 """<b>Continue restore</b>"""
102 """<p>This continues the restore operation in progress.</p>"""
103 ))
104 self.hgUnshelveContinueAct.triggered[()].connect(
105 self.__hgUnshelveContinue)
106 self.actions.append(self.hgUnshelveContinueAct)
107
108 self.hgShelveDeleteAct = E5Action(
109 self.tr('Delete shelved changes'),
110 self.tr('Delete shelved changes...'),
111 0, 0, self, 'mercurial_shelve_delete')
112 self.hgShelveDeleteAct.setWhatsThis(self.tr(
113 """<b>Delete shelved changes...</b>"""
114 """<p>This opens a dialog to select the shelved changes to"""
115 """ delete and deletes the selected ones.</p>"""
116 ))
117 self.hgShelveDeleteAct.triggered[()].connect(
118 self.__hgDeleteShelves)
119 self.actions.append(self.hgShelveDeleteAct)
120
121 self.hgShelveCleanupAct = E5Action(
122 self.tr('Delete ALL shelved changes'),
123 self.tr('Delete ALL shelved changes'),
124 0, 0, self, 'mercurial_shelve_cleanup')
125 self.hgShelveCleanupAct.setWhatsThis(self.tr(
126 """<b>Delete ALL shelved changes</b>"""
127 """<p>This deletes all shelved changes.</p>"""
128 ))
129 self.hgShelveCleanupAct.triggered[()].connect(
130 self.__hgCleanupShelves)
131 self.actions.append(self.hgShelveCleanupAct)
45 132
46 def initMenu(self, mainMenu): 133 def initMenu(self, mainMenu):
47 """ 134 """
48 Public method to generate the extension menu. 135 Public method to generate the extension menu.
49 136
52 """ 139 """
53 menu = QMenu(self.menuTitle(), mainMenu) 140 menu = QMenu(self.menuTitle(), mainMenu)
54 menu.setTearOffEnabled(True) 141 menu.setTearOffEnabled(True)
55 142
56 menu.addAction(self.hgShelveAct) 143 menu.addAction(self.hgShelveAct)
144 menu.addSeparator()
145 menu.addAction(self.hgShelveBrowserAct)
146 menu.addSeparator()
147 menu.addAction(self.hgUnshelveAct)
148 menu.addAction(self.hgUnshelveContinueAct)
149 menu.addAction(self.hgUnshelveAbortAct)
150 menu.addSeparator()
151 menu.addAction(self.hgShelveDeleteAct)
152 menu.addAction(self.hgShelveCleanupAct)
57 153
58 return menu 154 return menu
59 155
60 def menuTitle(self): 156 def menuTitle(self):
61 """ 157 """
63 159
64 @return title of the menu (string) 160 @return title of the menu (string)
65 """ 161 """
66 return self.tr("Shelve") 162 return self.tr("Shelve")
67 163
68 def __hgShelve(self): 164 def __reopenProject(self, shouldReopen, title):
69 """ 165 """
70 Private slot used to shelve all current changes. 166 Private method to reopen the project if needed and wanted.
71 """ 167
72 shouldReopen = self.vcs.getExtensionObject("shelve")\ 168 @param shouldReopen flag indicating that the project should
73 .hgShelve(self.project.getProjectPath()) 169 be reopened (boolean)
170 @param title title of the message box (string)
171 """
74 if shouldReopen: 172 if shouldReopen:
75 res = E5MessageBox.yesNo( 173 res = E5MessageBox.yesNo(
76 None, 174 None,
77 self.tr("Shelve"), 175 title,
78 self.tr("""The project should be reread. Do this now?"""), 176 self.tr("""The project should be reread. Do this now?"""),
79 yesDefault=True) 177 yesDefault=True)
80 if res: 178 if res:
81 self.project.reopenProject() 179 self.project.reopenProject()
180
181 def __hgShelve(self):
182 """
183 Private slot used to shelve all current changes.
184 """
185 shouldReopen = self.vcs.getExtensionObject("shelve")\
186 .hgShelve(self.project.getProjectPath())
187 self.__reopenProject(shouldReopen, self.tr("Shelve"))
188
189 def __hgShelveBrowser(self):
190 """
191 Private slot to show the shelve browser dialog.
192 """
193 self.vcs.getExtensionObject("shelve")\
194 .hgShelveBrowser(self.project.getProjectPath())
195
196 def __hgUnshelve(self):
197 """
198 Private slot used to restore a shelved change.
199 """
200 shouldReopen = self.vcs.getExtensionObject("shelve")\
201 .hgUnshelve(self.project.getProjectPath())
202 self.__reopenProject(shouldReopen, self.tr("Unshelve"))
203
204 def __hgUnshelveAbort(self):
205 """
206 Private slot used to abort an ongoing restore operation.
207 """
208 shouldReopen = self.vcs.getExtensionObject("shelve")\
209 .hgUnshelveAbort(self.project.getProjectPath())
210 self.__reopenProject(shouldReopen, self.tr("Abort Unshelve"))
211
212 def __hgUnshelveContinue(self):
213 """
214 Private slot used to continue an ongoing restore operation.
215 """
216 shouldReopen = self.vcs.getExtensionObject("shelve")\
217 .hgUnshelveContinue(self.project.getProjectPath())
218 self.__reopenProject(shouldReopen, self.tr("Continue Unshelve"))
219
220 def __hgDeleteShelves(self):
221 """
222 Private slot to delete selected shelves.
223 """
224 self.vcs.getExtensionObject("shelve").hgDeleteShelves(
225 self.project.getProjectPath())
226
227 def __hgCleanupShelves(self):
228 """
229 Private slot to delete all shelves.
230 """
231 self.vcs.getExtensionObject("shelve").hgCleanupShelves(
232 self.project.getProjectPath())

eric ide

mercurial