Fri, 29 Jul 2011 19:01:14 +0200
Added code to start monitoring the Mercurial hgrc file when it was created by starting the hgrc file editor.
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
791
9ec2ac20e54e
Updated copyright notice.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
3 | # Copyright (c) 2010 - 2011 Detlev Offenbach <detlev@die-offenbachs.de> |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing a dialog to show the output of the hg log command process. |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | import os |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | |
495
b31b0bffa5b0
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
470
diff
changeset
|
12 | from PyQt4.QtCore import pyqtSlot, QProcess, QTimer, QUrl, QByteArray |
537
72b32daeb8d6
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
495
diff
changeset
|
13 | from PyQt4.QtGui import QWidget, QDialogButtonBox, QApplication, \ |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | QLineEdit, QTextCursor |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | |
207
3f889378dede
Added some code to inspect incoming patches as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
204
diff
changeset
|
16 | from E5Gui.E5Application import e5App |
537
72b32daeb8d6
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
495
diff
changeset
|
17 | from E5Gui import E5MessageBox |
207
3f889378dede
Added some code to inspect incoming patches as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
204
diff
changeset
|
18 | |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | from .Ui_HgLogDialog import Ui_HgLogDialog |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | from .HgDiffDialog import HgDiffDialog |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | import Utilities |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | import Preferences |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
25 | |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | class HgLogDialog(QWidget, Ui_HgLogDialog): |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | """ |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | Class implementing a dialog to show the output of the hg log command process. |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
30 | The dialog is nonmodal. Clicking a link in the upper text pane shows |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | a diff of the revisions. |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | """ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
33 | def __init__(self, vcs, mode="log", bundle=None, parent=None): |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | """ |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | Constructor |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | @param vcs reference to the vcs object |
181
4af57f97c1bc
Added code to choose the way incoming and outgoing logs are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
178
diff
changeset
|
38 | @param mode mode of the dialog (string; one of log, incoming, outgoing) |
213
42bb97ff0bbb
Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
39 | @param bundle name of a bundle file (string) |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | @param parent parent widget (QWidget) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | """ |
1131
7781e396c903
Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1019
diff
changeset
|
42 | super().__init__(parent) |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | self.setupUi(self) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | self.buttonBox.button(QDialogButtonBox.Close).setDefault(True) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | self.process = QProcess() |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | self.vcs = vcs |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | if mode in ("log", "incoming", "outgoing"): |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | self.mode = mode |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | else: |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | self.mode = "log" |
213
42bb97ff0bbb
Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
53 | self.bundle = bundle |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
537
diff
changeset
|
55 | self.contents.setHtml( |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | self.trUtf8('<b>Processing your request, please wait...</b>')) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | |
464
a2b1d1770ef0
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
215
diff
changeset
|
58 | self.process.finished.connect(self.__procFinished) |
a2b1d1770ef0
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
215
diff
changeset
|
59 | self.process.readyReadStandardOutput.connect(self.__readStdout) |
470
99d8c50ba42f
Fixed some bugs introduced by signal/slot API conversion.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
464
diff
changeset
|
60 | self.process.readyReadStandardError.connect(self.__readStderr) |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | |
495
b31b0bffa5b0
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
470
diff
changeset
|
62 | self.contents.anchorClicked.connect(self.__sourceChanged) |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | self.revisions = [] # stack of remembered revisions |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | self.revString = self.trUtf8('Revision') |
210
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
66 | self.projectMode = False |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | |
210
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
68 | self.logEntries = [] # list of log entries |
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
69 | self.lastLogEntry = {} |
209
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
70 | self.fileCopies = {} |
210
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
71 | self.endInitialText = False |
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
72 | self.initialText = [] |
209
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
73 | |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | self.diff = None |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | def closeEvent(self, e): |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | """ |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | Private slot implementing a close event handler. |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | @param e close event (QCloseEvent) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | """ |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | if self.process is not None and \ |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | self.process.state() != QProcess.NotRunning: |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | self.process.terminate() |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | QTimer.singleShot(2000, self.process.kill) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | self.process.waitForFinished(3000) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | e.accept() |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
90 | def start(self, fn, noEntries=0): |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | """ |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | Public slot to start the hg log command. |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | @param fn filename to show the log for (string) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | @param noEntries number of entries to show (integer) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | """ |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | self.errorGroup.hide() |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | QApplication.processEvents() |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | self.intercept = False |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | self.filename = fn |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | self.dname, self.fname = self.vcs.splitPath(fn) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
104 | # find the root of the repo |
209
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
105 | self.repodir = self.dname |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
106 | while not os.path.isdir(os.path.join(self.repodir, self.vcs.adminDir)): |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
107 | self.repodir = os.path.dirname(self.repodir) |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
108 | if self.repodir == os.sep: |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | return |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | |
210
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
111 | self.projectMode = (self.fname == "." and self.dname == self.repodir) |
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
112 | |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | self.process.kill() |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
114 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
115 | self.activateWindow() |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
116 | self.raise_() |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
118 | args = [] |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
119 | args.append(self.mode) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | self.vcs.addArguments(args, self.vcs.options['global']) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | self.vcs.addArguments(args, self.vcs.options['log']) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122 | if noEntries: |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
123 | args.append('--limit') |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | args.append(str(noEntries)) |
207
3f889378dede
Added some code to inspect incoming patches as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
204
diff
changeset
|
125 | if self.mode in ("incoming", "outgoing"): |
3f889378dede
Added some code to inspect incoming patches as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
204
diff
changeset
|
126 | args.append("--newest-first") |
204
61552f56788a
Fixed an issue introduced by the last change to Mercurial log browser and dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
127 | if self.mode == "log": |
61552f56788a
Fixed an issue introduced by the last change to Mercurial log browser and dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
203
diff
changeset
|
128 | args.append('--copies') |
203
0bd3912f3c5f
Refined the Mercurial log browser and log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
181
diff
changeset
|
129 | args.append('--style') |
1019
d8a9697f78d1
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
130 | if self.vcs.versionStr >= "1.8": |
d8a9697f78d1
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
131 | args.append(os.path.join(os.path.dirname(__file__), |
d8a9697f78d1
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
132 | "styles", "logDialogBookmark.style")) |
d8a9697f78d1
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
133 | else: |
d8a9697f78d1
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
134 | args.append(os.path.join(os.path.dirname(__file__), |
d8a9697f78d1
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
135 | "styles", "logDialog.style")) |
207
3f889378dede
Added some code to inspect incoming patches as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
204
diff
changeset
|
136 | if self.mode == "incoming": |
214
eb1cf9398a3f
Added code to preview a Mercurial bundle file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
213
diff
changeset
|
137 | if self.bundle: |
eb1cf9398a3f
Added code to preview a Mercurial bundle file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
213
diff
changeset
|
138 | args.append(self.bundle) |
213
42bb97ff0bbb
Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
139 | else: |
42bb97ff0bbb
Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
140 | project = e5App().getObject("Project") |
42bb97ff0bbb
Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
141 | self.vcs.bundleFile = os.path.join( |
42bb97ff0bbb
Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
142 | project.getProjectManagementDir(), "hg-bundle.hg") |
42bb97ff0bbb
Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
143 | args.append('--bundle') |
42bb97ff0bbb
Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
144 | args.append(self.vcs.bundleFile) |
210
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
145 | if not self.projectMode: |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
146 | args.append(self.filename) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
147 | |
209
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
148 | self.process.setWorkingDirectory(self.repodir) |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
149 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
150 | self.process.start('hg', args) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
151 | procStarted = self.process.waitForStarted() |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152 | if not procStarted: |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
153 | self.inputGroup.setEnabled(False) |
537
72b32daeb8d6
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
495
diff
changeset
|
154 | E5MessageBox.critical(self, |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
155 | self.trUtf8('Process Generation Error'), |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
156 | self.trUtf8( |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
157 | 'The process {0} could not be started. ' |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
158 | 'Ensure, that it is in the search path.' |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
159 | ).format('hg')) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
160 | |
209
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
161 | def __getParents(self, rev): |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
162 | """ |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
163 | Private method to get the parents of the currently viewed file/directory. |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
164 | |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
165 | @param rev revision number to get parents for (string) |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
166 | @return list of parent revisions (list of strings) |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
167 | """ |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
168 | errMsg = "" |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
169 | parents = [] |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
170 | |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
171 | process = QProcess() |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
172 | args = [] |
210
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
173 | args.append("parents") |
214
eb1cf9398a3f
Added code to preview a Mercurial bundle file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
213
diff
changeset
|
174 | if self.mode == "incoming": |
213
42bb97ff0bbb
Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
175 | if self.bundle: |
42bb97ff0bbb
Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
176 | args.append("--repository") |
214
eb1cf9398a3f
Added code to preview a Mercurial bundle file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
213
diff
changeset
|
177 | args.append(self.bundle) |
215
e8978dca44af
Fixed issues with non-existing bundle caches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
214
diff
changeset
|
178 | elif self.vcs.bundleFile and os.path.exists(self.vcs.bundleFile): |
213
42bb97ff0bbb
Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
179 | args.append("--repository") |
42bb97ff0bbb
Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
180 | args.append(self.vcs.bundleFile) |
214
eb1cf9398a3f
Added code to preview a Mercurial bundle file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
213
diff
changeset
|
181 | args.append("--template") |
eb1cf9398a3f
Added code to preview a Mercurial bundle file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
213
diff
changeset
|
182 | args.append("{rev}:{node|short}\n") |
eb1cf9398a3f
Added code to preview a Mercurial bundle file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
213
diff
changeset
|
183 | args.append("-r") |
eb1cf9398a3f
Added code to preview a Mercurial bundle file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
213
diff
changeset
|
184 | args.append(rev) |
210
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
185 | if not self.projectMode: |
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
186 | args.append(self.filename) |
209
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
187 | |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
188 | process.setWorkingDirectory(self.repodir) |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
189 | process.start('hg', args) |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
190 | procStarted = process.waitForStarted() |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
191 | if procStarted: |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
192 | finished = process.waitForFinished(30000) |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
193 | if finished and process.exitCode() == 0: |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
194 | output = \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
195 | str(process.readAllStandardOutput(), |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
196 | Preferences.getSystem("IOEncoding"), |
209
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
197 | 'replace') |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
198 | parents = [p for p in output.strip().splitlines()] |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
199 | else: |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
200 | if not finished: |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
201 | errMsg = self.trUtf8("The hg process did not finish within 30s.") |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
202 | else: |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
203 | errMsg = self.trUtf8("Could not start the hg executable.") |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
204 | |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
205 | if errMsg: |
537
72b32daeb8d6
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
495
diff
changeset
|
206 | E5MessageBox.critical(self, |
209
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
207 | self.trUtf8("Mercurial Error"), |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
208 | errMsg) |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
209 | |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
210 | return parents |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
211 | |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
212 | def __procFinished(self, exitCode, exitStatus): |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
213 | """ |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
214 | Private slot connected to the finished signal. |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
215 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
216 | @param exitCode exit code of the process (integer) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
217 | @param exitStatus exit status of the process (QProcess.ExitStatus) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
218 | """ |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
219 | self.inputGroup.setEnabled(False) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
220 | self.inputGroup.hide() |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
221 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
222 | self.contents.clear() |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
223 | |
209
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
224 | if not self.logEntries: |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
225 | self.errors.append(self.trUtf8("No log available for '{0}'")\ |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
226 | .format(self.filename)) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
227 | self.errorGroup.show() |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
228 | return |
210
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
229 | |
212
19785b4c1bed
Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
211
diff
changeset
|
230 | html = "" |
19785b4c1bed
Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
211
diff
changeset
|
231 | |
210
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
232 | if self.initialText: |
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
233 | for line in self.initialText: |
212
19785b4c1bed
Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
211
diff
changeset
|
234 | html += Utilities.html_encode(line.strip()) |
19785b4c1bed
Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
211
diff
changeset
|
235 | html += '<br />\n' |
19785b4c1bed
Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
211
diff
changeset
|
236 | html += '{0}<br/>\n'.format(80 * "=") |
209
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
237 | |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
238 | for entry in self.logEntries: |
210
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
239 | fileCopies = {} |
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
240 | if entry["file_copies"]: |
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
241 | for fentry in entry["file_copies"].split(", "): |
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
242 | newName, oldName = fentry[:-1].split(" (") |
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
243 | fileCopies[newName] = oldName |
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
244 | |
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
245 | rev, hexRev = entry["change"].split(":") |
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
246 | dstr = '<p><b>{0} {1}</b>'.format(self.revString, entry["change"]) |
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
247 | if entry["parents"]: |
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
248 | parents = entry["parents"].split() |
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
249 | else: |
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
250 | parents = self.__getParents(rev) |
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
251 | for parent in parents: |
209
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
252 | url = QUrl() |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
253 | url.setScheme("file") |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
254 | url.setPath(self.filename) |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
255 | query = QByteArray() |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
256 | query.append(parent.split(":")[0]).append('_').append(rev) |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
257 | url.setEncodedQuery(query) |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
258 | dstr += ' [<a href="{0}" name="{1}" id="{1}">{2}</a>]'.format( |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
259 | url.toString(), |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
260 | str(query, encoding="ascii"), |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
261 | self.trUtf8('diff to {0}').format(parent), |
209
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
262 | ) |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
263 | dstr += '<br />\n' |
212
19785b4c1bed
Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
211
diff
changeset
|
264 | html += dstr |
210
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
265 | |
212
19785b4c1bed
Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
211
diff
changeset
|
266 | html += self.trUtf8("Branches: {0}<br />\n").format(entry["branches"]) |
210
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
267 | |
212
19785b4c1bed
Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
211
diff
changeset
|
268 | html += self.trUtf8("Tags: {0}<br />\n").format(entry["tags"]) |
210
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
269 | |
1019
d8a9697f78d1
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
270 | if "bookmarks" in entry: |
d8a9697f78d1
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
271 | html += self.trUtf8("Bookmarks: {0}<br />\n").format(entry["bookmarks"]) |
d8a9697f78d1
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
272 | |
212
19785b4c1bed
Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
211
diff
changeset
|
273 | html += self.trUtf8("Parents: {0}<br />\n").format(entry["parents"]) |
210
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
274 | |
212
19785b4c1bed
Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
211
diff
changeset
|
275 | html += self.trUtf8('<i>Author: {0}</i><br />\n').format(entry["user"]) |
210
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
276 | |
209
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
277 | date, time = entry["date"].split()[:2] |
212
19785b4c1bed
Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
211
diff
changeset
|
278 | html += self.trUtf8('<i>Date: {0}, {1}</i><br />\n').format(date, time) |
210
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
279 | |
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
280 | for line in entry["description"]: |
212
19785b4c1bed
Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
211
diff
changeset
|
281 | html += Utilities.html_encode(line.strip()) |
19785b4c1bed
Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
211
diff
changeset
|
282 | html += '<br />\n' |
210
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
283 | |
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
284 | if entry["file_adds"]: |
212
19785b4c1bed
Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
211
diff
changeset
|
285 | html += '<br />\n' |
209
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
286 | for f in entry["file_adds"].strip().split(", "): |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
287 | if f in fileCopies: |
212
19785b4c1bed
Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
211
diff
changeset
|
288 | html += self.trUtf8('Added {0} (copied from {1})<br />\n')\ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
289 | .format(Utilities.html_encode(f), |
212
19785b4c1bed
Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
211
diff
changeset
|
290 | Utilities.html_encode(fileCopies[f])) |
209
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
291 | else: |
212
19785b4c1bed
Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
211
diff
changeset
|
292 | html += self.trUtf8('Added {0}<br />\n')\ |
19785b4c1bed
Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
211
diff
changeset
|
293 | .format(Utilities.html_encode(f)) |
210
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
294 | |
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
295 | if entry["files_mods"]: |
212
19785b4c1bed
Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
211
diff
changeset
|
296 | html += '<br />\n' |
209
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
297 | for f in entry["files_mods"].strip().split(", "): |
212
19785b4c1bed
Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
211
diff
changeset
|
298 | html += self.trUtf8('Modified {0}<br />\n')\ |
19785b4c1bed
Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
211
diff
changeset
|
299 | .format(Utilities.html_encode(f)) |
210
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
300 | |
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
301 | if entry["file_dels"]: |
212
19785b4c1bed
Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
211
diff
changeset
|
302 | html += '<br />\n' |
209
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
303 | for f in entry["file_dels"].strip().split(", "): |
212
19785b4c1bed
Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
211
diff
changeset
|
304 | html += self.trUtf8('Deleted {0}<br />\n')\ |
19785b4c1bed
Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
211
diff
changeset
|
305 | .format(Utilities.html_encode(f)) |
209
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
306 | |
212
19785b4c1bed
Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
211
diff
changeset
|
307 | html += '</p>{0}<br/>\n'.format(80 * "=") |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
308 | |
212
19785b4c1bed
Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
211
diff
changeset
|
309 | self.contents.setHtml(html) |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
310 | tc = self.contents.textCursor() |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
311 | tc.movePosition(QTextCursor.Start) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
312 | self.contents.setTextCursor(tc) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
313 | self.contents.ensureCursorVisible() |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
314 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
315 | def __readStdout(self): |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
316 | """ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
317 | Private slot to handle the readyReadStandardOutput signal. |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
318 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
319 | It reads the output of the process and inserts it into a buffer. |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
320 | """ |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
321 | self.process.setReadChannel(QProcess.StandardOutput) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
322 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
323 | while self.process.canReadLine(): |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
324 | s = str(self.process.readLine(), |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
325 | Preferences.getSystem("IOEncoding"), |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
326 | 'replace') |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
327 | |
210
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
328 | if s == "@@@\n": |
209
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
329 | self.logEntries.append(self.lastLogEntry) |
210
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
330 | self.lastLogEntry = {} |
209
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
331 | self.fileCopies = {} |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
332 | else: |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
333 | try: |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
334 | key, value = s.split("|", 1) |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
335 | except ValueError: |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
336 | key = "" |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
337 | value = s |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
338 | if key == "change": |
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
339 | self.endInitialText = True |
210
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
340 | if key in ("change", "branches", "tags", "parents", "user", |
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
341 | "date", "file_copies", "file_adds", "files_mods", |
1019
d8a9697f78d1
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
342 | "file_dels", "bookmarks"): |
209
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
343 | self.lastLogEntry[key] = value.strip() |
210
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
344 | elif key == "description": |
209
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
345 | self.lastLogEntry[key] = [value.strip()] |
210
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
346 | else: |
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
347 | if self.endInitialText: |
209
94e34c41e823
Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
207
diff
changeset
|
348 | self.lastLogEntry["description"].append(value.strip()) |
210
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
349 | else: |
b1a204f22291
Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
209
diff
changeset
|
350 | self.initialText.append(value) |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
351 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
352 | def __readStderr(self): |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
353 | """ |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
354 | Private slot to handle the readyReadStandardError signal. |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
355 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
356 | It reads the error output of the process and inserts it into the |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
357 | error pane. |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
358 | """ |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
359 | if self.process is not None: |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
360 | self.errorGroup.show() |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
361 | s = str(self.process.readAllStandardError(), |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
362 | Preferences.getSystem("IOEncoding"), |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
363 | 'replace') |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
364 | self.errors.insertPlainText(s) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
365 | self.errors.ensureCursorVisible() |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
366 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
367 | def __sourceChanged(self, url): |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
368 | """ |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
369 | Private slot to handle the sourceChanged signal of the contents pane. |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
370 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
371 | @param url the url that was clicked (QUrl) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
372 | """ |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
373 | filename = url.path() |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
374 | if Utilities.isWindowsPlatform(): |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
375 | if filename.startswith("/"): |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
376 | filename = filename[1:] |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
377 | ver = bytes(url.encodedQuery()).decode() |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
378 | v1, v2 = ver.split('_') |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
379 | if v1 == "" or v2 == "": |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
380 | return |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
381 | self.contents.scrollToAnchor(ver) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
382 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
383 | if self.diff: |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
384 | del self.diff |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
385 | self.diff = HgDiffDialog(self.vcs) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
386 | self.diff.show() |
213
42bb97ff0bbb
Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
212
diff
changeset
|
387 | self.diff.start(filename, [v1, v2], self.bundle) |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
388 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
389 | def on_passwordCheckBox_toggled(self, isOn): |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
390 | """ |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
391 | Private slot to handle the password checkbox toggled. |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
392 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
393 | @param isOn flag indicating the status of the check box (boolean) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
394 | """ |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
395 | if isOn: |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
396 | self.input.setEchoMode(QLineEdit.Password) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
397 | else: |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
398 | self.input.setEchoMode(QLineEdit.Normal) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
399 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
400 | @pyqtSlot() |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
401 | def on_sendButton_clicked(self): |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
402 | """ |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
403 | Private slot to send the input to the hg process. |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
404 | """ |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
405 | input = self.input.text() |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
406 | input += os.linesep |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
407 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
408 | if self.passwordCheckBox.isChecked(): |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
409 | self.errors.insertPlainText(os.linesep) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
410 | self.errors.ensureCursorVisible() |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
411 | else: |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
412 | self.errors.insertPlainText(input) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
413 | self.errors.ensureCursorVisible() |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
414 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
415 | self.process.write(input) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
416 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
417 | self.passwordCheckBox.setChecked(False) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
418 | self.input.clear() |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
419 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
420 | def on_input_returnPressed(self): |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
421 | """ |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
422 | Private slot to handle the press of the return key in the input field. |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
423 | """ |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
424 | self.intercept = True |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
425 | self.on_sendButton_clicked() |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
426 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
427 | def keyPressEvent(self, evt): |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
428 | """ |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
429 | Protected slot to handle a key press event. |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
430 | |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
431 | @param evt the key press event (QKeyEvent) |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
432 | """ |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
433 | if self.intercept: |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
434 | self.intercept = False |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
435 | evt.accept() |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
436 | return |
1131
7781e396c903
Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1019
diff
changeset
|
437 | super().keyPressEvent(evt) |