Plugins/VcsPlugins/vcsMercurial/FetchExtension/ProjectHelper.py

Thu, 03 Apr 2014 23:05:31 +0200

author
T.Rzepka <Tobias.Rzepka@gmail.com>
date
Thu, 03 Apr 2014 23:05:31 +0200
branch
Py2 comp.
changeset 3484
645c12de6b0c
parent 3178
f25fc1364c88
parent 3345
071afe8be2a1
child 3656
441956d8fce5
permissions
-rw-r--r--

Merge with default branch.

1066
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
3160
209a07d7e401 Updated copyright for 2014.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3023
diff changeset
3 # Copyright (c) 2011 - 2014 Detlev Offenbach <detlev@die-offenbachs.de>
1066
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the fetch extension project helper.
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
3145
a9de05d4a22f # __IGNORE_WARNING__ added/ removed.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3058
diff changeset
10 from __future__ import unicode_literals
2525
8b507a9a2d40 Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2302
diff changeset
11
1066
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 from PyQt4.QtGui import QMenu
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 from E5Gui.E5Action import E5Action
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 from E5Gui import E5MessageBox
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16
1087
fb8cd56819a9 Changed the Mercurial extension interface code to use custom base classes instead of inheriting QObject directly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1074
diff changeset
17 from ..HgExtensionProjectHelper import HgExtensionProjectHelper
fb8cd56819a9 Changed the Mercurial extension interface code to use custom base classes instead of inheriting QObject directly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1074
diff changeset
18
1066
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 import UI.PixmapCache
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21
1087
fb8cd56819a9 Changed the Mercurial extension interface code to use custom base classes instead of inheriting QObject directly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1074
diff changeset
22 class FetchProjectHelper(HgExtensionProjectHelper):
1066
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 """
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 Class implementing the fetch extension project helper.
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 """
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 def __init__(self):
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 """
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 Constructor
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 """
2525
8b507a9a2d40 Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2302
diff changeset
30 super(FetchProjectHelper, self).__init__()
1066
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 def initActions(self):
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 """
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 Public method to generate the action objects.
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 """
3023
34ce20603bf7 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
36 self.hgFetchAct = E5Action(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
37 self.tr('Fetch changes'),
3023
34ce20603bf7 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
38 UI.PixmapCache.getIcon("vcsUpdate.png"),
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
39 self.tr('Fetch changes'),
3023
34ce20603bf7 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
40 0, 0, self, 'mercurial_fetch')
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
41 self.hgFetchAct.setStatusTip(self.tr(
1066
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 'Fetch changes from a remote repository'
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 ))
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
44 self.hgFetchAct.setWhatsThis(self.tr(
1066
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 """<b>Fetch changes</b>"""
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 """<p>This pulls changes from a remote repository into the """
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
47 """local repository. If the pulled changes add a new branch"""
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
48 """ head, the head is automatically merged, and the result of"""
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
49 """ the merge is committed. Otherwise, the working directory"""
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
50 """ is updated to include the new changes.</p>"""
1066
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 ))
3345
071afe8be2a1 Changed signal/slot usage to not use constructs like 'triggered[()].connect(...)' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3277
diff changeset
52 self.hgFetchAct.triggered.connect(self.__hgFetch)
1066
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 self.actions.append(self.hgFetchAct)
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 def initMenu(self, mainMenu):
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 """
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 Public method to generate the extension menu.
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 @param mainMenu reference to the main menu (QMenu)
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 @return populated menu (QMenu)
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 """
1074
ed2585464f12 Changed the logic of the Mercurials extension menu creation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1073
diff changeset
62 menu = QMenu(self.menuTitle(), mainMenu)
1106
3e57cd52e0f6 Added icons to the Mercurial extensions menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1087
diff changeset
63 menu.setIcon(UI.PixmapCache.getIcon("vcsUpdate.png"))
1073
9f0c4b4eccb1 Made a few of the Mercurial menus tearable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1066
diff changeset
64 menu.setTearOffEnabled(True)
1066
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 menu.addAction(self.hgFetchAct)
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67
3277
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
68 menu.aboutToShow.connect(self.__aboutToShowMenu)
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
69
1066
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 return menu
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71
3277
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
72 def __aboutToShowMenu(self):
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
73 """
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
74 Private slot to handle the aboutToShow signal of the background menu.
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
75 """
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
76 self.hgFetchAct.setEnabled(self.vcs.canPull())
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
77
1074
ed2585464f12 Changed the logic of the Mercurials extension menu creation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1073
diff changeset
78 def menuTitle(self):
ed2585464f12 Changed the logic of the Mercurials extension menu creation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1073
diff changeset
79 """
ed2585464f12 Changed the logic of the Mercurials extension menu creation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1073
diff changeset
80 Public method to get the menu title.
1087
fb8cd56819a9 Changed the Mercurial extension interface code to use custom base classes instead of inheriting QObject directly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1074
diff changeset
81
fb8cd56819a9 Changed the Mercurial extension interface code to use custom base classes instead of inheriting QObject directly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1074
diff changeset
82 @return title of the menu (string)
1074
ed2585464f12 Changed the logic of the Mercurials extension menu creation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1073
diff changeset
83 """
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
84 return self.tr("Fetch")
1074
ed2585464f12 Changed the logic of the Mercurials extension menu creation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1073
diff changeset
85
1066
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 def __hgFetch(self):
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 """
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 Private slot used to fetch changes from a remote repository.
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 """
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 shouldReopen = self.vcs.getExtensionObject("fetch")\
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 .hgFetch(self.project.getProjectPath())
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 if shouldReopen:
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
93 res = E5MessageBox.yesNo(
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
94 None,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
95 self.tr("Fetch"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
96 self.tr("""The project should be reread. Do this now?"""),
1066
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 yesDefault=True)
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 if res:
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 self.project.reopenProject()

eric ide

mercurial