Plugins/VcsPlugins/vcsMercurial/ShelveExtension/ProjectHelper.py

Fri, 21 Feb 2014 18:57:15 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Fri, 21 Feb 2014 18:57:15 +0100
changeset 3291
58e95eea9b6d
parent 3290
dbb53746813f
child 3297
7b7e8124fb51
permissions
-rw-r--r--

Added the shelve function to the Mercurial Shelve extension.

3290
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3 # Copyright (c) 2014 Detlev Offenbach <detlev@die-offenbachs.de>
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the shelve extension project helper.
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 from PyQt4.QtGui import QMenu
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
3291
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
12 from E5Gui.E5Action import E5Action
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
13 from E5Gui import E5MessageBox
3290
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
3291
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
15 from ..HgExtensionProjectHelper import HgExtensionProjectHelper
3290
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 class ShelveProjectHelper(HgExtensionProjectHelper):
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 """
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 Class implementing the queues extension project helper.
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 """
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 def __init__(self):
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 """
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 Constructor
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 """
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 super().__init__()
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 def initActions(self):
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 """
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 Public method to generate the action objects.
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 """
3291
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
32 self.hgShelveAct = E5Action(
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
33 self.tr('Shelve changes'),
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
34 self.tr('Shelve changes...'),
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
35 0, 0, self, 'mercurial_shelve')
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
36 self.hgShelveAct.setStatusTip(self.tr(
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
37 'Shelve all current changes of the project'
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
38 ))
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
39 self.hgShelveAct.setWhatsThis(self.tr(
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
40 """<b>Shelve changes</b>"""
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
41 """<p>This shelves all current changes of the project.</p>"""
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
42 ))
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
43 self.hgShelveAct.triggered[()].connect(self.__hgShelve)
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
44 self.actions.append(self.hgShelveAct)
3290
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 def initMenu(self, mainMenu):
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 """
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 Public method to generate the extension menu.
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 @param mainMenu reference to the main menu (QMenu)
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 @return populated menu (QMenu)
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 """
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 menu = QMenu(self.menuTitle(), mainMenu)
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 menu.setTearOffEnabled(True)
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55
3291
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
56 menu.addAction(self.hgShelveAct)
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
57
3290
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 return menu
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 def menuTitle(self):
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 """
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 Public method to get the menu title.
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 @return title of the menu (string)
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 """
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 return self.tr("Shelve")
3291
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
67
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
68 def __hgShelve(self):
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
69 """
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
70 Private slot used to shelve all current changes.
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
71 """
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
72 shouldReopen = self.vcs.getExtensionObject("shelve")\
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
73 .hgShelve(self.project.getProjectPath())
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
74 if shouldReopen:
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
75 res = E5MessageBox.yesNo(
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
76 None,
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
77 self.tr("Shelve"),
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
78 self.tr("""The project should be reread. Do this now?"""),
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
79 yesDefault=True)
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
80 if res:
58e95eea9b6d Added the shelve function to the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
81 self.project.reopenProject()

eric ide

mercurial