38 @param name name of this object (string) |
38 @param name name of this object (string) |
39 """ |
39 """ |
40 VcsProjectBrowserHelper.__init__(self, vcsObject, browserObject, |
40 VcsProjectBrowserHelper.__init__(self, vcsObject, browserObject, |
41 projectObject, isTranslationsBrowser, |
41 projectObject, isTranslationsBrowser, |
42 parent, name) |
42 parent, name) |
|
43 |
|
44 # instantiate the extensions |
|
45 from .ShelveExtension.ProjectBrowserHelper import \ |
|
46 ShelveProjectBrowserHelper |
|
47 from .LargefilesExtension.ProjectBrowserHelper import \ |
|
48 LargefilesProjectBrowserHelper |
|
49 self.__extensions = { |
|
50 "shelve": ShelveProjectBrowserHelper( |
|
51 vcsObject, browserObject, projectObject), |
|
52 "largefiles": LargefilesProjectBrowserHelper( |
|
53 vcsObject, browserObject, projectObject), |
|
54 } |
|
55 |
|
56 self.__extensionMenuTitles = {} |
|
57 for extension in self.__extensions: |
|
58 self.__extensionMenuTitles[ |
|
59 self.__extensions[extension].menuTitle()] = extension |
|
60 self.__extensionMenus = {} |
|
61 for extension in self.__extensions: |
|
62 self.__extensionMenus[extension] = \ |
|
63 self.__extensions[extension].initMenus() |
|
64 |
|
65 def __showExtensionMenu(self, key, controlled): |
|
66 """ |
|
67 Private slot showing the extensions menu. |
|
68 |
|
69 @param key menu key (string, one of 'mainMenu', 'multiMenu', |
|
70 'backMenu', 'dirMenu' or 'dirMultiMenu') |
|
71 @param controlled flag indicating to show the menu for a |
|
72 version controlled entry or a non-version controlled entry |
|
73 (boolean) |
|
74 """ |
|
75 for extensionName in self.__extensionMenus: |
|
76 if key in self.__extensionMenus[extensionName]: |
|
77 self.__extensionMenus[extensionName][key].setEnabled( |
|
78 self.vcs.isExtensionActive(extensionName)) |
|
79 if self.__extensionMenus[extensionName][key].isEnabled(): |
|
80 # adjust individual extension menu entries |
|
81 self.__extensions[extensionName].showExtensionMenu( |
|
82 key, controlled) |
|
83 if (not self.__extensionMenus[extensionName][key].isEnabled() |
|
84 and self.__extensionMenus[extensionName][key] |
|
85 .isTearOffMenuVisible()): |
|
86 self.__extensionMenus[extensionName][key].hideTearOffMenu() |
43 |
87 |
44 def showContextMenu(self, menu, standardItems): |
88 def showContextMenu(self, menu, standardItems): |
45 """ |
89 """ |
46 Slot called before the context menu is shown. |
90 Slot called before the context menu is shown. |
47 |
91 |
51 @param menu reference to the menu to be shown |
95 @param menu reference to the menu to be shown |
52 @param standardItems array of standard items that need |
96 @param standardItems array of standard items that need |
53 activation/deactivation depending on the overall VCS status |
97 activation/deactivation depending on the overall VCS status |
54 """ |
98 """ |
55 if self.browser.currentItem().data(1) == self.vcs.vcsName(): |
99 if self.browser.currentItem().data(1) == self.vcs.vcsName(): |
|
100 controlled = True |
56 for act in self.vcsMenuActions: |
101 for act in self.vcsMenuActions: |
57 act.setEnabled(True) |
102 act.setEnabled(True) |
58 for act in self.vcsAddMenuActions: |
103 for act in self.vcsAddMenuActions: |
59 act.setEnabled(False) |
104 act.setEnabled(False) |
60 for act in standardItems: |
105 for act in standardItems: |
61 act.setEnabled(False) |
106 act.setEnabled(False) |
62 if not hasattr(self.browser.currentItem(), 'fileName'): |
107 if not hasattr(self.browser.currentItem(), 'fileName'): |
63 self.annotateAct.setEnabled(False) |
108 self.annotateAct.setEnabled(False) |
64 else: |
109 else: |
|
110 controlled = False |
65 for act in self.vcsMenuActions: |
111 for act in self.vcsMenuActions: |
66 act.setEnabled(False) |
112 act.setEnabled(False) |
67 for act in self.vcsAddMenuActions: |
113 for act in self.vcsAddMenuActions: |
68 act.setEnabled(True) |
114 act.setEnabled(True) |
69 for act in standardItems: |
115 for act in standardItems: |
70 act.setEnabled(True) |
116 act.setEnabled(True) |
|
117 self.__showExtensionMenu("mainMenu", controlled) |
71 |
118 |
72 def showContextMenuMulti(self, menu, standardItems): |
119 def showContextMenuMulti(self, menu, standardItems): |
73 """ |
120 """ |
74 Slot called before the context menu (multiple selections) is shown. |
121 Slot called before the context menu (multiple selections) is shown. |
75 |
122 |
162 for act in self.vcsAddDirMultiMenuActions: |
216 for act in self.vcsAddDirMultiMenuActions: |
163 act.setEnabled(False) |
217 act.setEnabled(False) |
164 for act in standardItems: |
218 for act in standardItems: |
165 act.setEnabled(False) |
219 act.setEnabled(False) |
166 else: |
220 else: |
|
221 controlled = False |
167 for act in self.vcsDirMultiMenuActions: |
222 for act in self.vcsDirMultiMenuActions: |
168 act.setEnabled(False) |
223 act.setEnabled(False) |
169 for act in self.vcsAddDirMultiMenuActions: |
224 for act in self.vcsAddDirMultiMenuActions: |
170 act.setEnabled(True) |
225 act.setEnabled(True) |
171 for act in standardItems: |
226 for act in standardItems: |
172 act.setEnabled(True) |
227 act.setEnabled(True) |
173 |
228 self.__showExtensionMenu("dirMultiMenu", controlled) |
|
229 |
174 ########################################################################### |
230 ########################################################################### |
175 # Protected menu generation methods below |
231 ## Private menu generation methods below |
176 ########################################################################### |
232 ########################################################################### |
177 |
233 |
|
234 def __addExtensionsMenu(self, menu, key): |
|
235 """ |
|
236 Private method to add an extension menu entry. |
|
237 |
|
238 @param menu menu to add it to (QMenu) |
|
239 @param key menu key (string, one of 'mainMenu', 'multiMenu', |
|
240 'backMenu', 'dirMenu' or 'dirMultiMenu') |
|
241 @return reference to the menu action (QAction) |
|
242 """ |
|
243 act = None |
|
244 if key in ['mainMenu', 'multiMenu', 'backMenu', 'dirMenu', |
|
245 'dirMultiMenu']: |
|
246 extensionsMenu = QMenu(self.tr("Extensions"), menu) |
|
247 extensionsMenu.setTearOffEnabled(True) |
|
248 for extensionMenuTitle in sorted(self.__extensionMenuTitles): |
|
249 extensionName = self.__extensionMenuTitles[extensionMenuTitle] |
|
250 if key in self.__extensionMenus[extensionName]: |
|
251 extensionsMenu.addMenu( |
|
252 self.__extensionMenus[extensionName][key]) |
|
253 if not extensionsMenu.isEmpty(): |
|
254 if not menu.isEmpty(): |
|
255 menu.addSeparator() |
|
256 act = menu.addMenu(extensionsMenu) |
|
257 return act |
|
258 |
|
259 ########################################################################### |
|
260 ## Protected menu generation methods below |
|
261 ########################################################################### |
|
262 |
178 def _addVCSMenu(self, mainMenu): |
263 def _addVCSMenu(self, mainMenu): |
179 """ |
264 """ |
180 Protected method used to add the VCS menu to all project browsers. |
265 Protected method used to add the VCS menu to all project browsers. |
181 |
266 |
182 @param mainMenu reference to the menu to be amended |
267 @param mainMenu reference to the menu to be amended |
183 """ |
268 """ |
184 self.vcsMenuActions = [] |
269 self.vcsMenuActions = [] |
185 self.vcsAddMenuActions = [] |
270 self.vcsAddMenuActions = [] |
186 |
271 |
187 menu = QMenu(self.trUtf8("Version Control")) |
272 menu = QMenu(self.tr("Version Control")) |
188 |
273 |
189 act = menu.addAction( |
274 act = menu.addAction( |
190 UI.PixmapCache.getIcon( |
275 UI.PixmapCache.getIcon( |
191 os.path.join("VcsPlugins", "vcsMercurial", "icons", |
276 os.path.join("VcsPlugins", "vcsMercurial", "icons", |
192 "mercurial.png")), |
277 "mercurial.png")), |
196 act.setFont(font) |
281 act.setFont(font) |
197 menu.addSeparator() |
282 menu.addSeparator() |
198 |
283 |
199 act = menu.addAction( |
284 act = menu.addAction( |
200 UI.PixmapCache.getIcon("vcsCommit.png"), |
285 UI.PixmapCache.getIcon("vcsCommit.png"), |
201 self.trUtf8('Commit changes to repository...'), |
286 self.tr('Commit changes to repository...'), |
202 self._VCSCommit) |
287 self._VCSCommit) |
203 self.vcsMenuActions.append(act) |
288 self.vcsMenuActions.append(act) |
|
289 self.__addExtensionsMenu(menu, 'mainMenu') |
204 menu.addSeparator() |
290 menu.addSeparator() |
205 act = menu.addAction( |
291 act = menu.addAction( |
206 UI.PixmapCache.getIcon("vcsAdd.png"), |
292 UI.PixmapCache.getIcon("vcsAdd.png"), |
207 self.trUtf8('Add to repository'), |
293 self.tr('Add to repository'), |
208 self._VCSAdd) |
294 self._VCSAdd) |
209 self.vcsAddMenuActions.append(act) |
295 self.vcsAddMenuActions.append(act) |
210 act = menu.addAction( |
296 act = menu.addAction( |
211 UI.PixmapCache.getIcon("vcsRemove.png"), |
297 UI.PixmapCache.getIcon("vcsRemove.png"), |
212 self.trUtf8('Remove from repository (and disk)'), |
298 self.tr('Remove from repository (and disk)'), |
213 self._VCSRemove) |
299 self._VCSRemove) |
214 self.vcsMenuActions.append(act) |
300 self.vcsMenuActions.append(act) |
215 act = menu.addAction( |
301 act = menu.addAction( |
216 UI.PixmapCache.getIcon("vcsRemove.png"), |
302 UI.PixmapCache.getIcon("vcsRemove.png"), |
217 self.trUtf8('Remove from repository only'), |
303 self.tr('Remove from repository only'), |
218 self.__HgForget) |
304 self.__HgForget) |
219 self.vcsMenuActions.append(act) |
305 self.vcsMenuActions.append(act) |
220 menu.addSeparator() |
306 menu.addSeparator() |
221 act = menu.addAction(self.trUtf8('Copy'), self.__HgCopy) |
307 act = menu.addAction(self.tr('Copy'), self.__HgCopy) |
222 self.vcsMenuActions.append(act) |
308 self.vcsMenuActions.append(act) |
223 act = menu.addAction(self.trUtf8('Move'), self.__HgMove) |
309 act = menu.addAction(self.tr('Move'), self.__HgMove) |
224 self.vcsMenuActions.append(act) |
310 self.vcsMenuActions.append(act) |
225 menu.addSeparator() |
311 menu.addSeparator() |
226 act = menu.addAction( |
312 act = menu.addAction( |
227 UI.PixmapCache.getIcon("vcsLog.png"), |
313 UI.PixmapCache.getIcon("vcsLog.png"), |
228 self.trUtf8('Show log'), self._VCSLog) |
314 self.tr('Show log'), self._VCSLog) |
229 self.vcsMenuActions.append(act) |
315 self.vcsMenuActions.append(act) |
230 act = menu.addAction( |
316 act = menu.addAction( |
231 UI.PixmapCache.getIcon("vcsLog.png"), |
317 UI.PixmapCache.getIcon("vcsLog.png"), |
232 self.trUtf8('Show log browser'), self.__HgLogBrowser) |
318 self.tr('Show log browser'), self._VCSLogBrowser) |
233 self.vcsMenuActions.append(act) |
319 self.vcsMenuActions.append(act) |
234 menu.addSeparator() |
320 menu.addSeparator() |
235 act = menu.addAction( |
321 act = menu.addAction( |
236 UI.PixmapCache.getIcon("vcsStatus.png"), |
322 UI.PixmapCache.getIcon("vcsStatus.png"), |
237 self.trUtf8('Show status'), self._VCSStatus) |
323 self.tr('Show status'), self._VCSStatus) |
238 self.vcsMenuActions.append(act) |
324 self.vcsMenuActions.append(act) |
239 menu.addSeparator() |
325 menu.addSeparator() |
240 act = menu.addAction( |
326 act = menu.addAction( |
241 UI.PixmapCache.getIcon("vcsDiff.png"), |
327 UI.PixmapCache.getIcon("vcsDiff.png"), |
242 self.trUtf8('Show difference'), self._VCSDiff) |
328 self.tr('Show difference'), self._VCSDiff) |
243 self.vcsMenuActions.append(act) |
329 self.vcsMenuActions.append(act) |
244 act = menu.addAction( |
330 act = menu.addAction( |
245 UI.PixmapCache.getIcon("vcsSbsDiff.png"), |
331 UI.PixmapCache.getIcon("vcsSbsDiff.png"), |
246 self.trUtf8('Show difference side-by-side'), self.__HgSbsDiff) |
332 self.tr('Show difference side-by-side'), self.__HgSbsDiff) |
247 self.vcsMenuActions.append(act) |
333 self.vcsMenuActions.append(act) |
248 act = menu.addAction( |
334 act = menu.addAction( |
249 UI.PixmapCache.getIcon("vcsDiff.png"), |
335 UI.PixmapCache.getIcon("vcsDiff.png"), |
250 self.trUtf8('Show difference (extended)'), |
336 self.tr('Show difference (extended)'), |
251 self.__HgExtendedDiff) |
337 self.__HgExtendedDiff) |
252 self.vcsMenuActions.append(act) |
338 self.vcsMenuActions.append(act) |
253 act = menu.addAction( |
339 act = menu.addAction( |
254 UI.PixmapCache.getIcon("vcsSbsDiff.png"), |
340 UI.PixmapCache.getIcon("vcsSbsDiff.png"), |
255 self.trUtf8('Show difference side-by-side (extended)'), |
341 self.tr('Show difference side-by-side (extended)'), |
256 self.__HgSbsExtendedDiff) |
342 self.__HgSbsExtendedDiff) |
257 self.vcsMenuActions.append(act) |
343 self.vcsMenuActions.append(act) |
258 self.annotateAct = menu.addAction( |
344 self.annotateAct = menu.addAction( |
259 self.trUtf8('Show annotated file'), |
345 self.tr('Show annotated file'), |
260 self.__HgAnnotate) |
346 self.__HgAnnotate) |
261 self.vcsMenuActions.append(self.annotateAct) |
347 self.vcsMenuActions.append(self.annotateAct) |
262 menu.addSeparator() |
348 menu.addSeparator() |
263 act = menu.addAction( |
349 act = menu.addAction( |
264 UI.PixmapCache.getIcon("vcsRevert.png"), |
350 UI.PixmapCache.getIcon("vcsRevert.png"), |
265 self.trUtf8('Revert changes'), self.__HgRevert) |
351 self.tr('Revert changes'), self.__HgRevert) |
266 self.vcsMenuActions.append(act) |
352 self.vcsMenuActions.append(act) |
267 act = menu.addAction( |
353 act = menu.addAction( |
268 self.trUtf8('Conflict resolved'), self.__HgResolve) |
354 self.tr('Conflict resolved'), self.__HgResolve) |
269 self.vcsMenuActions.append(act) |
355 self.vcsMenuActions.append(act) |
270 menu.addSeparator() |
356 menu.addSeparator() |
271 menu.addAction(self.trUtf8('Select all local file entries'), |
357 menu.addAction(self.tr('Select all local file entries'), |
272 self.browser.selectLocalEntries) |
358 self.browser.selectLocalEntries) |
273 menu.addAction(self.trUtf8('Select all versioned file entries'), |
359 menu.addAction(self.tr('Select all versioned file entries'), |
274 self.browser.selectVCSEntries) |
360 self.browser.selectVCSEntries) |
275 menu.addAction(self.trUtf8('Select all local directory entries'), |
361 menu.addAction(self.tr('Select all local directory entries'), |
276 self.browser.selectLocalDirEntries) |
362 self.browser.selectLocalDirEntries) |
277 menu.addAction(self.trUtf8('Select all versioned directory entries'), |
363 menu.addAction(self.tr('Select all versioned directory entries'), |
278 self.browser.selectVCSDirEntries) |
364 self.browser.selectVCSDirEntries) |
279 menu.addSeparator() |
365 menu.addSeparator() |
280 |
366 |
281 mainMenu.addSeparator() |
367 mainMenu.addSeparator() |
282 mainMenu.addMenu(menu) |
368 mainMenu.addMenu(menu) |
304 act.setFont(font) |
390 act.setFont(font) |
305 menu.addSeparator() |
391 menu.addSeparator() |
306 |
392 |
307 act = menu.addAction( |
393 act = menu.addAction( |
308 UI.PixmapCache.getIcon("vcsCommit.png"), |
394 UI.PixmapCache.getIcon("vcsCommit.png"), |
309 self.trUtf8('Commit changes to repository...'), |
395 self.tr('Commit changes to repository...'), |
310 self._VCSCommit) |
396 self._VCSCommit) |
311 self.vcsMultiMenuActions.append(act) |
397 self.vcsMultiMenuActions.append(act) |
|
398 self.__addExtensionsMenu(menu, 'multiMenu') |
312 menu.addSeparator() |
399 menu.addSeparator() |
313 act = menu.addAction( |
400 act = menu.addAction( |
314 UI.PixmapCache.getIcon("vcsAdd.png"), |
401 UI.PixmapCache.getIcon("vcsAdd.png"), |
315 self.trUtf8('Add to repository'), self._VCSAdd) |
402 self.tr('Add to repository'), self._VCSAdd) |
316 self.vcsAddMultiMenuActions.append(act) |
403 self.vcsAddMultiMenuActions.append(act) |
317 act = menu.addAction( |
404 act = menu.addAction( |
318 UI.PixmapCache.getIcon("vcsRemove.png"), |
405 UI.PixmapCache.getIcon("vcsRemove.png"), |
319 self.trUtf8('Remove from repository (and disk)'), |
406 self.tr('Remove from repository (and disk)'), |
320 self._VCSRemove) |
407 self._VCSRemove) |
321 self.vcsMultiMenuActions.append(act) |
408 self.vcsMultiMenuActions.append(act) |
322 act = menu.addAction( |
409 act = menu.addAction( |
323 UI.PixmapCache.getIcon("vcsRemove.png"), |
410 UI.PixmapCache.getIcon("vcsRemove.png"), |
324 self.trUtf8('Remove from repository only'), |
411 self.tr('Remove from repository only'), |
325 self.__HgForget) |
412 self.__HgForget) |
326 self.vcsMultiMenuActions.append(act) |
413 self.vcsMultiMenuActions.append(act) |
327 menu.addSeparator() |
414 menu.addSeparator() |
328 act = menu.addAction( |
415 act = menu.addAction( |
329 UI.PixmapCache.getIcon("vcsStatus.png"), |
416 UI.PixmapCache.getIcon("vcsStatus.png"), |
330 self.trUtf8('Show status'), self._VCSStatus) |
417 self.tr('Show status'), self._VCSStatus) |
331 self.vcsMultiMenuActions.append(act) |
418 self.vcsMultiMenuActions.append(act) |
332 menu.addSeparator() |
419 menu.addSeparator() |
333 act = menu.addAction( |
420 act = menu.addAction( |
334 UI.PixmapCache.getIcon("vcsDiff.png"), |
421 UI.PixmapCache.getIcon("vcsDiff.png"), |
335 self.trUtf8('Show difference'), self._VCSDiff) |
422 self.tr('Show difference'), self._VCSDiff) |
336 self.vcsMultiMenuActions.append(act) |
423 self.vcsMultiMenuActions.append(act) |
337 act = menu.addAction( |
424 act = menu.addAction( |
338 UI.PixmapCache.getIcon("vcsDiff.png"), |
425 UI.PixmapCache.getIcon("vcsDiff.png"), |
339 self.trUtf8('Show difference (extended)'), |
426 self.tr('Show difference (extended)'), |
340 self.__HgExtendedDiff) |
427 self.__HgExtendedDiff) |
341 self.vcsMultiMenuActions.append(act) |
428 self.vcsMultiMenuActions.append(act) |
342 menu.addSeparator() |
429 menu.addSeparator() |
343 act = menu.addAction( |
430 act = menu.addAction( |
344 UI.PixmapCache.getIcon("vcsRevert.png"), |
431 UI.PixmapCache.getIcon("vcsRevert.png"), |
345 self.trUtf8('Revert changes'), self.__HgRevert) |
432 self.tr('Revert changes'), self.__HgRevert) |
346 self.vcsMultiMenuActions.append(act) |
433 self.vcsMultiMenuActions.append(act) |
347 act = menu.addAction( |
434 act = menu.addAction( |
348 self.trUtf8('Conflict resolved'), self.__HgResolve) |
435 self.tr('Conflict resolved'), self.__HgResolve) |
349 self.vcsMultiMenuActions.append(act) |
436 self.vcsMultiMenuActions.append(act) |
350 menu.addSeparator() |
437 menu.addSeparator() |
351 menu.addAction(self.trUtf8('Select all local file entries'), |
438 menu.addAction(self.tr('Select all local file entries'), |
352 self.browser.selectLocalEntries) |
439 self.browser.selectLocalEntries) |
353 menu.addAction(self.trUtf8('Select all versioned file entries'), |
440 menu.addAction(self.tr('Select all versioned file entries'), |
354 self.browser.selectVCSEntries) |
441 self.browser.selectVCSEntries) |
355 menu.addAction(self.trUtf8('Select all local directory entries'), |
442 menu.addAction(self.tr('Select all local directory entries'), |
356 self.browser.selectLocalDirEntries) |
443 self.browser.selectLocalDirEntries) |
357 menu.addAction(self.trUtf8('Select all versioned directory entries'), |
444 menu.addAction(self.tr('Select all versioned directory entries'), |
358 self.browser.selectVCSDirEntries) |
445 self.browser.selectVCSDirEntries) |
359 menu.addSeparator() |
446 menu.addSeparator() |
360 |
447 |
361 mainMenu.addSeparator() |
448 mainMenu.addSeparator() |
362 mainMenu.addMenu(menu) |
449 mainMenu.addMenu(menu) |
418 act.setFont(font) |
505 act.setFont(font) |
419 menu.addSeparator() |
506 menu.addSeparator() |
420 |
507 |
421 act = menu.addAction( |
508 act = menu.addAction( |
422 UI.PixmapCache.getIcon("vcsCommit.png"), |
509 UI.PixmapCache.getIcon("vcsCommit.png"), |
423 self.trUtf8('Commit changes to repository...'), |
510 self.tr('Commit changes to repository...'), |
424 self._VCSCommit) |
511 self._VCSCommit) |
425 self.vcsDirMenuActions.append(act) |
512 self.vcsDirMenuActions.append(act) |
|
513 self.__addExtensionsMenu(menu, 'dirMenu') |
426 menu.addSeparator() |
514 menu.addSeparator() |
427 act = menu.addAction( |
515 act = menu.addAction( |
428 UI.PixmapCache.getIcon("vcsAdd.png"), |
516 UI.PixmapCache.getIcon("vcsAdd.png"), |
429 self.trUtf8('Add to repository'), self._VCSAdd) |
517 self.tr('Add to repository'), self._VCSAdd) |
430 self.vcsAddDirMenuActions.append(act) |
518 self.vcsAddDirMenuActions.append(act) |
431 act = menu.addAction( |
519 act = menu.addAction( |
432 UI.PixmapCache.getIcon("vcsRemove.png"), |
520 UI.PixmapCache.getIcon("vcsRemove.png"), |
433 self.trUtf8('Remove from repository (and disk)'), |
521 self.tr('Remove from repository (and disk)'), |
434 self._VCSRemove) |
522 self._VCSRemove) |
435 self.vcsDirMenuActions.append(act) |
523 self.vcsDirMenuActions.append(act) |
436 menu.addSeparator() |
524 menu.addSeparator() |
437 act = menu.addAction(self.trUtf8('Copy'), self.__HgCopy) |
525 act = menu.addAction(self.tr('Copy'), self.__HgCopy) |
438 self.vcsDirMenuActions.append(act) |
526 self.vcsDirMenuActions.append(act) |
439 act = menu.addAction(self.trUtf8('Move'), self.__HgMove) |
527 act = menu.addAction(self.tr('Move'), self.__HgMove) |
440 self.vcsDirMenuActions.append(act) |
528 self.vcsDirMenuActions.append(act) |
441 menu.addSeparator() |
529 menu.addSeparator() |
442 act = menu.addAction( |
530 act = menu.addAction( |
443 UI.PixmapCache.getIcon("vcsLog.png"), |
531 UI.PixmapCache.getIcon("vcsLog.png"), |
444 self.trUtf8('Show log'), self._VCSLog) |
532 self.tr('Show log'), self._VCSLog) |
445 self.vcsDirMenuActions.append(act) |
533 self.vcsDirMenuActions.append(act) |
446 act = menu.addAction( |
534 act = menu.addAction( |
447 UI.PixmapCache.getIcon("vcsLog.png"), |
535 UI.PixmapCache.getIcon("vcsLog.png"), |
448 self.trUtf8('Show log browser'), self.__HgLogBrowser) |
536 self.tr('Show log browser'), self._VCSLogBrowser) |
449 self.vcsDirMenuActions.append(act) |
537 self.vcsDirMenuActions.append(act) |
450 menu.addSeparator() |
538 menu.addSeparator() |
451 act = menu.addAction( |
539 act = menu.addAction( |
452 UI.PixmapCache.getIcon("vcsStatus.png"), |
540 UI.PixmapCache.getIcon("vcsStatus.png"), |
453 self.trUtf8('Show status'), self._VCSStatus) |
541 self.tr('Show status'), self._VCSStatus) |
454 self.vcsDirMenuActions.append(act) |
542 self.vcsDirMenuActions.append(act) |
455 menu.addSeparator() |
543 menu.addSeparator() |
456 act = menu.addAction( |
544 act = menu.addAction( |
457 UI.PixmapCache.getIcon("vcsDiff.png"), |
545 UI.PixmapCache.getIcon("vcsDiff.png"), |
458 self.trUtf8('Show difference'), self._VCSDiff) |
546 self.tr('Show difference'), self._VCSDiff) |
459 self.vcsDirMenuActions.append(act) |
547 self.vcsDirMenuActions.append(act) |
460 act = menu.addAction( |
548 act = menu.addAction( |
461 UI.PixmapCache.getIcon("vcsDiff.png"), |
549 UI.PixmapCache.getIcon("vcsDiff.png"), |
462 self.trUtf8('Show difference (extended)'), |
550 self.tr('Show difference (extended)'), |
463 self.__HgExtendedDiff) |
551 self.__HgExtendedDiff) |
464 self.vcsDirMenuActions.append(act) |
552 self.vcsDirMenuActions.append(act) |
465 menu.addSeparator() |
553 menu.addSeparator() |
466 act = menu.addAction( |
554 act = menu.addAction( |
467 UI.PixmapCache.getIcon("vcsRevert.png"), |
555 UI.PixmapCache.getIcon("vcsRevert.png"), |
468 self.trUtf8('Revert changes'), self.__HgRevert) |
556 self.tr('Revert changes'), self.__HgRevert) |
469 self.vcsDirMenuActions.append(act) |
557 self.vcsDirMenuActions.append(act) |
470 act = menu.addAction( |
558 act = menu.addAction( |
471 self.trUtf8('Conflict resolved'), self.__HgResolve) |
559 self.tr('Conflict resolved'), self.__HgResolve) |
472 self.vcsDirMenuActions.append(act) |
560 self.vcsDirMenuActions.append(act) |
473 menu.addSeparator() |
561 menu.addSeparator() |
474 menu.addAction(self.trUtf8('Select all local file entries'), |
562 menu.addAction(self.tr('Select all local file entries'), |
475 self.browser.selectLocalEntries) |
563 self.browser.selectLocalEntries) |
476 menu.addAction(self.trUtf8('Select all versioned file entries'), |
564 menu.addAction(self.tr('Select all versioned file entries'), |
477 self.browser.selectVCSEntries) |
565 self.browser.selectVCSEntries) |
478 menu.addAction(self.trUtf8('Select all local directory entries'), |
566 menu.addAction(self.tr('Select all local directory entries'), |
479 self.browser.selectLocalDirEntries) |
567 self.browser.selectLocalDirEntries) |
480 menu.addAction(self.trUtf8('Select all versioned directory entries'), |
568 menu.addAction(self.tr('Select all versioned directory entries'), |
481 self.browser.selectVCSDirEntries) |
569 self.browser.selectVCSDirEntries) |
482 menu.addSeparator() |
570 menu.addSeparator() |
483 |
571 |
484 mainMenu.addSeparator() |
572 mainMenu.addSeparator() |
485 mainMenu.addMenu(menu) |
573 mainMenu.addMenu(menu) |
509 act.setFont(font) |
597 act.setFont(font) |
510 menu.addSeparator() |
598 menu.addSeparator() |
511 |
599 |
512 act = menu.addAction( |
600 act = menu.addAction( |
513 UI.PixmapCache.getIcon("vcsCommit.png"), |
601 UI.PixmapCache.getIcon("vcsCommit.png"), |
514 self.trUtf8('Commit changes to repository...'), |
602 self.tr('Commit changes to repository...'), |
515 self._VCSCommit) |
603 self._VCSCommit) |
516 self.vcsDirMultiMenuActions.append(act) |
604 self.vcsDirMultiMenuActions.append(act) |
|
605 self.__addExtensionsMenu(menu, 'dirMultiMenu') |
517 menu.addSeparator() |
606 menu.addSeparator() |
518 act = menu.addAction( |
607 act = menu.addAction( |
519 UI.PixmapCache.getIcon("vcsAdd.png"), |
608 UI.PixmapCache.getIcon("vcsAdd.png"), |
520 self.trUtf8('Add to repository'), self._VCSAdd) |
609 self.tr('Add to repository'), self._VCSAdd) |
521 self.vcsAddDirMultiMenuActions.append(act) |
610 self.vcsAddDirMultiMenuActions.append(act) |
522 act = menu.addAction( |
611 act = menu.addAction( |
523 UI.PixmapCache.getIcon("vcsRemove.png"), |
612 UI.PixmapCache.getIcon("vcsRemove.png"), |
524 self.trUtf8('Remove from repository (and disk)'), |
613 self.tr('Remove from repository (and disk)'), |
525 self._VCSRemove) |
614 self._VCSRemove) |
526 self.vcsDirMultiMenuActions.append(act) |
615 self.vcsDirMultiMenuActions.append(act) |
527 menu.addSeparator() |
616 menu.addSeparator() |
528 act = menu.addAction( |
617 act = menu.addAction( |
529 UI.PixmapCache.getIcon("vcsStatus.png"), |
618 UI.PixmapCache.getIcon("vcsStatus.png"), |
530 self.trUtf8('Show status'), self._VCSStatus) |
619 self.tr('Show status'), self._VCSStatus) |
531 self.vcsDirMultiMenuActions.append(act) |
620 self.vcsDirMultiMenuActions.append(act) |
532 menu.addSeparator() |
621 menu.addSeparator() |
533 act = menu.addAction( |
622 act = menu.addAction( |
534 UI.PixmapCache.getIcon("vcsDiff.png"), |
623 UI.PixmapCache.getIcon("vcsDiff.png"), |
535 self.trUtf8('Show difference'), self._VCSDiff) |
624 self.tr('Show difference'), self._VCSDiff) |
536 self.vcsDirMultiMenuActions.append(act) |
625 self.vcsDirMultiMenuActions.append(act) |
537 act = menu.addAction( |
626 act = menu.addAction( |
538 UI.PixmapCache.getIcon("vcsDiff.png"), |
627 UI.PixmapCache.getIcon("vcsDiff.png"), |
539 self.trUtf8('Show difference (extended)'), |
628 self.tr('Show difference (extended)'), |
540 self.__HgExtendedDiff) |
629 self.__HgExtendedDiff) |
541 self.vcsDirMultiMenuActions.append(act) |
630 self.vcsDirMultiMenuActions.append(act) |
542 menu.addSeparator() |
631 menu.addSeparator() |
543 act = menu.addAction( |
632 act = menu.addAction( |
544 UI.PixmapCache.getIcon("vcsRevert.png"), |
633 UI.PixmapCache.getIcon("vcsRevert.png"), |
545 self.trUtf8('Revert changes'), self.__HgRevert) |
634 self.tr('Revert changes'), self.__HgRevert) |
546 self.vcsDirMultiMenuActions.append(act) |
635 self.vcsDirMultiMenuActions.append(act) |
547 act = menu.addAction( |
636 act = menu.addAction( |
548 self.trUtf8('Conflict resolved'), self.__HgResolve) |
637 self.tr('Conflict resolved'), self.__HgResolve) |
549 self.vcsDirMultiMenuActions.append(act) |
638 self.vcsDirMultiMenuActions.append(act) |
550 menu.addSeparator() |
639 menu.addSeparator() |
551 menu.addAction(self.trUtf8('Select all local file entries'), |
640 menu.addAction(self.tr('Select all local file entries'), |
552 self.browser.selectLocalEntries) |
641 self.browser.selectLocalEntries) |
553 menu.addAction(self.trUtf8('Select all versioned file entries'), |
642 menu.addAction(self.tr('Select all versioned file entries'), |
554 self.browser.selectVCSEntries) |
643 self.browser.selectVCSEntries) |
555 menu.addAction(self.trUtf8('Select all local directory entries'), |
644 menu.addAction(self.tr('Select all local directory entries'), |
556 self.browser.selectLocalDirEntries) |
645 self.browser.selectLocalDirEntries) |
557 menu.addAction(self.trUtf8('Select all versioned directory entries'), |
646 menu.addAction(self.tr('Select all versioned directory entries'), |
558 self.browser.selectVCSDirEntries) |
647 self.browser.selectVCSDirEntries) |
559 menu.addSeparator() |
648 menu.addSeparator() |
560 |
649 |
561 mainMenu.addSeparator() |
650 mainMenu.addSeparator() |
562 mainMenu.addMenu(menu) |
651 mainMenu.addMenu(menu) |
563 self.menuDirMulti = menu |
652 self.menuDirMulti = menu |
564 |
653 |
565 ########################################################################### |
654 ########################################################################### |
566 # Menu handling methods below |
655 ## Menu handling methods below |
567 ########################################################################### |
656 ########################################################################### |
568 |
657 |
569 def __HgRevert(self): |
658 def __HgRevert(self): |
570 """ |
659 """ |
571 Protected slot called by the context menu to revert changes made. |
660 Protected slot called by the context menu to revert changes made. |