Tue, 30 Aug 2011 19:39:52 +0200
Continued implementing an interface to the Mercurial command server.
Modified part 1 of the queues extension.
1046
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
3 | # Copyright (c) 2011 Detlev Offenbach <detlev@die-offenbachs.de> |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing a dialog to define guards for patches. |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | import os |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | from PyQt4.QtCore import pyqtSlot, Qt, QProcess, QTimer |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | from PyQt4.QtGui import QDialog, QDialogButtonBox, QAbstractButton, QListWidgetItem |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | from E5Gui import E5MessageBox |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | from .Ui_HgQueuesDefineGuardsDialog import Ui_HgQueuesDefineGuardsDialog |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | import Preferences |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | import UI.PixmapCache |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | class HgQueuesDefineGuardsDialog(QDialog, Ui_HgQueuesDefineGuardsDialog): |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | """ |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | Class implementing a dialog to define guards for patches. |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | """ |
1047
b41a36b201e4
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1046
diff
changeset
|
27 | def __init__(self, vcs, extension, patchesList, parent=None): |
1046
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | """ |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | Constructor |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | @param vcs reference to the vcs object |
1047
b41a36b201e4
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1046
diff
changeset
|
32 | @param extension reference to the extension module (Queues) |
1046
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | @param patchesList list of patches (list of strings) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | @param parent reference to the parent widget (QWidget) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | """ |
1131
7781e396c903
Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1053
diff
changeset
|
36 | super().__init__(parent) |
1046
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | self.setupUi(self) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | |
1254
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
39 | self.process = None |
1046
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | self.vcs = vcs |
1047
b41a36b201e4
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1046
diff
changeset
|
41 | self.extension = extension |
1254
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
42 | self.__hgClient = vcs.getClient() |
1046
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | self.__patches = patchesList[:] |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | self.patchSelector.addItems([""] + self.__patches) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | self.plusButton.setIcon(UI.PixmapCache.getIcon("plus.png")) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | self.minusButton.setIcon(UI.PixmapCache.getIcon("minus.png")) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | self.__dirtyList = False |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | self.__currentPatch = "" |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | def closeEvent(self, e): |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | """ |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | Private slot implementing a close event handler. |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | @param e close event (QCloseEvent) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | """ |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | if self.process is not None and \ |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | self.process.state() != QProcess.NotRunning: |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | self.process.terminate() |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | QTimer.singleShot(2000, self.process.kill) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | self.process.waitForFinished(3000) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | if self.__dirtyList: |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | res = E5MessageBox.question(self, |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | self.trUtf8("Unsaved Changes"), |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | self.trUtf8("""The guards list has been changed.""" |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | """ Shall the changes be applied?"""), |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | E5MessageBox.StandardButtons( |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | E5MessageBox.Apply | \ |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | E5MessageBox.Discard), |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | E5MessageBox.Apply) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | if res == E5MessageBox.Apply: |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | self.__applyGuards() |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | else: |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | self.__dirtyList = False |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | e.accept() |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | def start(self, path): |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | """ |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | Public slot to start the list command. |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | @param path name of directory to be listed (string) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | """ |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | dname, fname = self.vcs.splitPath(path) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | # find the root of the repo |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | repodir = dname |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)): |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | repodir = os.path.dirname(repodir) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | if repodir == os.sep: |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | return |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | self.__repodir = repodir |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | self.on_patchSelector_activated("") |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | @pyqtSlot(str) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | def on_patchSelector_activated(self, patch): |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | """ |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | Private slot to get the list of guards defined for the given patch name. |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
104 | @param patch selected patch name (empty for current patch) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | """ |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | if self.__dirtyList: |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | res = E5MessageBox.question(self, |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | self.trUtf8("Unsaved Changes"), |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | self.trUtf8("""The guards list has been changed.""" |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | """ Shall the changes be applied?"""), |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111 | E5MessageBox.StandardButtons( |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
112 | E5MessageBox.Apply | \ |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | E5MessageBox.Discard), |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
114 | E5MessageBox.Apply) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
115 | if res == E5MessageBox.Apply: |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
116 | self.__applyGuards() |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | else: |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
118 | self.__dirtyList = False |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
119 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | self.guardsList.clear() |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | self.patchNameLabel.setText("") |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
123 | self.guardCombo.clear() |
1047
b41a36b201e4
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1046
diff
changeset
|
124 | guardsList = self.extension.getGuardsList(self.__repodir) |
1046
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | self.guardCombo.addItems(guardsList) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | self.guardCombo.setEditText("") |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | args = [] |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | args.append("qguard") |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | if patch: |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | args.append(patch) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | |
1254
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
133 | output = "" |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
134 | if self.__hgClient: |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
135 | output = self.__hgClient.runcommand(args)[0] |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
136 | else: |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
137 | ioEncoding = Preferences.getSystem("IOEncoding") |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
138 | process = QProcess() |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
139 | process.setWorkingDirectory(self.__repodir) |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
140 | process.start('hg', args) |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
141 | procStarted = process.waitForStarted() |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
142 | if procStarted: |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
143 | finished = process.waitForFinished(30000) |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
144 | if finished and process.exitCode() == 0: |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
145 | output = \ |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
146 | str(process.readAllStandardOutput(), ioEncoding, 'replace').strip() |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
147 | |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
148 | if output: |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
149 | patchName, guards = output.split(":", 1) |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
150 | self.patchNameLabel.setText(patchName) |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
151 | guardsList = guards.strip().split() |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
152 | for guard in guardsList: |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
153 | if guard.startswith("+"): |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
154 | icon = UI.PixmapCache.getIcon("plus.png") |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
155 | guard = guard[1:] |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
156 | sign = "+" |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
157 | elif guard.startswith("-"): |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
158 | icon = UI.PixmapCache.getIcon("minus.png") |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
159 | guard = guard[1:] |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
160 | sign = "-" |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
161 | else: |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
162 | continue |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
163 | itm = QListWidgetItem(icon, guard, self.guardsList) |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
164 | itm.setData(Qt.UserRole, sign) |
1046
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
165 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
166 | self.on_guardsList_itemSelectionChanged() |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
167 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
168 | @pyqtSlot() |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
169 | def on_guardsList_itemSelectionChanged(self): |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
170 | """ |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
171 | Private slot to handle changes of the selection of guards. |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
172 | """ |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
173 | self.removeButton.setEnabled( |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
174 | len(self.guardsList.selectedItems()) > 0) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
175 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
176 | def __getGuard(self, guard): |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
177 | """ |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
178 | Private method to get a reference to a named guard. |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
179 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
180 | @param guard name of the guard (string) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
181 | @return reference to the guard item (QListWidgetItem) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
182 | """ |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
183 | items = self.guardsList.findItems(guard, Qt.MatchCaseSensitive) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
184 | if items: |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
185 | return items[0] |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
186 | else: |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
187 | return None |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
188 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
189 | @pyqtSlot(str) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
190 | def on_guardCombo_editTextChanged(self, txt): |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
191 | """ |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
192 | Private slot to handle changes of the text of the guard combo. |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
193 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
194 | @param txt contents of the guard combo line edit (string) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
195 | """ |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
196 | self.addButton.setEnabled(txt != "") |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
197 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
198 | @pyqtSlot() |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
199 | def on_addButton_clicked(self): |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
200 | """ |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
201 | Private slot to add a guard definition to the list or change it. |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
202 | """ |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
203 | guard = self.guardCombo.currentText() |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
204 | if self.plusButton.isChecked(): |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
205 | sign = "+" |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
206 | icon = UI.PixmapCache.getIcon("plus.png") |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
207 | else: |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
208 | sign = "-" |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
209 | icon = UI.PixmapCache.getIcon("minus.png") |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
210 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
211 | guardItem = self.__getGuard(guard) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
212 | if guardItem: |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
213 | # guard already exists, remove it first |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
214 | row = self.guardsList.row(guardItem) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
215 | itm = self.guardsList.takeItem(row) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
216 | del itm |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
217 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
218 | itm = QListWidgetItem(icon, guard, self.guardsList) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
219 | itm.setData(Qt.UserRole, sign) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
220 | self.guardsList.sortItems() |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
221 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
222 | self.__dirtyList = True |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
223 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
224 | @pyqtSlot() |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
225 | def on_removeButton_clicked(self): |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
226 | """ |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
227 | Private slot to remove guard definitions from the list. |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
228 | """ |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
229 | res = E5MessageBox.yesNo(self, |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
230 | self.trUtf8("Remove Guards"), |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
231 | self.trUtf8("""Do you really want to remove the selected guards?""")) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
232 | if res: |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
233 | for guardItem in self.guardsList.selectedItems(): |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
234 | row = self.guardsList.row(guardItem) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
235 | itm = self.guardsList.takeItem(row) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
236 | del itm |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
237 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
238 | self.__dirtyList = True |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
239 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
240 | @pyqtSlot(QAbstractButton) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
241 | def on_buttonBox_clicked(self, button): |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
242 | """ |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
243 | Private slot called by a button of the button box clicked. |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
244 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
245 | @param button button that was clicked (QAbstractButton) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
246 | """ |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
247 | if button == self.buttonBox.button(QDialogButtonBox.Apply): |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
248 | self.__applyGuards() |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
249 | elif button == self.buttonBox.button(QDialogButtonBox.Close): |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
250 | self.close() |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
251 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
252 | @pyqtSlot() |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
253 | def __applyGuards(self): |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
254 | """ |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
255 | Private slot to apply the defined guards to the current patch. |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
256 | """ |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
257 | if self.__dirtyList: |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
258 | guardsList = [] |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
259 | for row in range(self.guardsList.count()): |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
260 | itm = self.guardsList.item(row) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
261 | guard = itm.data(Qt.UserRole) + itm.text() |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
262 | guardsList.append(guard) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
263 | |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
264 | args = [] |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
265 | args.append("qguard") |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
266 | args.append(self.patchNameLabel.text()) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
267 | if guardsList: |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
268 | args.append("--") |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
269 | args.extend(guardsList) |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
270 | else: |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
271 | args.append("--none") |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
272 | |
1254
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
273 | error = "" |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
274 | if self.__hgClient: |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
275 | error = self.__hgClient.runcommand(args)[1] |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
276 | else: |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
277 | ioEncoding = Preferences.getSystem("IOEncoding") |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
278 | process = QProcess() |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
279 | process.setWorkingDirectory(self.__repodir) |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
280 | process.start('hg', args) |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
281 | procStarted = process.waitForStarted() |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
282 | if procStarted: |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
283 | finished = process.waitForFinished(30000) |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
284 | if finished: |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
285 | if process.exitCode() != 0: |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
286 | error = \ |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
287 | str(process.readAllStandardError(), ioEncoding, 'replace') |
1046
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
288 | else: |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
289 | E5MessageBox.warning(self, |
5dd14be5d6a1
Continued with support for Mercurial queues extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
290 | self.trUtf8("Apply Guard Definitions"), |
1254
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
291 | self.trUtf8("""The Mercurial process did not finish""" |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
292 | """ in time.""")) |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
293 | |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
294 | if error: |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
295 | E5MessageBox.warning(self, |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
296 | self.trUtf8("Apply Guard Definitions"), |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
297 | self.trUtf8("""<p>The defined guards could not be""" |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
298 | """ applied.</p><p>Reason: {0}</p>""")\ |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
299 | .format(error)) |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
300 | else: |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
301 | self.__dirtyList = False |
c077fa008aae
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
302 | self.on_patchSelector_activated(self.patchNameLabel.text()) |