Sat, 31 Aug 2019 12:18:44 +0200
HgStatusDialog: backed out the disabling of the status list for merges because it prevents to review the individual changes and to inspect the list for long lists of changed files.
3586
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
6645
ad476851d7e0
Updated copyright for 2019.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
3 | # Copyright (c) 2014 - 2019 Detlev Offenbach <detlev@die-offenbachs.de> |
3586
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing a dialog to show a list of files which had or still have |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | conflicts. |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | from __future__ import unicode_literals |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | import os |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3619
diff
changeset
|
15 | from PyQt5.QtCore import pyqtSlot, Qt, QPoint, QProcess, QTimer |
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3619
diff
changeset
|
16 | from PyQt5.QtWidgets import QAbstractButton, QDialogButtonBox, QHeaderView, \ |
5250
2f22b20ea9ad
Fixed a wrong import in the Mercurial conflicts dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
17 | QTreeWidgetItem, QLineEdit, QApplication, QWidget |
3586
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | from E5Gui import E5MessageBox |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | from E5Gui.E5Application import e5App |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | from .Ui_HgConflictsListDialog import Ui_HgConflictsListDialog |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | |
3619
4643a9ef7dd6
Avoid masking of global module mimetypes with the local one in Python 2.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3591
diff
changeset
|
24 | import Utilities.MimeTypes |
5848
56388f41b1e6
Fixed an issue sending input to the mercurial and subversion processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5588
diff
changeset
|
25 | from Globals import strToQByteArray |
3586
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | class HgConflictsListDialog(QWidget, Ui_HgConflictsListDialog): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | Class implementing a dialog to show a list of files which had or still |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | have conflicts. |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | StatusRole = Qt.UserRole + 1 |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | FilenameRole = Qt.UserRole + 2 |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | def __init__(self, vcs, parent=None): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | Constructor |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | @param vcs reference to the vcs object |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | @param parent parent widget (QWidget) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | super(HgConflictsListDialog, self).__init__(parent) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | self.setupUi(self) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | self.__position = QPoint() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | self.conflictsList.headerItem().setText( |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | self.conflictsList.columnCount(), "") |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | self.conflictsList.header().setSortIndicator(0, Qt.AscendingOrder) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | self.refreshButton = self.buttonBox.addButton( |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | self.tr("&Refresh"), QDialogButtonBox.ActionRole) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | self.refreshButton.setToolTip( |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | self.tr("Press to refresh the list of conflicts")) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | self.refreshButton.setEnabled(False) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | self.vcs = vcs |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | self.project = e5App().getObject("Project") |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | self.__hgClient = vcs.getClient() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | if self.__hgClient: |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | self.process = None |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | else: |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | self.process = QProcess() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | self.process.finished.connect(self.__procFinished) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | self.process.readyReadStandardOutput.connect(self.__readStdout) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | self.process.readyReadStandardError.connect(self.__readStderr) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | def closeEvent(self, e): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | """ |
3591
2f2a4a76dd22
Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3586
diff
changeset
|
75 | Protected slot implementing a close event handler. |
3586
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | @param e close event (QCloseEvent) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | if self.__hgClient: |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | if self.__hgClient.isExecuting(): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | self.__hgClient.cancel() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | else: |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | if self.process is not None and \ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | self.process.state() != QProcess.NotRunning: |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | self.process.terminate() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | QTimer.singleShot(2000, self.process.kill) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | self.process.waitForFinished(3000) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | self.__position = self.pos() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | e.accept() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | def show(self): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | Public slot to show the dialog. |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | if not self.__position.isNull(): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | self.move(self.__position) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | super(HgConflictsListDialog, self).show() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | def start(self, path): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
104 | Public slot to start the tags command. |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | @param path name of directory to list conflicts for (string) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | self.errorGroup.hide() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | QApplication.processEvents() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111 | self.intercept = False |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
112 | dname, fname = self.vcs.splitPath(path) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
114 | # find the root of the repo |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
115 | self.__repodir = dname |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
116 | while not os.path.isdir( |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | os.path.join(self.__repodir, self.vcs.adminDir)): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
118 | self.__repodir = os.path.dirname(self.__repodir) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
119 | if os.path.splitdrive(self.__repodir)[1] == os.sep: |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | return |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122 | self.activateWindow() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
123 | self.raise_() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | self.conflictsList.clear() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | self.__started = True |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | self.__getEntries() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | def __getEntries(self): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | Private method to get the conflict entries. |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | args = self.vcs.initCommand("resolve") |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | args.append('--list') |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
135 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | if self.__hgClient: |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
137 | self.inputGroup.setEnabled(False) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
138 | self.inputGroup.hide() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
139 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
140 | out, err = self.__hgClient.runcommand(args) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
141 | if err: |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142 | self.__showError(err) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
143 | if out: |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
144 | for line in out.splitlines(): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
145 | self.__processOutputLine(line) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
146 | if self.__hgClient.wasCanceled(): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
147 | break |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
148 | self.__finish() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
149 | else: |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
150 | self.process.kill() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
151 | self.process.setWorkingDirectory(self.__repodir) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
153 | self.process.start('hg', args) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154 | procStarted = self.process.waitForStarted(5000) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
155 | if not procStarted: |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
156 | self.inputGroup.setEnabled(False) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
157 | self.inputGroup.hide() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
158 | E5MessageBox.critical( |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
159 | self, |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
160 | self.tr('Process Generation Error'), |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
161 | self.tr( |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
162 | 'The process {0} could not be started. ' |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
163 | 'Ensure, that it is in the search path.' |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
164 | ).format('hg')) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
165 | else: |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
166 | self.inputGroup.setEnabled(True) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
167 | self.inputGroup.show() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
168 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
169 | def __finish(self): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
170 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
171 | Private slot called when the process finished or the user pressed |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
172 | the button. |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
173 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
174 | if self.process is not None and \ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
175 | self.process.state() != QProcess.NotRunning: |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
176 | self.process.terminate() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
177 | QTimer.singleShot(2000, self.process.kill) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
178 | self.process.waitForFinished(3000) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
179 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
180 | QApplication.restoreOverrideCursor() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
181 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
182 | self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
183 | self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(False) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
184 | self.buttonBox.button(QDialogButtonBox.Close).setDefault(True) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
185 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
186 | self.inputGroup.setEnabled(False) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
187 | self.inputGroup.hide() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
188 | self.refreshButton.setEnabled(True) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
189 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
190 | self.__resizeColumns() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
191 | self.__resort() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
192 | self.on_conflictsList_itemSelectionChanged() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
193 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
194 | @pyqtSlot(QAbstractButton) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
195 | def on_buttonBox_clicked(self, button): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
196 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
197 | Private slot called by a button of the button box clicked. |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
198 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
199 | @param button button that was clicked (QAbstractButton) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
200 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
201 | if button == self.buttonBox.button(QDialogButtonBox.Close): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
202 | self.close() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
203 | elif button == self.buttonBox.button(QDialogButtonBox.Cancel): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
204 | if self.__hgClient: |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
205 | self.__hgClient.cancel() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
206 | else: |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
207 | self.__finish() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
208 | elif button == self.refreshButton: |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
209 | self.on_refreshButton_clicked() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
210 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
211 | def __procFinished(self, exitCode, exitStatus): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
212 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
213 | Private slot connected to the finished signal. |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
214 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
215 | @param exitCode exit code of the process (integer) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
216 | @param exitStatus exit status of the process (QProcess.ExitStatus) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
217 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
218 | self.__finish() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
219 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
220 | def __resort(self): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
221 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
222 | Private method to resort the tree. |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
223 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
224 | self.conflictsList.sortItems( |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
225 | self.conflictsList.sortColumn(), |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
226 | self.conflictsList.header().sortIndicatorOrder()) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
227 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
228 | def __resizeColumns(self): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
229 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
230 | Private method to resize the list columns. |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
231 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
232 | self.conflictsList.header().resizeSections( |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
233 | QHeaderView.ResizeToContents) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
234 | self.conflictsList.header().setStretchLastSection(True) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
235 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
236 | def __generateItem(self, status, name): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
237 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
238 | Private method to generate a tag item in the tag list. |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
239 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
240 | @param status status of the file (string) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
241 | @param name name of the file (string) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
242 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
243 | itm = QTreeWidgetItem(self.conflictsList) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
244 | if status == "U": |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
245 | itm.setText(0, self.tr("Unresolved")) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
246 | elif status == "R": |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
247 | itm.setText(0, self.tr("Resolved")) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
248 | else: |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
249 | itm.setText(0, self.tr("Unknown Status")) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
250 | itm.setText(1, name) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
251 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
252 | itm.setData(0, self.StatusRole, status) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
253 | itm.setData(0, self.FilenameRole, self.project.getAbsolutePath(name)) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
254 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
255 | def __readStdout(self): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
256 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
257 | Private slot to handle the readyReadStdout signal. |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
258 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
259 | It reads the output of the process, formats it and inserts it into |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
260 | the contents pane. |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
261 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
262 | self.process.setReadChannel(QProcess.StandardOutput) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
263 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
264 | while self.process.canReadLine(): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
265 | s = str(self.process.readLine(), self.vcs.getEncoding(), |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
266 | 'replace').strip() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
267 | self.__processOutputLine(s) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
268 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
269 | def __processOutputLine(self, line): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
270 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
271 | Private method to process the lines of output. |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
272 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
273 | @param line output line to be processed (string) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
274 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
275 | status, filename = line.strip().split(None, 1) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
276 | self.__generateItem(status, filename) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
277 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
278 | @pyqtSlot() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
279 | def on_refreshButton_clicked(self): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
280 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
281 | Private slot to refresh the log. |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
282 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
283 | self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
284 | self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(True) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
285 | self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
286 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
287 | self.inputGroup.setEnabled(True) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
288 | self.inputGroup.show() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
289 | self.refreshButton.setEnabled(False) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
290 | self.start(self.__repodir) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
291 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
292 | def __readStderr(self): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
293 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
294 | Private slot to handle the readyReadStderr signal. |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
295 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
296 | It reads the error output of the process and inserts it into the |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
297 | error pane. |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
298 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
299 | if self.process is not None: |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
300 | s = str(self.process.readAllStandardError(), |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
301 | self.vcs.getEncoding(), 'replace') |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
302 | self.__showError(s) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
303 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
304 | def __showError(self, out): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
305 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
306 | Private slot to show some error. |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
307 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
308 | @param out error to be shown (string) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
309 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
310 | self.errorGroup.show() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
311 | self.errors.insertPlainText(out) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
312 | self.errors.ensureCursorVisible() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
313 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
314 | def on_passwordCheckBox_toggled(self, isOn): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
315 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
316 | Private slot to handle the password checkbox toggled. |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
317 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
318 | @param isOn flag indicating the status of the check box (boolean) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
319 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
320 | if isOn: |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
321 | self.input.setEchoMode(QLineEdit.Password) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
322 | else: |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
323 | self.input.setEchoMode(QLineEdit.Normal) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
324 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
325 | @pyqtSlot() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
326 | def on_sendButton_clicked(self): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
327 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
328 | Private slot to send the input to the subversion process. |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
329 | """ |
5588
6ba512d9f46a
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
330 | inputTxt = self.input.text() |
6ba512d9f46a
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
331 | inputTxt += os.linesep |
3586
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
332 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
333 | if self.passwordCheckBox.isChecked(): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
334 | self.errors.insertPlainText(os.linesep) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
335 | self.errors.ensureCursorVisible() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
336 | else: |
5588
6ba512d9f46a
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
337 | self.errors.insertPlainText(inputTxt) |
3586
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
338 | self.errors.ensureCursorVisible() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
339 | |
5848
56388f41b1e6
Fixed an issue sending input to the mercurial and subversion processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5588
diff
changeset
|
340 | self.process.write(strToQByteArray(inputTxt)) |
3586
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
341 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
342 | self.passwordCheckBox.setChecked(False) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
343 | self.input.clear() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
344 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
345 | def on_input_returnPressed(self): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
346 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
347 | Private slot to handle the press of the return key in the input field. |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
348 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
349 | self.intercept = True |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
350 | self.on_sendButton_clicked() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
351 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
352 | def keyPressEvent(self, evt): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
353 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
354 | Protected slot to handle a key press event. |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
355 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
356 | @param evt the key press event (QKeyEvent) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
357 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
358 | if self.intercept: |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
359 | self.intercept = False |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
360 | evt.accept() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
361 | return |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
362 | super(HgConflictsListDialog, self).keyPressEvent(evt) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
363 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
364 | @pyqtSlot(QTreeWidgetItem, int) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
365 | def on_conflictsList_itemDoubleClicked(self, item, column): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
366 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
367 | Private slot to open the double clicked entry. |
3591
2f2a4a76dd22
Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3586
diff
changeset
|
368 | |
2f2a4a76dd22
Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3586
diff
changeset
|
369 | @param item reference to the double clicked item (QTreeWidgetItem) |
2f2a4a76dd22
Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3586
diff
changeset
|
370 | @param column column that was double clicked (integer) |
3586
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
371 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
372 | self.on_editButton_clicked() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
373 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
374 | @pyqtSlot() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
375 | def on_conflictsList_itemSelectionChanged(self): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
376 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
377 | Private slot to handle a change of selected conflict entries. |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
378 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
379 | selectedCount = len(self.conflictsList.selectedItems()) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
380 | unresolved = resolved = 0 |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
381 | for itm in self.conflictsList.selectedItems(): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
382 | status = itm.data(0, self.StatusRole) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
383 | if status == "U": |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
384 | unresolved += 1 |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
385 | elif status == "R": |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
386 | resolved += 1 |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
387 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
388 | self.resolvedButton.setEnabled(unresolved > 0) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
389 | self.unresolvedButton.setEnabled(resolved > 0) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
390 | self.reMergeButton.setEnabled(unresolved > 0) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
391 | self.editButton.setEnabled( |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
392 | selectedCount == 1 and |
3619
4643a9ef7dd6
Avoid masking of global module mimetypes with the local one in Python 2.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3591
diff
changeset
|
393 | Utilities.MimeTypes.isTextFile( |
3586
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
394 | self.conflictsList.selectedItems()[0].data( |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
395 | 0, self.FilenameRole))) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
396 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
397 | @pyqtSlot() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
398 | def on_resolvedButton_clicked(self): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
399 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
400 | Private slot to mark the selected entries as resolved. |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
401 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
402 | names = [ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
403 | itm.data(0, self.FilenameRole) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
404 | for itm in self.conflictsList.selectedItems() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
405 | if itm.data(0, self.StatusRole) == "U" |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
406 | ] |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
407 | if names: |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
408 | self.vcs.hgResolved(names) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
409 | self.on_refreshButton_clicked() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
410 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
411 | @pyqtSlot() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
412 | def on_unresolvedButton_clicked(self): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
413 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
414 | Private slot to mark the selected entries as unresolved. |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
415 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
416 | names = [ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
417 | itm.data(0, self.FilenameRole) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
418 | for itm in self.conflictsList.selectedItems() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
419 | if itm.data(0, self.StatusRole) == "R" |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
420 | ] |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
421 | if names: |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
422 | self.vcs.hgResolved(names, unresolve=True) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
423 | self.on_refreshButton_clicked() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
424 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
425 | @pyqtSlot() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
426 | def on_reMergeButton_clicked(self): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
427 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
428 | Private slot to re-merge the selected entries. |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
429 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
430 | names = [ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
431 | itm.data(0, self.FilenameRole) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
432 | for itm in self.conflictsList.selectedItems() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
433 | if itm.data(0, self.StatusRole) == "U" |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
434 | ] |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
435 | if names: |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
436 | self.vcs.hgReMerge(names) |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
437 | |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
438 | @pyqtSlot() |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
439 | def on_editButton_clicked(self): |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
440 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
441 | Private slot to open the selected file in an editor. |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
442 | """ |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
443 | itm = self.conflictsList.selectedItems()[0] |
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
444 | filename = itm.data(0, self.FilenameRole) |
3619
4643a9ef7dd6
Avoid masking of global module mimetypes with the local one in Python 2.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3591
diff
changeset
|
445 | if Utilities.MimeTypes.isTextFile(filename): |
3586
6e3a6c5b58bf
Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
446 | e5App().getObject("ViewManager").getEditor(filename) |