Plugins/VcsPlugins/vcsMercurial/HgLogDialog.py

Fri, 30 Apr 2010 16:45:56 +0000

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Fri, 30 Apr 2010 16:45:56 +0000
changeset 215
e8978dca44af
parent 214
eb1cf9398a3f
child 464
a2b1d1770ef0
child 792
a13346916170
permissions
-rw-r--r--

Fixed issues with non-existing bundle caches.

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
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3 # Copyright (c) 2010 Detlev Offenbach <detlev@die-offenbachs.de>
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
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 from PyQt4.QtCore import pyqtSlot, QProcess, SIGNAL, QTimer, QUrl, QByteArray
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 from PyQt4.QtGui import QWidget, QDialogButtonBox, QApplication, QMessageBox, \
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
3f889378dede Added some code to inspect incoming patches as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 204
diff changeset
17
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 from .Ui_HgLogDialog import Ui_HgLogDialog
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 from .HgDiffDialog import HgDiffDialog
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 import Utilities
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 import Preferences
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 class HgLogDialog(QWidget, Ui_HgLogDialog):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 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
27
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 The dialog is nonmodal. Clicking a link in the upper text pane shows
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 a diff of the revisions.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 """
213
42bb97ff0bbb Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 212
diff changeset
31 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
32 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 Constructor
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 @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
36 @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
37 @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
38 @param parent parent widget (QWidget)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 QWidget.__init__(self, parent)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 self.setupUi(self)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 self.buttonBox.button(QDialogButtonBox.Close).setDefault(True)
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.process = QProcess()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 self.vcs = vcs
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 if mode in ("log", "incoming", "outgoing"):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 self.mode = mode
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 else:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 self.mode = "log"
213
42bb97ff0bbb Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 212
diff changeset
51 self.bundle = bundle
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 self.contents.setHtml(\
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 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
55
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 self.connect(self.process, SIGNAL('finished(int, QProcess::ExitStatus)'),
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 self.__procFinished)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 self.connect(self.process, SIGNAL('readyReadStandardOutput()'),
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 self.__readStdout)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 self.connect(self.process, SIGNAL('readyReadStandardError()'),
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 self.__readStderr)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 self.connect(self.contents, SIGNAL('anchorClicked(const QUrl&)'),
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 self.__sourceChanged)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 self.revisions = [] # stack of remembered revisions
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 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
68 self.projectMode = False
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69
210
b1a204f22291 Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
70 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
71 self.lastLogEntry = {}
209
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
72 self.fileCopies = {}
210
b1a204f22291 Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
73 self.endInitialText = False
b1a204f22291 Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
74 self.initialText = []
209
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
75
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 self.diff = None
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 def closeEvent(self, e):
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 Private slot implementing a close event handler.
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 @param e close event (QCloseEvent)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 if self.process is not None and \
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 self.process.state() != QProcess.NotRunning:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 self.process.terminate()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 QTimer.singleShot(2000, self.process.kill)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 self.process.waitForFinished(3000)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 e.accept()
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 def start(self, fn, noEntries = 0):
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 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
95
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 @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
97 @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
98 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 self.errorGroup.hide()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 QApplication.processEvents()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 self.intercept = False
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 self.filename = fn
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 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
105
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 # 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
107 self.repodir = self.dname
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
108 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
109 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
110 if self.repodir == os.sep:
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 return
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112
210
b1a204f22291 Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
113 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
114
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 self.process.kill()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 self.activateWindow()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 self.raise_()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 args = []
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 args.append(self.mode)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 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
123 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
124 if noEntries:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 args.append('--limit')
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 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
127 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
128 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
129 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
130 args.append('--copies')
203
0bd3912f3c5f Refined the Mercurial log browser and log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
131 args.append('--style')
0bd3912f3c5f Refined the Mercurial log browser and log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
132 args.append(os.path.join(os.path.dirname(__file__), "styles", "logDialog.style"))
207
3f889378dede Added some code to inspect incoming patches as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 204
diff changeset
133 if self.mode == "incoming":
214
eb1cf9398a3f Added code to preview a Mercurial bundle file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
134 if self.bundle:
eb1cf9398a3f Added code to preview a Mercurial bundle file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
135 args.append(self.bundle)
213
42bb97ff0bbb Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 212
diff changeset
136 else:
42bb97ff0bbb Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 212
diff changeset
137 project = e5App().getObject("Project")
42bb97ff0bbb Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 212
diff changeset
138 self.vcs.bundleFile = os.path.join(
42bb97ff0bbb Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 212
diff changeset
139 project.getProjectManagementDir(), "hg-bundle.hg")
42bb97ff0bbb Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 212
diff changeset
140 args.append('--bundle')
42bb97ff0bbb Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 212
diff changeset
141 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
142 if not self.projectMode:
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 args.append(self.filename)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144
209
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
145 self.process.setWorkingDirectory(self.repodir)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 self.process.start('hg', args)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 procStarted = self.process.waitForStarted()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 if not procStarted:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 self.inputGroup.setEnabled(False)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 QMessageBox.critical(None,
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 self.trUtf8('Process Generation Error'),
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 self.trUtf8(
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 'The process {0} could not be started. '
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 '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
156 ).format('hg'))
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157
209
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
158 def __getParents(self, rev):
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
159 """
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
160 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
161
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
162 @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
163 @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
164 """
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
165 errMsg = ""
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
166 parents = []
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 process = QProcess()
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
169 args = []
210
b1a204f22291 Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
170 args.append("parents")
214
eb1cf9398a3f Added code to preview a Mercurial bundle file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
171 if self.mode == "incoming":
213
42bb97ff0bbb Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 212
diff changeset
172 if self.bundle:
42bb97ff0bbb Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 212
diff changeset
173 args.append("--repository")
214
eb1cf9398a3f Added code to preview a Mercurial bundle file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
174 args.append(self.bundle)
215
e8978dca44af Fixed issues with non-existing bundle caches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 214
diff changeset
175 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
176 args.append("--repository")
42bb97ff0bbb Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 212
diff changeset
177 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
178 args.append("--template")
eb1cf9398a3f Added code to preview a Mercurial bundle file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
179 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
180 args.append("-r")
eb1cf9398a3f Added code to preview a Mercurial bundle file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
181 args.append(rev)
210
b1a204f22291 Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
182 if not self.projectMode:
b1a204f22291 Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
183 args.append(self.filename)
209
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
184
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
185 process.setWorkingDirectory(self.repodir)
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
186 process.start('hg', args)
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
187 procStarted = process.waitForStarted()
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
188 if procStarted:
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
189 finished = process.waitForFinished(30000)
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
190 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
191 output = \
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
192 str(process.readAllStandardOutput(),
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
193 Preferences.getSystem("IOEncoding"),
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
194 'replace')
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
195 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
196 else:
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
197 if not finished:
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
198 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
199 else:
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
200 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
201
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
202 if errMsg:
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
203 QMessageBox.critical(self,
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
204 self.trUtf8("Mercurial Error"),
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
205 errMsg)
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
206
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
207 return parents
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
208
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 def __procFinished(self, exitCode, exitStatus):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
211 Private slot connected to the finished signal.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
212
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
213 @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
214 @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
215 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
216 self.inputGroup.setEnabled(False)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217 self.inputGroup.hide()
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.contents.clear()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
220
209
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
221 if not self.logEntries:
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
222 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
223 .format(self.filename))
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
224 self.errorGroup.show()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
225 return
210
b1a204f22291 Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
226
212
19785b4c1bed Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 211
diff changeset
227 html = ""
19785b4c1bed Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 211
diff changeset
228
210
b1a204f22291 Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
229 if self.initialText:
b1a204f22291 Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
230 for line in self.initialText:
212
19785b4c1bed Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 211
diff changeset
231 html += Utilities.html_encode(line.strip())
19785b4c1bed Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 211
diff changeset
232 html += '<br />\n'
19785b4c1bed Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 211
diff changeset
233 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
234
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
235 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
236 fileCopies = {}
b1a204f22291 Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
237 if entry["file_copies"]:
b1a204f22291 Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
238 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
239 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
240 fileCopies[newName] = oldName
b1a204f22291 Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
241
b1a204f22291 Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
242 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
243 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
244 if entry["parents"]:
b1a204f22291 Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
245 parents = entry["parents"].split()
b1a204f22291 Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
246 else:
b1a204f22291 Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
247 parents = self.__getParents(rev)
b1a204f22291 Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
248 for parent in parents:
209
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
249 url = QUrl()
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
250 url.setScheme("file")
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
251 url.setPath(self.filename)
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
252 query = QByteArray()
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
253 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
254 url.setEncodedQuery(query)
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
255 dstr += ' [<a href="{0}" name="{1}" id="{1}">{2}</a>]'.format(
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
256 url.toString(),
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
257 str(query, encoding="ascii"),
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
258 self.trUtf8('diff to {0}').format(parent),
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
259 )
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
260 dstr += '<br />\n'
212
19785b4c1bed Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 211
diff changeset
261 html += dstr
210
b1a204f22291 Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
262
212
19785b4c1bed Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 211
diff changeset
263 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
264
212
19785b4c1bed Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 211
diff changeset
265 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
266
212
19785b4c1bed Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 211
diff changeset
267 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
268
212
19785b4c1bed Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 211
diff changeset
269 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
270
209
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
271 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
272 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
273
b1a204f22291 Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
274 for line in entry["description"]:
212
19785b4c1bed Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 211
diff changeset
275 html += Utilities.html_encode(line.strip())
19785b4c1bed Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 211
diff changeset
276 html += '<br />\n'
210
b1a204f22291 Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
277
b1a204f22291 Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
278 if entry["file_adds"]:
212
19785b4c1bed Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 211
diff changeset
279 html += '<br />\n'
209
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
280 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
281 if f in fileCopies:
212
19785b4c1bed Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 211
diff changeset
282 html += self.trUtf8('Added {0} (copied from {1})<br />\n')\
209
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
283 .format(Utilities.html_encode(f),
212
19785b4c1bed Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 211
diff changeset
284 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
285 else:
212
19785b4c1bed Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 211
diff changeset
286 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
287 .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
288
b1a204f22291 Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
289 if entry["files_mods"]:
212
19785b4c1bed Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 211
diff changeset
290 html += '<br />\n'
209
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
291 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
292 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
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["file_dels"]:
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["file_dels"].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('Deleted {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))
209
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
300
212
19785b4c1bed Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 211
diff changeset
301 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
302
212
19785b4c1bed Performance tuning of the Mercurial log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 211
diff changeset
303 self.contents.setHtml(html)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
304 tc = self.contents.textCursor()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
305 tc.movePosition(QTextCursor.Start)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
306 self.contents.setTextCursor(tc)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
307 self.contents.ensureCursorVisible()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
308
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
309 def __readStdout(self):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
310 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
311 Private slot to handle the readyReadStandardOutput signal.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
312
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
313 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
314 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
315 self.process.setReadChannel(QProcess.StandardOutput)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
316
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
317 while self.process.canReadLine():
209
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
318 s = str(self.process.readLine(),
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
319 Preferences.getSystem("IOEncoding"),
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
320 'replace')
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
321
210
b1a204f22291 Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
322 if s == "@@@\n":
209
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
323 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
324 self.lastLogEntry = {}
209
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
325 self.fileCopies = {}
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
326 else:
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
327 try:
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
328 key, value = s.split("|", 1)
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
329 except ValueError:
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
330 key = ""
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
331 value = s
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
332 if key == "change":
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
333 self.endInitialText = True
210
b1a204f22291 Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
334 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
335 "date", "file_copies", "file_adds", "files_mods",
b1a204f22291 Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
336 "file_dels"):
209
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
337 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
338 elif key == "description":
209
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
339 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
340 else:
b1a204f22291 Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
341 if self.endInitialText:
209
94e34c41e823 Corrected the diff functions of the log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
342 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
343 else:
b1a204f22291 Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 209
diff changeset
344 self.initialText.append(value)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
345
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
346 def __readStderr(self):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
347 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
348 Private slot to handle the readyReadStandardError signal.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
349
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
350 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
351 error pane.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
352 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
353 if self.process is not None:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
354 self.errorGroup.show()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
355 s = str(self.process.readAllStandardError(),
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
356 Preferences.getSystem("IOEncoding"),
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
357 'replace')
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
358 self.errors.insertPlainText(s)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
359 self.errors.ensureCursorVisible()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
360
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
361 def __sourceChanged(self, url):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
362 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
363 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
364
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
365 @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
366 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
367 filename = url.path()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
368 if Utilities.isWindowsPlatform():
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
369 if filename.startswith("/"):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
370 filename = filename[1:]
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
371 ver = bytes(url.encodedQuery()).decode()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
372 v1, v2 = ver.split('_')
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
373 if v1 == "" or v2 == "":
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
374 return
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
375 self.contents.scrollToAnchor(ver)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
376
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
377 if self.diff:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
378 del self.diff
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
379 self.diff = HgDiffDialog(self.vcs)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
380 self.diff.show()
213
42bb97ff0bbb Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 212
diff changeset
381 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
382
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
383 def on_passwordCheckBox_toggled(self, isOn):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
384 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
385 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
386
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
387 @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
388 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
389 if isOn:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
390 self.input.setEchoMode(QLineEdit.Password)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
391 else:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
392 self.input.setEchoMode(QLineEdit.Normal)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
393
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
394 @pyqtSlot()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
395 def on_sendButton_clicked(self):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
396 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
397 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
398 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
399 input = self.input.text()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
400 input += os.linesep
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
401
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
402 if self.passwordCheckBox.isChecked():
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
403 self.errors.insertPlainText(os.linesep)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
404 self.errors.ensureCursorVisible()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
405 else:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
406 self.errors.insertPlainText(input)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
407 self.errors.ensureCursorVisible()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
408
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
409 self.process.write(input)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
410
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
411 self.passwordCheckBox.setChecked(False)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
412 self.input.clear()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
413
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
414 def on_input_returnPressed(self):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
415 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
416 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
417 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
418 self.intercept = True
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
419 self.on_sendButton_clicked()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
420
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
421 def keyPressEvent(self, evt):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
422 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
423 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
424
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
425 @param evt the key press event (QKeyEvent)
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 if self.intercept:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
428 self.intercept = False
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
429 evt.accept()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
430 return
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
431 QWidget.keyPressEvent(self, evt)

eric ide

mercurial