eric6/Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py

Mon, 02 Sep 2019 18:50:38 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 02 Sep 2019 18:50:38 +0200
branch
without_py2_and_pyqt4
changeset 7201
6b42677d7043
parent 7200
ebab8ba287e6
child 7229
53054eb5b15a
permissions
-rw-r--r--

Modified sources to be in line with the minimum Qt/PyQt requirement (v 5.9.0).

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
6645
ad476851d7e0 Updated copyright for 2019.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6247
diff changeset
3 # Copyright (c) 2010 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a dialog to browse the log history.
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
3145
a9de05d4a22f # __IGNORE_WARNING__ added/ removed.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3060
diff changeset
10 from __future__ import unicode_literals
2525
8b507a9a2d40 Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2444
diff changeset
11
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 import os
3317
d7639a86e90f Added support for Mercurial outgoing with largefiles by looking for a .hglf path prefix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3315
diff changeset
13 import re
5445
b24720037f1f Added clickable links to the Mercurial log browser details pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5444
diff changeset
14 import collections
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15
5736
000ea446ff4b Prepared the code for Qt > 5.9.99.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5670
diff changeset
16 from PyQt5.QtCore import pyqtSlot, Qt, QDate, QProcess, QTimer, QRegExp, \
000ea446ff4b Prepared the code for Qt > 5.9.99.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5670
diff changeset
17 QSize, QPoint, QFileInfo
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
18 from PyQt5.QtGui import QCursor, QColor, QPixmap, QPainter, QPen, QBrush, \
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
19 QIcon, QTextCursor
3656
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
20 from PyQt5.QtWidgets import QWidget, QDialogButtonBox, QHeaderView, \
7201
6b42677d7043 Modified sources to be in line with the minimum Qt/PyQt requirement (v 5.9.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7200
diff changeset
21 QTreeWidgetItem, QApplication, QLineEdit, QMenu, QInputDialog
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
207
3f889378dede Added some code to inspect incoming patches as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 204
diff changeset
23 from E5Gui.E5Application import e5App
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
24 from E5Gui import E5MessageBox, E5FileDialog
207
3f889378dede Added some code to inspect incoming patches as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 204
diff changeset
25
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 from .Ui_HgLogBrowserDialog import Ui_HgLogBrowserDialog
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
28 from .HgDiffHighlighter import HgDiffHighlighter
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
29 from .HgDiffGenerator import HgDiffGenerator
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
30
3185
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
31 import UI.PixmapCache
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
32 import Preferences
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
33 import Utilities
7201
6b42677d7043 Modified sources to be in line with the minimum Qt/PyQt requirement (v 5.9.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7200
diff changeset
34 from Globals import strToQByteArray
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
36 COLORNAMES = ["blue", "darkgreen", "red", "green", "darkblue", "purple",
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
37 "cyan", "olive", "magenta", "darkred", "darkmagenta",
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
38 "darkcyan", "gray", "yellow"]
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
39 COLORS = [str(QColor(x).name()) for x in COLORNAMES]
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
40
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 932
diff changeset
41
3279
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
42 class HgLogBrowserDialog(QWidget, Ui_HgLogBrowserDialog):
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 Class implementing a dialog to browse the log history.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 """
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 932
diff changeset
46 IconColumn = 0
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 932
diff changeset
47 BranchColumn = 1
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
48 RevisionColumn = 2
1605
899cb1241de5 Added support for Phases as of Mercurial 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1532
diff changeset
49 PhaseColumn = 3
899cb1241de5 Added support for Phases as of Mercurial 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1532
diff changeset
50 AuthorColumn = 4
899cb1241de5 Added support for Phases as of Mercurial 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1532
diff changeset
51 DateColumn = 5
899cb1241de5 Added support for Phases as of Mercurial 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1532
diff changeset
52 MessageColumn = 6
899cb1241de5 Added support for Phases as of Mercurial 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1532
diff changeset
53 TagsColumn = 7
5324
337c27027c66 Fixed the handling of the switch action of the Mercurial log browser dialog context menu in the presence of a bookmark.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
54 BookmarksColumn = 8
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
55
3317
d7639a86e90f Added support for Mercurial outgoing with largefiles by looking for a .hglf path prefix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3315
diff changeset
56 LargefilesCacheL = ".hglf/"
d7639a86e90f Added support for Mercurial outgoing with largefiles by looking for a .hglf path prefix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3315
diff changeset
57 LargefilesCacheW = ".hglf\\"
d7639a86e90f Added support for Mercurial outgoing with largefiles by looking for a .hglf path prefix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3315
diff changeset
58 PathSeparatorRe = re.compile(r"/|\\")
d7639a86e90f Added support for Mercurial outgoing with largefiles by looking for a .hglf path prefix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3315
diff changeset
59
3554
9ca56a89aec5 A liitle enhancement and a fix to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3546
diff changeset
60 ClosedIndicator = " \u2612"
9ca56a89aec5 A liitle enhancement and a fix to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3546
diff changeset
61
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
62 def __init__(self, vcs, mode="", parent=None):
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 Constructor
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 @param vcs reference to the vcs object
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
67 @type Hg
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
68 @param mode mode of the dialog
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
69 @type str (one of log, full_log, incoming, outgoing)
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
70 @param parent parent widget
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
71 @type QWidget
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 """
2525
8b507a9a2d40 Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2444
diff changeset
73 super(HgLogBrowserDialog, self).__init__(parent)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 self.setupUi(self)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75
5506
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
76 windowFlags = self.windowFlags()
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
77 windowFlags |= Qt.WindowContextHelpButtonHint
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
78 self.setWindowFlags(windowFlags)
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
79
5486
a74fafdb67e0 Refined the layout of the Mercurial log browser dialog by introducing a splitter between the log and details part.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5477
diff changeset
80 self.mainSplitter.setSizes([300, 400])
a74fafdb67e0 Refined the layout of the Mercurial log browser dialog by introducing a splitter between the log and details part.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5477
diff changeset
81 self.mainSplitter.setStretchFactor(0, 1)
a74fafdb67e0 Refined the layout of the Mercurial log browser dialog by introducing a splitter between the log and details part.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5477
diff changeset
82 self.mainSplitter.setStretchFactor(1, 2)
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
83 self.diffSplitter.setStretchFactor(0, 1)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
84 self.diffSplitter.setStretchFactor(1, 2)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
85
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
86 if not mode:
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
87 if vcs.getPlugin().getPreferences("LogBrowserShowFullLog"):
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
88 mode = "full_log"
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
89 else:
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
90 mode = "log"
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
91
782
2c567a5ceade Added different window titles to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 781
diff changeset
92 if mode == "log":
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
93 self.setWindowTitle(self.tr("Mercurial Log"))
782
2c567a5ceade Added different window titles to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 781
diff changeset
94 elif mode == "incoming":
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
95 self.setWindowTitle(self.tr("Mercurial Log (Incoming)"))
782
2c567a5ceade Added different window titles to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 781
diff changeset
96 elif mode == "outgoing":
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
97 self.setWindowTitle(self.tr("Mercurial Log (Outgoing)"))
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
98 elif mode == "full_log":
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
99 self.setWindowTitle(self.tr("Mercurial Full Log"))
782
2c567a5ceade Added different window titles to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 781
diff changeset
100
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 self.filesTree.headerItem().setText(self.filesTree.columnCount(), "")
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 self.filesTree.header().setSortIndicator(0, Qt.AscendingOrder)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106
5449
7679d1d3671a Added up and down buttons to move the current entry to the Mercurial and Subversion log browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5448
diff changeset
107 self.upButton.setIcon(UI.PixmapCache.getIcon("1uparrow.png"))
7679d1d3671a Added up and down buttons to move the current entry to the Mercurial and Subversion log browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5448
diff changeset
108 self.downButton.setIcon(UI.PixmapCache.getIcon("1downarrow.png"))
7679d1d3671a Added up and down buttons to move the current entry to the Mercurial and Subversion log browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5448
diff changeset
109
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2962
diff changeset
110 self.refreshButton = self.buttonBox.addButton(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
111 self.tr("&Refresh"), QDialogButtonBox.ActionRole)
1086
b48ce064b224 Enhanced the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
112 self.refreshButton.setToolTip(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
113 self.tr("Press to refresh the list of changesets"))
1086
b48ce064b224 Enhanced the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
114 self.refreshButton.setEnabled(False)
b48ce064b224 Enhanced the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
115
4059
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
116 self.findPrevButton.setIcon(UI.PixmapCache.getIcon("1leftarrow.png"))
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
117 self.findNextButton.setIcon(UI.PixmapCache.getIcon("1rightarrow.png"))
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
118 self.__findBackwards = False
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
119
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
120 self.modeComboBox.addItem(self.tr("Find"), "find")
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
121 self.modeComboBox.addItem(self.tr("Filter"), "filter")
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
122
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
123 self.fieldCombo.addItem(self.tr("Revision"), "revision")
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
124 self.fieldCombo.addItem(self.tr("Author"), "author")
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
125 self.fieldCombo.addItem(self.tr("Message"), "message")
4060
6dc9821fc9c8 Extended the Mercurial log browser search and filter functions to the list of changed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4059
diff changeset
126 self.fieldCombo.addItem(self.tr("File"), "file")
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
127 self.fieldCombo.addItem(self.tr("Phase"), "phase")
4059
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
128
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
129 font = Preferences.getEditorOtherFonts("MonospacedFont")
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
130 self.diffEdit.setFontFamily(font.family())
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
131 self.diffEdit.setFontPointSize(font.pointSize())
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
132
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
133 self.diffHighlighter = HgDiffHighlighter(self.diffEdit.document())
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
134 self.__diffGenerator = HgDiffGenerator(vcs, self)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
135 self.__diffGenerator.finished.connect(self.__generatorFinished)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
136
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 self.vcs = vcs
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
138 if mode in ("log", "incoming", "outgoing", "full_log"):
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
139 if mode == "full_log":
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
140 self.commandMode = "incoming"
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
141 else:
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
142 self.commandMode = mode
1264
da42fd833a66 Fixed a little bug in the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1263
diff changeset
143 self.initialCommandMode = mode
181
4af57f97c1bc Added code to choose the way incoming and outgoing logs are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
144 else:
215
e8978dca44af Fixed issues with non-existing bundle caches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
145 self.commandMode = "log"
3287
c3d784c057b3 Changed the Subversion Log Browser dialogs to maintain its position after being closed and fixed a few issues in the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3283
diff changeset
146 self.initialCommandMode = "log"
3518
1d681235c1b4 Fixed the Mercurial command server client handling large data chunks on slow machines.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3516
diff changeset
147 self.__hgClient = vcs.getClient()
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3554
diff changeset
149 self.__detailsTemplate = self.tr(
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3554
diff changeset
150 "<table>"
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3554
diff changeset
151 "<tr><td><b>Revision</b></td><td>{0}</td></tr>"
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3554
diff changeset
152 "<tr><td><b>Date</b></td><td>{1}</td></tr>"
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3554
diff changeset
153 "<tr><td><b>Author</b></td><td>{2}</td></tr>"
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3554
diff changeset
154 "<tr><td><b>Branch</b></td><td>{3}</td></tr>"
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
155 "{4}"
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
156 "<tr><td><b>Message</b></td><td>{5}</td></tr>"
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3554
diff changeset
157 "</table>"
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3554
diff changeset
158 )
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
159 self.__parentsTemplate = self.tr(
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
160 "<tr><td><b>Parents</b></td><td>{0}</td></tr>"
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
161 )
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
162 self.__childrenTemplate = self.tr(
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
163 "<tr><td><b>Children</b></td><td>{0}</td></tr>"
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
164 )
4059
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
165 self.__tagsTemplate = self.tr(
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
166 "<tr><td><b>Tags</b></td><td>{0}</td></tr>"
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
167 )
5459
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
168 self.__latestTagTemplate = self.tr(
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
169 "<tr><td><b>Latest Tag</b></td><td>{0}</td></tr>"
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
170 )
4059
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
171 self.__bookmarksTemplate = self.tr(
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
172 "<tr><td><b>Bookmarks</b></td><td>{0}</td></tr>"
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
173 )
3536
c06338ca892b Enhanced the Mercurial log browser dialog to show a summary of the data of the selected changeset in a text edit pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3534
diff changeset
174
3287
c3d784c057b3 Changed the Subversion Log Browser dialogs to maintain its position after being closed and fixed a few issues in the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3283
diff changeset
175 self.__bundle = ""
c3d784c057b3 Changed the Subversion Log Browser dialogs to maintain its position after being closed and fixed a few issues in the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3283
diff changeset
176 self.__filename = ""
c3d784c057b3 Changed the Subversion Log Browser dialogs to maintain its position after being closed and fixed a few issues in the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3283
diff changeset
177 self.__isFile = False
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
178 self.__selectedRevisions = []
4250
d3bd7c3dcb80 Fixed issues in the Subversion and Mercurial log browser windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4080
diff changeset
179 self.intercept = False
3287
c3d784c057b3 Changed the Subversion Log Browser dialogs to maintain its position after being closed and fixed a few issues in the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3283
diff changeset
180
1086
b48ce064b224 Enhanced the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
181 self.__initData()
b48ce064b224 Enhanced the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
182
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
183 self.__allBranchesFilter = self.tr("All")
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185 self.fromDate.setDisplayFormat("yyyy-MM-dd")
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
186 self.toDate.setDisplayFormat("yyyy-MM-dd")
3287
c3d784c057b3 Changed the Subversion Log Browser dialogs to maintain its position after being closed and fixed a few issues in the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3283
diff changeset
187 self.__resetUI()
779
04c3a6026543 Fixed an issue where long incoming patchsets were not shown completely.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 537
diff changeset
188
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
189 # roles used in the log tree
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
190 self.__messageRole = Qt.UserRole
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
191 self.__changesRole = Qt.UserRole + 1
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 932
diff changeset
192 self.__edgesRole = Qt.UserRole + 2
208
26ed553ad4fb Corrected the diff functions of the log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
193 self.__parentsRole = Qt.UserRole + 3
5459
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
194 self.__latestTagRole = Qt.UserRole + 4
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
195 self.__incomingRole = Qt.UserRole + 5
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
196
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
197 # roles used in the file tree
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
198 self.__diffFileLineRole = Qt.UserRole
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
199
1241
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
200 if self.__hgClient:
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
201 self.process = None
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
202 else:
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
203 self.process = QProcess()
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
204 self.process.finished.connect(self.__procFinished)
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
205 self.process.readyReadStandardOutput.connect(self.__readStdout)
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
206 self.process.readyReadStandardError.connect(self.__readStderr)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
207
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208 self.flags = {
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
209 'A': self.tr('Added'),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
210 'D': self.tr('Deleted'),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
211 'M': self.tr('Modified'),
178
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
4409
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
214 self.phases = {
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
215 'draft': self.tr("Draft"),
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
216 'public': self.tr("Public"),
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
217 'secret': self.tr("Secret"),
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
218 }
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
219
1086
b48ce064b224 Enhanced the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
220 self.__dotRadius = 8
b48ce064b224 Enhanced the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
221 self.__rowHeight = 20
b48ce064b224 Enhanced the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
222
b48ce064b224 Enhanced the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
223 self.logTree.setIconSize(
b48ce064b224 Enhanced the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
224 QSize(100 * self.__rowHeight, self.__rowHeight))
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3554
diff changeset
225 self.BookmarksColumn = self.logTree.columnCount()
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3554
diff changeset
226 self.logTree.headerItem().setText(
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3554
diff changeset
227 self.BookmarksColumn, self.tr("Bookmarks"))
3185
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
228
5448
1a86766ed19a Change the Mercurial log browser such, that the current log entry is highlighted with a bold font.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5445
diff changeset
229 self.__logTreeNormalFont = self.logTree.font()
1a86766ed19a Change the Mercurial log browser such, that the current log entry is highlighted with a bold font.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5445
diff changeset
230 self.__logTreeNormalFont.setBold(False)
1a86766ed19a Change the Mercurial log browser such, that the current log entry is highlighted with a bold font.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5445
diff changeset
231 self.__logTreeBoldFont = self.logTree.font()
1a86766ed19a Change the Mercurial log browser such, that the current log entry is highlighted with a bold font.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5445
diff changeset
232 self.__logTreeBoldFont.setBold(True)
1a86766ed19a Change the Mercurial log browser such, that the current log entry is highlighted with a bold font.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5445
diff changeset
233
5445
b24720037f1f Added clickable links to the Mercurial log browser details pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5444
diff changeset
234 self.detailsEdit.anchorClicked.connect(self.__revisionClicked)
b24720037f1f Added clickable links to the Mercurial log browser details pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5444
diff changeset
235
4409
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
236 self.__initActionsMenu()
5450
a5d5e757efcf Fixed a bug in the log browser dialogs causing an endless loop.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5449
diff changeset
237
a5d5e757efcf Fixed a bug in the log browser dialogs causing an endless loop.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5449
diff changeset
238 self.__finishCallbacks = []
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
239 if self.initialCommandMode == "full_log":
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
240 self.__addFinishCallback(self.on_nextButton_clicked)
5450
a5d5e757efcf Fixed a bug in the log browser dialogs causing an endless loop.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5449
diff changeset
241
a5d5e757efcf Fixed a bug in the log browser dialogs causing an endless loop.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5449
diff changeset
242 def __addFinishCallback(self, callback):
a5d5e757efcf Fixed a bug in the log browser dialogs causing an endless loop.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5449
diff changeset
243 """
a5d5e757efcf Fixed a bug in the log browser dialogs causing an endless loop.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5449
diff changeset
244 Private method to add a method to be called once the process finished.
a5d5e757efcf Fixed a bug in the log browser dialogs causing an endless loop.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5449
diff changeset
245
a5d5e757efcf Fixed a bug in the log browser dialogs causing an endless loop.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5449
diff changeset
246 The callback methods are invoke in a FIFO style and are consumed. If
a5d5e757efcf Fixed a bug in the log browser dialogs causing an endless loop.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5449
diff changeset
247 a callback method needs to be called again, it must be added again.
a5d5e757efcf Fixed a bug in the log browser dialogs causing an endless loop.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5449
diff changeset
248
a5d5e757efcf Fixed a bug in the log browser dialogs causing an endless loop.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5449
diff changeset
249 @param callback callback method
a5d5e757efcf Fixed a bug in the log browser dialogs causing an endless loop.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5449
diff changeset
250 @type function
a5d5e757efcf Fixed a bug in the log browser dialogs causing an endless loop.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5449
diff changeset
251 """
a5d5e757efcf Fixed a bug in the log browser dialogs causing an endless loop.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5449
diff changeset
252 if callback not in self.__finishCallbacks:
a5d5e757efcf Fixed a bug in the log browser dialogs causing an endless loop.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5449
diff changeset
253 self.__finishCallbacks.append(callback)
4409
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
254
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
255 def __initActionsMenu(self):
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
256 """
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
257 Private method to initialize the actions menu.
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
258 """
3185
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
259 self.__actionsMenu = QMenu()
5506
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
260 self.__actionsMenu.setTearOffEnabled(True)
7201
6b42677d7043 Modified sources to be in line with the minimum Qt/PyQt requirement (v 5.9.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7200
diff changeset
261 self.__actionsMenu.setToolTipsVisible(True)
5496
d157a2319073 Added a 'Merge' action to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5494
diff changeset
262
5104
0b9420dc1093 Removed the support for the obsolete transplant Mercuril extension and made v3.0 the minimum Mercurial version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
263 self.__graftAct = self.__actionsMenu.addAction(
5324
337c27027c66 Fixed the handling of the switch action of the Mercurial log browser dialog context menu in the presence of a bookmark.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
264 UI.PixmapCache.getIcon("vcsGraft.png"),
5104
0b9420dc1093 Removed the support for the obsolete transplant Mercuril extension and made v3.0 the minimum Mercurial version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
265 self.tr("Copy Changesets"), self.__graftActTriggered)
0b9420dc1093 Removed the support for the obsolete transplant Mercuril extension and made v3.0 the minimum Mercurial version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
266 self.__graftAct.setToolTip(self.tr(
0b9420dc1093 Removed the support for the obsolete transplant Mercuril extension and made v3.0 the minimum Mercurial version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
267 "Copy the selected changesets to the current branch"))
3279
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
268
5496
d157a2319073 Added a 'Merge' action to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5494
diff changeset
269 self.__mergeAct = self.__actionsMenu.addAction(
d157a2319073 Added a 'Merge' action to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5494
diff changeset
270 UI.PixmapCache.getIcon("vcsMerge.png"),
d157a2319073 Added a 'Merge' action to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5494
diff changeset
271 self.tr("Merge with Changeset"), self.__mergeActTriggered)
d157a2319073 Added a 'Merge' action to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5494
diff changeset
272 self.__mergeAct.setToolTip(self.tr(
d157a2319073 Added a 'Merge' action to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5494
diff changeset
273 "Merge the working directory with the selected changeset"))
d157a2319073 Added a 'Merge' action to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5494
diff changeset
274
5104
0b9420dc1093 Removed the support for the obsolete transplant Mercuril extension and made v3.0 the minimum Mercurial version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
275 self.__phaseAct = self.__actionsMenu.addAction(
0b9420dc1093 Removed the support for the obsolete transplant Mercuril extension and made v3.0 the minimum Mercurial version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
276 self.tr("Change Phase"), self.__phaseActTriggered)
0b9420dc1093 Removed the support for the obsolete transplant Mercuril extension and made v3.0 the minimum Mercurial version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
277 self.__phaseAct.setToolTip(self.tr(
0b9420dc1093 Removed the support for the obsolete transplant Mercuril extension and made v3.0 the minimum Mercurial version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
278 "Change the phase of the selected revisions"))
0b9420dc1093 Removed the support for the obsolete transplant Mercuril extension and made v3.0 the minimum Mercurial version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
279 self.__phaseAct.setWhatsThis(self.tr(
0b9420dc1093 Removed the support for the obsolete transplant Mercuril extension and made v3.0 the minimum Mercurial version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
280 """<b>Change Phase</b>\n<p>This changes the phase of the"""
0b9420dc1093 Removed the support for the obsolete transplant Mercuril extension and made v3.0 the minimum Mercurial version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
281 """ selected revisions. The selected revisions have to have"""
0b9420dc1093 Removed the support for the obsolete transplant Mercuril extension and made v3.0 the minimum Mercurial version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
282 """ the same current phase.</p>"""))
3279
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
283
3185
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
284 self.__tagAct = self.__actionsMenu.addAction(
5324
337c27027c66 Fixed the handling of the switch action of the Mercurial log browser dialog context menu in the presence of a bookmark.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
285 UI.PixmapCache.getIcon("vcsTag.png"), self.tr("Tag"),
337c27027c66 Fixed the handling of the switch action of the Mercurial log browser dialog context menu in the presence of a bookmark.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
286 self.__tagActTriggered)
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
287 self.__tagAct.setToolTip(self.tr("Tag the selected revision"))
3279
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
288
7010
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
289 self.__closeHeadsAct = self.__actionsMenu.addAction(
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
290 UI.PixmapCache.getIcon("closehead"), self.tr("Close Heads"),
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
291 self.__closeHeadsActTriggered)
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
292 self.__closeHeadsAct.setToolTip(self.tr("Close the selected heads"))
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
293
3279
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
294 self.__switchAct = self.__actionsMenu.addAction(
5324
337c27027c66 Fixed the handling of the switch action of the Mercurial log browser dialog context menu in the presence of a bookmark.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
295 UI.PixmapCache.getIcon("vcsSwitch.png"), self.tr("Switch"),
337c27027c66 Fixed the handling of the switch action of the Mercurial log browser dialog context menu in the presence of a bookmark.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
296 self.__switchActTriggered)
3279
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
297 self.__switchAct.setToolTip(self.tr(
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
298 "Switch the working directory to the selected revision"))
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
299
4409
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
300 self.__actionsMenu.addSeparator()
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
301
5322
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
302 self.__bookmarkAct = self.__actionsMenu.addAction(
5324
337c27027c66 Fixed the handling of the switch action of the Mercurial log browser dialog context menu in the presence of a bookmark.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
303 UI.PixmapCache.getIcon("addBookmark.png"),
5322
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
304 self.tr("Define Bookmark..."), self.__bookmarkActTriggered)
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
305 self.__bookmarkAct.setToolTip(
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
306 self.tr("Bookmark the selected revision"))
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
307 self.__bookmarkMoveAct = self.__actionsMenu.addAction(
5324
337c27027c66 Fixed the handling of the switch action of the Mercurial log browser dialog context menu in the presence of a bookmark.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
308 UI.PixmapCache.getIcon("moveBookmark.png"),
5322
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
309 self.tr("Move Bookmark..."), self.__bookmarkMoveActTriggered)
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
310 self.__bookmarkMoveAct.setToolTip(
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
311 self.tr("Move bookmark to the selected revision"))
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
312
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
313 self.__actionsMenu.addSeparator()
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
314
4409
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
315 self.__pullAct = self.__actionsMenu.addAction(
5324
337c27027c66 Fixed the handling of the switch action of the Mercurial log browser dialog context menu in the presence of a bookmark.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
316 UI.PixmapCache.getIcon("vcsUpdate.png"), self.tr("Pull Changes"),
337c27027c66 Fixed the handling of the switch action of the Mercurial log browser dialog context menu in the presence of a bookmark.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
317 self.__pullActTriggered)
4409
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
318 self.__pullAct.setToolTip(self.tr(
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
319 "Pull changes from a remote repository"))
5104
0b9420dc1093 Removed the support for the obsolete transplant Mercuril extension and made v3.0 the minimum Mercurial version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
320 self.__lfPullAct = self.__actionsMenu.addAction(
0b9420dc1093 Removed the support for the obsolete transplant Mercuril extension and made v3.0 the minimum Mercurial version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
321 self.tr("Pull Large Files"), self.__lfPullActTriggered)
0b9420dc1093 Removed the support for the obsolete transplant Mercuril extension and made v3.0 the minimum Mercurial version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
322 self.__lfPullAct.setToolTip(self.tr(
0b9420dc1093 Removed the support for the obsolete transplant Mercuril extension and made v3.0 the minimum Mercurial version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
323 "Pull large files for selected revisions"))
5270
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
324 self.__fetchAct = self.__actionsMenu.addAction(
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
325 self.tr("Fetch Changes"), self.__fetchActTriggered)
5276
c8055cb37262 Improved the handling of Mercurial log browser actions, that potentially modify the project file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5270
diff changeset
326 self.__fetchAct.setToolTip(self.tr(
c8055cb37262 Improved the handling of Mercurial log browser actions, that potentially modify the project file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5270
diff changeset
327 "Fetch changes from a remote repository"))
3315
bd1a25ead18d Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3302
diff changeset
328
4409
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
329 self.__actionsMenu.addSeparator()
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
330
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
331 self.__pushAct = self.__actionsMenu.addAction(
5324
337c27027c66 Fixed the handling of the switch action of the Mercurial log browser dialog context menu in the presence of a bookmark.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
332 UI.PixmapCache.getIcon("vcsCommit.png"),
4409
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
333 self.tr("Push Selected Changes"), self.__pushActTriggered)
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
334 self.__pushAct.setToolTip(self.tr(
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
335 "Push changes of the selected changeset and its ancestors"
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
336 " to a remote repository"))
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
337 self.__pushAllAct = self.__actionsMenu.addAction(
5324
337c27027c66 Fixed the handling of the switch action of the Mercurial log browser dialog context menu in the presence of a bookmark.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
338 UI.PixmapCache.getIcon("vcsCommit.png"),
4409
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
339 self.tr("Push All Changes"), self.__pushAllActTriggered)
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
340 self.__pushAllAct.setToolTip(self.tr(
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
341 "Push all changes to a remote repository"))
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
342
5270
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
343 self.__actionsMenu.addSeparator()
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
344
5501
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
345 self.__bundleAct = self.__actionsMenu.addAction(
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
346 UI.PixmapCache.getIcon("vcsCreateChangegroup.png"),
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
347 self.tr("Create Changegroup"), self.__bundleActTriggered)
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
348 self.__bundleAct.setToolTip(self.tr(
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
349 "Create a changegroup file containing the selected changesets"))
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
350 self.__bundleAct.setWhatsThis(self.tr(
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
351 """<b>Create Changegroup</b>\n<p>This creates a changegroup"""
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
352 """ file containing the selected revisions. If no revisions"""
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
353 """ are selected, all changesets will be bundled. If one"""
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
354 """ revision is selected, it will be interpreted as the base"""
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
355 """ revision. Otherwise the lowest revision will be used as"""
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
356 """ the base revision and all other revision will be bundled."""
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
357 """ If the dialog is showing outgoing changesets, all"""
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
358 """ selected changesets will be bundled.</p>"""))
5514
1aa13333eb9f Added a an entry to apply the currently previewed changegroup file to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5513
diff changeset
359 self.__unbundleAct = self.__actionsMenu.addAction(
1aa13333eb9f Added a an entry to apply the currently previewed changegroup file to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5513
diff changeset
360 UI.PixmapCache.getIcon("vcsApplyChangegroup.png"),
1aa13333eb9f Added a an entry to apply the currently previewed changegroup file to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5513
diff changeset
361 self.tr("Apply Changegroup"), self.__unbundleActTriggered)
1aa13333eb9f Added a an entry to apply the currently previewed changegroup file to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5513
diff changeset
362 self.__unbundleAct.setToolTip(self.tr(
1aa13333eb9f Added a an entry to apply the currently previewed changegroup file to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5513
diff changeset
363 "Apply the currently viewed changegroup file"))
5501
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
364
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
365 self.__actionsMenu.addSeparator()
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
366
5506
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
367 self.__gpgSignAct = self.__actionsMenu.addAction(
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
368 UI.PixmapCache.getIcon("changesetSign.png"),
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
369 self.tr("Sign Revisions"), self.__gpgSignActTriggered)
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
370 self.__gpgSignAct.setToolTip(self.tr(
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
371 "Add a signature for the selected revisions"))
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
372 self.__gpgVerifyAct = self.__actionsMenu.addAction(
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
373 UI.PixmapCache.getIcon("changesetSignVerify.png"),
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
374 self.tr("Verify Signatures"), self.__gpgVerifyActTriggered)
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
375 self.__gpgVerifyAct.setToolTip(self.tr(
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
376 "Verify all signatures there may be for the selected revision"))
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
377
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
378 self.__actionsMenu.addSeparator()
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
379
5270
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
380 self.__stripAct = self.__actionsMenu.addAction(
5324
337c27027c66 Fixed the handling of the switch action of the Mercurial log browser dialog context menu in the presence of a bookmark.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
381 UI.PixmapCache.getIcon("fileDelete.png"),
5270
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
382 self.tr("Strip Changesets"), self.__stripActTriggered)
5276
c8055cb37262 Improved the handling of Mercurial log browser actions, that potentially modify the project file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5270
diff changeset
383 self.__stripAct.setToolTip(self.tr(
c8055cb37262 Improved the handling of Mercurial log browser actions, that potentially modify the project file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5270
diff changeset
384 "Strip changesets from a repository"))
5270
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
385
5503
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
386 self.__actionsMenu.addSeparator()
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
387
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
388 self.__selectAllAct = self.__actionsMenu.addAction(
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
389 self.tr("Select All Entries"), self.__selectAllActTriggered)
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
390 self.__unselectAllAct = self.__actionsMenu.addAction(
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
391 self.tr("Deselect All Entries"),
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
392 lambda: self.__selectAllActTriggered(False))
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
393
3185
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
394 self.actionsButton.setIcon(
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
395 UI.PixmapCache.getIcon("actionsToolButton.png"))
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
396 self.actionsButton.setMenu(self.__actionsMenu)
1086
b48ce064b224 Enhanced the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
397
b48ce064b224 Enhanced the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
398 def __initData(self):
b48ce064b224 Enhanced the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
399 """
b48ce064b224 Enhanced the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
400 Private method to (re-)initialize some data.
b48ce064b224 Enhanced the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
401 """
b48ce064b224 Enhanced the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
402 self.__maxDate = QDate()
b48ce064b224 Enhanced the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
403 self.__minDate = QDate()
b48ce064b224 Enhanced the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
404 self.__filterLogsEnabled = True
b48ce064b224 Enhanced the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
405
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
406 self.buf = [] # buffer for stdout
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
407 self.diff = None
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
408 self.__started = False
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
409 self.__lastRev = 0
187
d7916a2e31d6 Added some more refinements to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
410 self.projectMode = False
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
411
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
412 # attributes to store log graph data
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
413 self.__revs = []
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
414 self.__revColors = {}
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
415 self.__revColor = 0
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
416
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
417 self.__branchColors = {}
241
aaa856499ed5 Added code to the Mercurial log browser to highlight the current revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 236
diff changeset
418
7183
4ac1c9daa90b HgStatusDialog: commitMerge and abortMerge actions added
Christos Sevastiadis <csevast@gmail.com>
parents: 7142
diff changeset
419 self.__projectWorkingDirParents = []
2543
eb9472947653 Added a 'Copy Changesets' button to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2444
diff changeset
420 self.__projectBranch = ""
5445
b24720037f1f Added clickable links to the Mercurial log browser details pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5444
diff changeset
421
b24720037f1f Added clickable links to the Mercurial log browser details pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5444
diff changeset
422 self.__childrenInfo = collections.defaultdict(list)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
423
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
424 def closeEvent(self, e):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
425 """
3591
2f2a4a76dd22 Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3562
diff changeset
426 Protected slot implementing a close event handler.
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
427
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
428 @param e close event (QCloseEvent)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
429 """
1256
885706dbb69f Refined the Mercurial command server interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1250
diff changeset
430 if self.__hgClient:
885706dbb69f Refined the Mercurial command server interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1250
diff changeset
431 if self.__hgClient.isExecuting():
885706dbb69f Refined the Mercurial command server interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1250
diff changeset
432 self.__hgClient.cancel()
885706dbb69f Refined the Mercurial command server interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1250
diff changeset
433 else:
885706dbb69f Refined the Mercurial command server interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1250
diff changeset
434 if self.process is not None and \
885706dbb69f Refined the Mercurial command server interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1250
diff changeset
435 self.process.state() != QProcess.NotRunning:
885706dbb69f Refined the Mercurial command server interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1250
diff changeset
436 self.process.terminate()
885706dbb69f Refined the Mercurial command server interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1250
diff changeset
437 QTimer.singleShot(2000, self.process.kill)
885706dbb69f Refined the Mercurial command server interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1250
diff changeset
438 self.process.waitForFinished(3000)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
439
5488
d3729abac667 Enhanced the Mercurial log browser window by saving and restoring the internal state (geometry and the three splitters).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5487
diff changeset
440 self.vcs.getPlugin().setPreferences(
d3729abac667 Enhanced the Mercurial log browser window by saving and restoring the internal state (geometry and the three splitters).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5487
diff changeset
441 "LogBrowserGeometry", self.saveGeometry())
d3729abac667 Enhanced the Mercurial log browser window by saving and restoring the internal state (geometry and the three splitters).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5487
diff changeset
442 self.vcs.getPlugin().setPreferences(
d3729abac667 Enhanced the Mercurial log browser window by saving and restoring the internal state (geometry and the three splitters).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5487
diff changeset
443 "LogBrowserSplitterStates", [
d3729abac667 Enhanced the Mercurial log browser window by saving and restoring the internal state (geometry and the three splitters).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5487
diff changeset
444 self.mainSplitter.saveState(),
d3729abac667 Enhanced the Mercurial log browser window by saving and restoring the internal state (geometry and the three splitters).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5487
diff changeset
445 self.detailsSplitter.saveState(),
d3729abac667 Enhanced the Mercurial log browser window by saving and restoring the internal state (geometry and the three splitters).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5487
diff changeset
446 self.diffSplitter.saveState(),
d3729abac667 Enhanced the Mercurial log browser window by saving and restoring the internal state (geometry and the three splitters).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5487
diff changeset
447 ]
d3729abac667 Enhanced the Mercurial log browser window by saving and restoring the internal state (geometry and the three splitters).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5487
diff changeset
448 )
3283
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3279
diff changeset
449
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
450 e.accept()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
451
3283
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3279
diff changeset
452 def show(self):
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3279
diff changeset
453 """
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3279
diff changeset
454 Public slot to show the dialog.
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3279
diff changeset
455 """
5488
d3729abac667 Enhanced the Mercurial log browser window by saving and restoring the internal state (geometry and the three splitters).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5487
diff changeset
456 self.__reloadGeometry()
d3729abac667 Enhanced the Mercurial log browser window by saving and restoring the internal state (geometry and the three splitters).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5487
diff changeset
457 self.__restoreSplitterStates()
3283
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3279
diff changeset
458 self.__resetUI()
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3279
diff changeset
459
3484
645c12de6b0c Merge with default branch.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3178 3359
diff changeset
460 super(HgLogBrowserDialog, self).show()
5488
d3729abac667 Enhanced the Mercurial log browser window by saving and restoring the internal state (geometry and the three splitters).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5487
diff changeset
461
d3729abac667 Enhanced the Mercurial log browser window by saving and restoring the internal state (geometry and the three splitters).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5487
diff changeset
462 def __reloadGeometry(self):
d3729abac667 Enhanced the Mercurial log browser window by saving and restoring the internal state (geometry and the three splitters).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5487
diff changeset
463 """
d3729abac667 Enhanced the Mercurial log browser window by saving and restoring the internal state (geometry and the three splitters).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5487
diff changeset
464 Private method to restore the geometry.
d3729abac667 Enhanced the Mercurial log browser window by saving and restoring the internal state (geometry and the three splitters).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5487
diff changeset
465 """
d3729abac667 Enhanced the Mercurial log browser window by saving and restoring the internal state (geometry and the three splitters).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5487
diff changeset
466 geom = self.vcs.getPlugin().getPreferences("LogBrowserGeometry")
d3729abac667 Enhanced the Mercurial log browser window by saving and restoring the internal state (geometry and the three splitters).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5487
diff changeset
467 if geom.isEmpty():
d3729abac667 Enhanced the Mercurial log browser window by saving and restoring the internal state (geometry and the three splitters).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5487
diff changeset
468 s = QSize(1000, 800)
d3729abac667 Enhanced the Mercurial log browser window by saving and restoring the internal state (geometry and the three splitters).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5487
diff changeset
469 self.resize(s)
d3729abac667 Enhanced the Mercurial log browser window by saving and restoring the internal state (geometry and the three splitters).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5487
diff changeset
470 else:
d3729abac667 Enhanced the Mercurial log browser window by saving and restoring the internal state (geometry and the three splitters).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5487
diff changeset
471 self.restoreGeometry(geom)
d3729abac667 Enhanced the Mercurial log browser window by saving and restoring the internal state (geometry and the three splitters).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5487
diff changeset
472
d3729abac667 Enhanced the Mercurial log browser window by saving and restoring the internal state (geometry and the three splitters).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5487
diff changeset
473 def __restoreSplitterStates(self):
d3729abac667 Enhanced the Mercurial log browser window by saving and restoring the internal state (geometry and the three splitters).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5487
diff changeset
474 """
d3729abac667 Enhanced the Mercurial log browser window by saving and restoring the internal state (geometry and the three splitters).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5487
diff changeset
475 Private method to restore the state of the various splitters.
d3729abac667 Enhanced the Mercurial log browser window by saving and restoring the internal state (geometry and the three splitters).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5487
diff changeset
476 """
d3729abac667 Enhanced the Mercurial log browser window by saving and restoring the internal state (geometry and the three splitters).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5487
diff changeset
477 states = self.vcs.getPlugin().getPreferences(
d3729abac667 Enhanced the Mercurial log browser window by saving and restoring the internal state (geometry and the three splitters).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5487
diff changeset
478 "LogBrowserSplitterStates")
d3729abac667 Enhanced the Mercurial log browser window by saving and restoring the internal state (geometry and the three splitters).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5487
diff changeset
479 if len(states) == 3:
d3729abac667 Enhanced the Mercurial log browser window by saving and restoring the internal state (geometry and the three splitters).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5487
diff changeset
480 # we have three splitters
d3729abac667 Enhanced the Mercurial log browser window by saving and restoring the internal state (geometry and the three splitters).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5487
diff changeset
481 self.mainSplitter.restoreState(states[0])
d3729abac667 Enhanced the Mercurial log browser window by saving and restoring the internal state (geometry and the three splitters).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5487
diff changeset
482 self.detailsSplitter.restoreState(states[1])
d3729abac667 Enhanced the Mercurial log browser window by saving and restoring the internal state (geometry and the three splitters).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5487
diff changeset
483 self.diffSplitter.restoreState(states[2])
3283
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3279
diff changeset
484
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3279
diff changeset
485 def __resetUI(self):
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3279
diff changeset
486 """
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3279
diff changeset
487 Private method to reset the user interface.
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3279
diff changeset
488 """
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3279
diff changeset
489 self.branchCombo.clear()
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3279
diff changeset
490 self.fromDate.setDate(QDate.currentDate())
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3279
diff changeset
491 self.toDate.setDate(QDate.currentDate())
4059
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
492 self.fieldCombo.setCurrentIndex(self.fieldCombo.findData("message"))
3283
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3279
diff changeset
493 self.limitSpinBox.setValue(self.vcs.getPlugin().getPreferences(
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3279
diff changeset
494 "LogLimit"))
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3279
diff changeset
495 self.stopCheckBox.setChecked(self.vcs.getPlugin().getPreferences(
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3279
diff changeset
496 "StopLogOnCopy"))
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3279
diff changeset
497
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3279
diff changeset
498 if self.initialCommandMode in ("incoming", "outgoing"):
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3279
diff changeset
499 self.nextButton.setEnabled(False)
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3279
diff changeset
500 self.limitSpinBox.setEnabled(False)
3287
c3d784c057b3 Changed the Subversion Log Browser dialogs to maintain its position after being closed and fixed a few issues in the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3283
diff changeset
501 else:
c3d784c057b3 Changed the Subversion Log Browser dialogs to maintain its position after being closed and fixed a few issues in the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3283
diff changeset
502 self.nextButton.setEnabled(True)
c3d784c057b3 Changed the Subversion Log Browser dialogs to maintain its position after being closed and fixed a few issues in the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3283
diff changeset
503 self.limitSpinBox.setEnabled(True)
3283
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3279
diff changeset
504
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3279
diff changeset
505 self.logTree.clear()
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3279
diff changeset
506
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
507 if self.initialCommandMode == "full_log":
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
508 self.commandMode = "incoming"
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
509 else:
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
510 self.commandMode = self.initialCommandMode
3283
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3279
diff changeset
511
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
512 def __resizeColumnsLog(self):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
513 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
514 Private method to resize the log tree columns.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
515 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
516 self.logTree.header().resizeSections(QHeaderView.ResizeToContents)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
517 self.logTree.header().setStretchLastSection(True)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
518
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
519 def __resizeColumnsFiles(self):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
520 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
521 Private method to resize the changed files tree columns.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
522 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
523 self.filesTree.header().resizeSections(QHeaderView.ResizeToContents)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
524 self.filesTree.header().setStretchLastSection(True)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
525
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
526 def __resortFiles(self):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
527 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
528 Private method to resort the changed files tree.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
529 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
530 sortColumn = self.filesTree.sortColumn()
3023
34ce20603bf7 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
531 self.filesTree.sortItems(
34ce20603bf7 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
532 1, self.filesTree.header().sortIndicatorOrder())
34ce20603bf7 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
533 self.filesTree.sortItems(
34ce20603bf7 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
534 sortColumn, self.filesTree.header().sortIndicatorOrder())
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
535
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
536 def __getColor(self, n):
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
537 """
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
538 Private method to get the (rotating) name of the color given an index.
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
539
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
540 @param n color index (integer)
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
541 @return color name (string)
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
542 """
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
543 return COLORS[n % len(COLORS)]
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
544
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
545 def __branchColor(self, branchName):
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
546 """
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
547 Private method to calculate a color for a given branch name.
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
548
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
549 @param branchName name of the branch (string)
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
550 @return name of the color to use (string)
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
551 """
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
552 if branchName not in self.__branchColors:
932
efd23a913a09 Finished extending the Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 921
diff changeset
553 self.__branchColors[branchName] = self.__getColor(
efd23a913a09 Finished extending the Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 921
diff changeset
554 len(self.__branchColors))
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
555 return self.__branchColors[branchName]
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
556
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
557 def __generateEdges(self, rev, parents):
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
558 """
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
559 Private method to generate edge info for the give data.
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
560
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
561 @param rev revision to calculate edge info for (integer)
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
562 @param parents list of parent revisions (list of integers)
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
563 @return tuple containing the column and color index for
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
564 the given node and a list of tuples indicating the edges
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 932
diff changeset
565 between the given node and its parents
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
566 (integer, integer, [(integer, integer, integer), ...])
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
567 """
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
568 if rev not in self.__revs:
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
569 # new head
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
570 self.__revs.append(rev)
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
571 self.__revColors[rev] = self.__revColor
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
572 self.__revColor += 1
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
573
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
574 col = self.__revs.index(rev)
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
575 color = self.__revColors.pop(rev)
5588
6ba512d9f46a Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5587
diff changeset
576 nextRevs = self.__revs[:]
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
577
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
578 # add parents to next
5588
6ba512d9f46a Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5587
diff changeset
579 addparents = [p for p in parents if p not in nextRevs]
6ba512d9f46a Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5587
diff changeset
580 nextRevs[col:col + 1] = addparents
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
581
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
582 # set colors for the parents
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
583 for i, p in enumerate(addparents):
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
584 if not i:
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
585 self.__revColors[p] = color
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
586 else:
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
587 self.__revColors[p] = self.__revColor
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
588 self.__revColor += 1
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
589
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
590 # add edges to the graph
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
591 edges = []
187
d7916a2e31d6 Added some more refinements to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
592 if parents[0] != -1:
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
593 for ecol, erev in enumerate(self.__revs):
5588
6ba512d9f46a Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5587
diff changeset
594 if erev in nextRevs:
932
efd23a913a09 Finished extending the Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 921
diff changeset
595 edges.append(
5588
6ba512d9f46a Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5587
diff changeset
596 (ecol, nextRevs.index(erev), self.__revColors[erev]))
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
597 elif erev == rev:
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
598 for p in parents:
932
efd23a913a09 Finished extending the Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 921
diff changeset
599 edges.append(
5588
6ba512d9f46a Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5587
diff changeset
600 (ecol, nextRevs.index(p), self.__revColors[p]))
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
601
5588
6ba512d9f46a Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5587
diff changeset
602 self.__revs = nextRevs
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
603 return col, color, edges
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
604
932
efd23a913a09 Finished extending the Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 921
diff changeset
605 def __generateIcon(self, column, color, bottomedges, topedges, dotColor,
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
606 currentRev, closed, isDraft):
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
607 """
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
608 Private method to generate an icon containing the revision tree for the
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
609 given data.
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
610
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
611 @param column column index of the revision
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
612 @type int
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
613 @param color color of the node
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
614 @type int
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 932
diff changeset
615 @param bottomedges list of edges for the bottom of the node
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
616 @type list of tuples of (int, int, int)
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 932
diff changeset
617 @param topedges list of edges for the top of the node
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
618 @type list of tuples of (int, int, int)
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
619 @param dotColor color to be used for the dot
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
620 @type QColor
241
aaa856499ed5 Added code to the Mercurial log browser to highlight the current revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 236
diff changeset
621 @param currentRev flag indicating to draw the icon for the
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
622 current revision
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
623 @type bool
932
efd23a913a09 Finished extending the Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 921
diff changeset
624 @param closed flag indicating to draw an icon for a closed
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
625 branch
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
626 @type bool
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
627 @param isDraft flag indicating an entry of phase 'draft'
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
628 @type bool
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
629 @return icon for the node
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
630 @rtype QIcon
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
631 """
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
632 def col2x(col, radius):
244
30be2b4a9721 Added a menu to the highlighting styles config page to change individual aspects of a font only.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 243
diff changeset
633 """
30be2b4a9721 Added a menu to the highlighting styles config page to change individual aspects of a font only.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 243
diff changeset
634 Local function to calculate a x-position for a column.
30be2b4a9721 Added a menu to the highlighting styles config page to change individual aspects of a font only.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 243
diff changeset
635
30be2b4a9721 Added a menu to the highlighting styles config page to change individual aspects of a font only.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 243
diff changeset
636 @param col column number (integer)
30be2b4a9721 Added a menu to the highlighting styles config page to change individual aspects of a font only.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 243
diff changeset
637 @param radius radius of the indicator circle (integer)
30be2b4a9721 Added a menu to the highlighting styles config page to change individual aspects of a font only.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 243
diff changeset
638 """
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
639 return int(1.2 * radius) * col + radius // 2 + 3
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
640
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
641 radius = self.__dotRadius
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
642 w = len(bottomedges) * radius + 20
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
643 h = self.__rowHeight
241
aaa856499ed5 Added code to the Mercurial log browser to highlight the current revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 236
diff changeset
644
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
645 dot_x = col2x(column, radius) - radius // 2
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
646 dot_y = h // 2
241
aaa856499ed5 Added code to the Mercurial log browser to highlight the current revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 236
diff changeset
647
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
648 pix = QPixmap(w, h)
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
649 pix.fill(QColor(0, 0, 0, 0))
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
650 painter = QPainter(pix)
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
651 painter.setRenderHint(QPainter.Antialiasing)
241
aaa856499ed5 Added code to the Mercurial log browser to highlight the current revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 236
diff changeset
652
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
653 pen = QPen(Qt.blue)
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
654 pen.setWidth(2)
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
655 painter.setPen(pen)
241
aaa856499ed5 Added code to the Mercurial log browser to highlight the current revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 236
diff changeset
656
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
657 lpen = QPen(pen)
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
658 lpen.setColor(Qt.black)
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
659 painter.setPen(lpen)
241
aaa856499ed5 Added code to the Mercurial log browser to highlight the current revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 236
diff changeset
660
aaa856499ed5 Added code to the Mercurial log browser to highlight the current revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 236
diff changeset
661 # draw the revision history lines
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
662 for y1, y2, lines in ((0, h, bottomedges),
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
663 (-h, 0, topedges)):
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
664 if lines:
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
665 for start, end, ecolor in lines:
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
666 lpen = QPen(pen)
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
667 lpen.setColor(QColor(self.__getColor(ecolor)))
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
668 lpen.setWidth(2)
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
669 painter.setPen(lpen)
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
670 x1 = col2x(start, radius)
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
671 x2 = col2x(end, radius)
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
672 painter.drawLine(x1, dot_y + y1, x2, dot_y + y2)
241
aaa856499ed5 Added code to the Mercurial log browser to highlight the current revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 236
diff changeset
673
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
674 penradius = 1
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
675 pencolor = Qt.black
241
aaa856499ed5 Added code to the Mercurial log browser to highlight the current revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 236
diff changeset
676
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
677 dot_y = (h // 2) - radius // 2
241
aaa856499ed5 Added code to the Mercurial log browser to highlight the current revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 236
diff changeset
678
aaa856499ed5 Added code to the Mercurial log browser to highlight the current revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 236
diff changeset
679 # draw a dot for the revision
aaa856499ed5 Added code to the Mercurial log browser to highlight the current revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 236
diff changeset
680 if currentRev:
aaa856499ed5 Added code to the Mercurial log browser to highlight the current revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 236
diff changeset
681 # enlarge dot for the current revision
1637
b60eb2fdbaea Improved the indication of the current branches head in the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
682 delta = 1
241
aaa856499ed5 Added code to the Mercurial log browser to highlight the current revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 236
diff changeset
683 radius += 2 * delta
aaa856499ed5 Added code to the Mercurial log browser to highlight the current revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 236
diff changeset
684 dot_y -= delta
aaa856499ed5 Added code to the Mercurial log browser to highlight the current revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 236
diff changeset
685 dot_x -= delta
1637
b60eb2fdbaea Improved the indication of the current branches head in the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
686 penradius = 3
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
687 painter.setBrush(dotColor)
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
688 pen = QPen(pencolor)
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
689 pen.setWidth(penradius)
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
690 painter.setPen(pen)
932
efd23a913a09 Finished extending the Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 921
diff changeset
691 if closed:
efd23a913a09 Finished extending the Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 921
diff changeset
692 painter.drawRect(dot_x - 2, dot_y + 1,
efd23a913a09 Finished extending the Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 921
diff changeset
693 radius + 4, radius - 2)
efd23a913a09 Finished extending the Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 921
diff changeset
694 elif self.commandMode in ("incoming", "outgoing"):
781
2f85b5573e62 Changed the Mercurial log browser to show incoming/outgoing changesets with the current log (by pressing the next button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 537
diff changeset
695 offset = radius // 2
6986
23886c1dd3d0 HgLogBrowserDialog: changed the icon for incoming and outgoing changesets to make the changeset type more distinguishable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
696 if self.commandMode == "incoming":
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
697 # incoming: draw a down arrow
6986
23886c1dd3d0 HgLogBrowserDialog: changed the icon for incoming and outgoing changesets to make the changeset type more distinguishable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
698 painter.drawConvexPolygon(
23886c1dd3d0 HgLogBrowserDialog: changed the icon for incoming and outgoing changesets to make the changeset type more distinguishable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
699 QPoint(dot_x, dot_y),
23886c1dd3d0 HgLogBrowserDialog: changed the icon for incoming and outgoing changesets to make the changeset type more distinguishable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
700 QPoint(dot_x + 2 * offset, dot_y),
23886c1dd3d0 HgLogBrowserDialog: changed the icon for incoming and outgoing changesets to make the changeset type more distinguishable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
701 QPoint(dot_x + offset, dot_y + 2 * offset)
23886c1dd3d0 HgLogBrowserDialog: changed the icon for incoming and outgoing changesets to make the changeset type more distinguishable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
702 )
23886c1dd3d0 HgLogBrowserDialog: changed the icon for incoming and outgoing changesets to make the changeset type more distinguishable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
703 else:
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
704 # outgoing: draw an up arrow
6986
23886c1dd3d0 HgLogBrowserDialog: changed the icon for incoming and outgoing changesets to make the changeset type more distinguishable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
705 painter.drawConvexPolygon(
23886c1dd3d0 HgLogBrowserDialog: changed the icon for incoming and outgoing changesets to make the changeset type more distinguishable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
706 QPoint(dot_x + offset, dot_y),
23886c1dd3d0 HgLogBrowserDialog: changed the icon for incoming and outgoing changesets to make the changeset type more distinguishable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
707 QPoint(dot_x, dot_y + 2 * offset),
23886c1dd3d0 HgLogBrowserDialog: changed the icon for incoming and outgoing changesets to make the changeset type more distinguishable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
708 QPoint(dot_x + 2 * offset, dot_y + 2 * offset)
23886c1dd3d0 HgLogBrowserDialog: changed the icon for incoming and outgoing changesets to make the changeset type more distinguishable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
709 )
781
2f85b5573e62 Changed the Mercurial log browser to show incoming/outgoing changesets with the current log (by pressing the next button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 537
diff changeset
710 else:
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
711 if isDraft:
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
712 # 'draft' phase: draw an up arrow like outgoing
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
713 offset = radius // 2
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
714 painter.drawConvexPolygon(
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
715 QPoint(dot_x + offset, dot_y),
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
716 QPoint(dot_x, dot_y + 2 * offset),
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
717 QPoint(dot_x + 2 * offset, dot_y + 2 * offset)
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
718 )
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
719 else:
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
720 painter.drawEllipse(dot_x, dot_y, radius, radius)
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
721 painter.end()
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
722 return QIcon(pix)
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
723
187
d7916a2e31d6 Added some more refinements to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
724 def __getParents(self, rev):
d7916a2e31d6 Added some more refinements to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
725 """
932
efd23a913a09 Finished extending the Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 921
diff changeset
726 Private method to get the parents of the currently viewed
efd23a913a09 Finished extending the Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 921
diff changeset
727 file/directory.
187
d7916a2e31d6 Added some more refinements to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
728
d7916a2e31d6 Added some more refinements to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
729 @param rev revision number to get parents for (string)
d7916a2e31d6 Added some more refinements to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
730 @return list of parent revisions (list of integers)
d7916a2e31d6 Added some more refinements to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
731 """
d7916a2e31d6 Added some more refinements to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
732 errMsg = ""
d7916a2e31d6 Added some more refinements to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
733 parents = [-1]
d7916a2e31d6 Added some more refinements to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
734
2581
a3498dcc75cc Fixed an 'invalid' error message caused by the code trying to get the parents for revision 0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2570
diff changeset
735 if int(rev) > 0:
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3287
diff changeset
736 args = self.vcs.initCommand("parents")
2581
a3498dcc75cc Fixed an 'invalid' error message caused by the code trying to get the parents for revision 0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2570
diff changeset
737 if self.commandMode == "incoming":
3287
c3d784c057b3 Changed the Subversion Log Browser dialogs to maintain its position after being closed and fixed a few issues in the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3283
diff changeset
738 if self.__bundle:
2581
a3498dcc75cc Fixed an 'invalid' error message caused by the code trying to get the parents for revision 0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2570
diff changeset
739 args.append("--repository")
3287
c3d784c057b3 Changed the Subversion Log Browser dialogs to maintain its position after being closed and fixed a few issues in the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3283
diff changeset
740 args.append(self.__bundle)
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2962
diff changeset
741 elif self.vcs.bundleFile and \
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2962
diff changeset
742 os.path.exists(self.vcs.bundleFile):
2581
a3498dcc75cc Fixed an 'invalid' error message caused by the code trying to get the parents for revision 0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2570
diff changeset
743 args.append("--repository")
a3498dcc75cc Fixed an 'invalid' error message caused by the code trying to get the parents for revision 0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2570
diff changeset
744 args.append(self.vcs.bundleFile)
a3498dcc75cc Fixed an 'invalid' error message caused by the code trying to get the parents for revision 0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2570
diff changeset
745 args.append("--template")
a3498dcc75cc Fixed an 'invalid' error message caused by the code trying to get the parents for revision 0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2570
diff changeset
746 args.append("{rev}\n")
a3498dcc75cc Fixed an 'invalid' error message caused by the code trying to get the parents for revision 0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2570
diff changeset
747 args.append("-r")
a3498dcc75cc Fixed an 'invalid' error message caused by the code trying to get the parents for revision 0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2570
diff changeset
748 args.append(rev)
a3498dcc75cc Fixed an 'invalid' error message caused by the code trying to get the parents for revision 0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2570
diff changeset
749 if not self.projectMode:
3287
c3d784c057b3 Changed the Subversion Log Browser dialogs to maintain its position after being closed and fixed a few issues in the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3283
diff changeset
750 args.append(self.__filename)
2581
a3498dcc75cc Fixed an 'invalid' error message caused by the code trying to get the parents for revision 0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2570
diff changeset
751
a3498dcc75cc Fixed an 'invalid' error message caused by the code trying to get the parents for revision 0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2570
diff changeset
752 output = ""
a3498dcc75cc Fixed an 'invalid' error message caused by the code trying to get the parents for revision 0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2570
diff changeset
753 if self.__hgClient:
a3498dcc75cc Fixed an 'invalid' error message caused by the code trying to get the parents for revision 0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2570
diff changeset
754 output, errMsg = self.__hgClient.runcommand(args)
a3498dcc75cc Fixed an 'invalid' error message caused by the code trying to get the parents for revision 0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2570
diff changeset
755 else:
a3498dcc75cc Fixed an 'invalid' error message caused by the code trying to get the parents for revision 0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2570
diff changeset
756 process = QProcess()
a3498dcc75cc Fixed an 'invalid' error message caused by the code trying to get the parents for revision 0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2570
diff changeset
757 process.setWorkingDirectory(self.repodir)
a3498dcc75cc Fixed an 'invalid' error message caused by the code trying to get the parents for revision 0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2570
diff changeset
758 process.start('hg', args)
2771
281c9b30dd91 Changed all QProcess.waitForStarted() calls to use a 5s timeout (except the debugger interfaces, which have a 10s timeout).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2731
diff changeset
759 procStarted = process.waitForStarted(5000)
2581
a3498dcc75cc Fixed an 'invalid' error message caused by the code trying to get the parents for revision 0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2570
diff changeset
760 if procStarted:
a3498dcc75cc Fixed an 'invalid' error message caused by the code trying to get the parents for revision 0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2570
diff changeset
761 finished = process.waitForFinished(30000)
a3498dcc75cc Fixed an 'invalid' error message caused by the code trying to get the parents for revision 0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2570
diff changeset
762 if finished and process.exitCode() == 0:
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3287
diff changeset
763 output = str(process.readAllStandardOutput(),
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3287
diff changeset
764 self.vcs.getEncoding(), 'replace')
2581
a3498dcc75cc Fixed an 'invalid' error message caused by the code trying to get the parents for revision 0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2570
diff changeset
765 else:
a3498dcc75cc Fixed an 'invalid' error message caused by the code trying to get the parents for revision 0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2570
diff changeset
766 if not finished:
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
767 errMsg = self.tr(
2581
a3498dcc75cc Fixed an 'invalid' error message caused by the code trying to get the parents for revision 0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2570
diff changeset
768 "The hg process did not finish within 30s.")
1241
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
769 else:
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
770 errMsg = self.tr("Could not start the hg executable.")
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
771
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
772 if errMsg:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
773 E5MessageBox.critical(
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
774 self,
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
775 self.tr("Mercurial Error"),
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
776 errMsg)
2581
a3498dcc75cc Fixed an 'invalid' error message caused by the code trying to get the parents for revision 0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2570
diff changeset
777
a3498dcc75cc Fixed an 'invalid' error message caused by the code trying to get the parents for revision 0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2570
diff changeset
778 if output:
a3498dcc75cc Fixed an 'invalid' error message caused by the code trying to get the parents for revision 0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2570
diff changeset
779 parents = [int(p) for p in output.strip().splitlines()]
1241
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
780
187
d7916a2e31d6 Added some more refinements to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
781 return parents
d7916a2e31d6 Added some more refinements to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
782
241
aaa856499ed5 Added code to the Mercurial log browser to highlight the current revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 236
diff changeset
783 def __identifyProject(self):
aaa856499ed5 Added code to the Mercurial log browser to highlight the current revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 236
diff changeset
784 """
aaa856499ed5 Added code to the Mercurial log browser to highlight the current revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 236
diff changeset
785 Private method to determine the revision of the project directory.
aaa856499ed5 Added code to the Mercurial log browser to highlight the current revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 236
diff changeset
786 """
aaa856499ed5 Added code to the Mercurial log browser to highlight the current revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 236
diff changeset
787 errMsg = ""
aaa856499ed5 Added code to the Mercurial log browser to highlight the current revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 236
diff changeset
788
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3287
diff changeset
789 args = self.vcs.initCommand("identify")
2543
eb9472947653 Added a 'Copy Changesets' button to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2444
diff changeset
790 args.append("-nb")
241
aaa856499ed5 Added code to the Mercurial log browser to highlight the current revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 236
diff changeset
791
1241
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
792 output = ""
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
793 if self.__hgClient:
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
794 output, errMsg = self.__hgClient.runcommand(args)
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
795 else:
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
796 process = QProcess()
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
797 process.setWorkingDirectory(self.repodir)
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
798 process.start('hg', args)
2771
281c9b30dd91 Changed all QProcess.waitForStarted() calls to use a 5s timeout (except the debugger interfaces, which have a 10s timeout).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2731
diff changeset
799 procStarted = process.waitForStarted(5000)
1241
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
800 if procStarted:
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
801 finished = process.waitForFinished(30000)
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
802 if finished and process.exitCode() == 0:
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3287
diff changeset
803 output = str(process.readAllStandardOutput(),
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3287
diff changeset
804 self.vcs.getEncoding(), 'replace')
1241
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
805 else:
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
806 if not finished:
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
807 errMsg = self.tr(
1241
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
808 "The hg process did not finish within 30s.")
241
aaa856499ed5 Added code to the Mercurial log browser to highlight the current revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 236
diff changeset
809 else:
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
810 errMsg = self.tr("Could not start the hg executable.")
241
aaa856499ed5 Added code to the Mercurial log browser to highlight the current revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 236
diff changeset
811
aaa856499ed5 Added code to the Mercurial log browser to highlight the current revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 236
diff changeset
812 if errMsg:
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
813 E5MessageBox.critical(
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
814 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
815 self.tr("Mercurial Error"),
241
aaa856499ed5 Added code to the Mercurial log browser to highlight the current revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 236
diff changeset
816 errMsg)
1241
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
817
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
818 if output:
2544
3868561e3962 Fixed an issue introduced by the last changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2543
diff changeset
819 outputList = output.strip().split(None, 1)
2543
eb9472947653 Added a 'Copy Changesets' button to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2444
diff changeset
820 if len(outputList) == 2:
7183
4ac1c9daa90b HgStatusDialog: commitMerge and abortMerge actions added
Christos Sevastiadis <csevast@gmail.com>
parents: 7142
diff changeset
821 outputRevs = outputList[0].strip()
4ac1c9daa90b HgStatusDialog: commitMerge and abortMerge actions added
Christos Sevastiadis <csevast@gmail.com>
parents: 7142
diff changeset
822 if outputRevs.endswith("+"):
4ac1c9daa90b HgStatusDialog: commitMerge and abortMerge actions added
Christos Sevastiadis <csevast@gmail.com>
parents: 7142
diff changeset
823 outputRevs = outputRevs[:-1]
4ac1c9daa90b HgStatusDialog: commitMerge and abortMerge actions added
Christos Sevastiadis <csevast@gmail.com>
parents: 7142
diff changeset
824 self.__projectWorkingDirParents = outputRevs.split('+')
7187
11b0c7802a70 HgLogBrowserDialog: fixed the patch submitted by Christos.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7183
diff changeset
825 else:
11b0c7802a70 HgLogBrowserDialog: fixed the patch submitted by Christos.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7183
diff changeset
826 self.__projectWorkingDirParents = [outputRevs]
2642
c9f965bd21d2 Fixed an issue in the Mercurial log browser dialog causing the 'Copy Changeset' button not being updated correctly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2581
diff changeset
827 self.__projectBranch = outputList[1].strip()
241
aaa856499ed5 Added code to the Mercurial log browser to highlight the current revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 236
diff changeset
828
921
ae00e4fbcec0 Prepared Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
829 def __getClosedBranches(self):
ae00e4fbcec0 Prepared Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
830 """
ae00e4fbcec0 Prepared Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
831 Private method to get the list of closed branches.
ae00e4fbcec0 Prepared Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
832 """
ae00e4fbcec0 Prepared Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
833 self.__closedBranchesRevs = []
ae00e4fbcec0 Prepared Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
834 errMsg = ""
ae00e4fbcec0 Prepared Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
835
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3287
diff changeset
836 args = self.vcs.initCommand("branches")
921
ae00e4fbcec0 Prepared Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
837 args.append("--closed")
ae00e4fbcec0 Prepared Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
838
1241
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
839 output = ""
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
840 if self.__hgClient:
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
841 output, errMsg = self.__hgClient.runcommand(args)
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
842 else:
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
843 process = QProcess()
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
844 process.setWorkingDirectory(self.repodir)
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
845 process.start('hg', args)
2771
281c9b30dd91 Changed all QProcess.waitForStarted() calls to use a 5s timeout (except the debugger interfaces, which have a 10s timeout).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2731
diff changeset
846 procStarted = process.waitForStarted(5000)
1241
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
847 if procStarted:
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
848 finished = process.waitForFinished(30000)
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
849 if finished and process.exitCode() == 0:
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3287
diff changeset
850 output = str(process.readAllStandardOutput(),
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3287
diff changeset
851 self.vcs.getEncoding(), 'replace')
1241
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
852 else:
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
853 if not finished:
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
854 errMsg = self.tr(
1241
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
855 "The hg process did not finish within 30s.")
921
ae00e4fbcec0 Prepared Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
856 else:
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
857 errMsg = self.tr("Could not start the hg executable.")
921
ae00e4fbcec0 Prepared Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
858
ae00e4fbcec0 Prepared Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
859 if errMsg:
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
860 E5MessageBox.critical(
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
861 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
862 self.tr("Mercurial Error"),
921
ae00e4fbcec0 Prepared Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
863 errMsg)
1241
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
864
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
865 if output:
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
866 for line in output.splitlines():
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
867 if line.strip().endswith("(closed)"):
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
868 parts = line.split()
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
869 self.__closedBranchesRevs.append(
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
870 parts[-2].split(":", 1)[0])
921
ae00e4fbcec0 Prepared Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
871
7010
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
872 def __getHeads(self):
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
873 """
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
874 Private method to get the list of all heads.
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
875 """
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
876 self.__headRevisions = []
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
877 errMsg = ""
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
878
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
879 args = self.vcs.initCommand("heads")
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
880 args.append("--closed")
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
881 args.append("--template")
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
882 args.append("{rev}\n")
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
883
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
884 output = ""
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
885 if self.__hgClient:
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
886 output, errMsg = self.__hgClient.runcommand(args)
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
887 else:
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
888 process = QProcess()
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
889 process.setWorkingDirectory(self.repodir)
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
890 process.start('hg', args)
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
891 procStarted = process.waitForStarted(5000)
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
892 if procStarted:
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
893 finished = process.waitForFinished(30000)
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
894 if finished and process.exitCode() == 0:
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
895 output = str(process.readAllStandardOutput(),
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
896 self.vcs.getEncoding(), 'replace')
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
897 else:
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
898 if not finished:
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
899 errMsg = self.tr(
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
900 "The hg process did not finish within 30s.")
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
901 else:
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
902 errMsg = self.tr("Could not start the hg executable.")
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
903
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
904 if errMsg:
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
905 E5MessageBox.critical(
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
906 self,
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
907 self.tr("Mercurial Error"),
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
908 errMsg)
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
909
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
910 if output:
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
911 for line in output.splitlines():
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
912 line = line.strip()
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
913 if line:
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
914 self.__headRevisions.append(line)
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
915
5459
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
916 def __getRevisionOfTag(self, tag):
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
917 """
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
918 Private method to get the revision of a tag.
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
919
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
920 @param tag tag name
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
921 @type str
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
922 @return tuple containing the revision and changeset ID
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
923 @rtype tuple of (str, str)
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
924 """
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
925 errMsg = ""
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
926
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
927 args = self.vcs.initCommand("tags")
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
928
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
929 output = ""
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
930 if self.__hgClient:
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
931 output, errMsg = self.__hgClient.runcommand(args)
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
932 else:
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
933 process = QProcess()
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
934 process.setWorkingDirectory(self.repodir)
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
935 process.start('hg', args)
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
936 procStarted = process.waitForStarted(5000)
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
937 if procStarted:
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
938 finished = process.waitForFinished(30000)
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
939 if finished and process.exitCode() == 0:
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
940 output = str(process.readAllStandardOutput(),
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
941 self.vcs.getEncoding(), 'replace')
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
942 else:
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
943 if not finished:
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
944 errMsg = self.tr(
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
945 "The hg process did not finish within 30s.")
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
946 else:
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
947 errMsg = self.tr("Could not start the hg executable.")
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
948
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
949 if errMsg:
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
950 E5MessageBox.critical(
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
951 self,
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
952 self.tr("Mercurial Error"),
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
953 errMsg)
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
954
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
955 res = ("", "")
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
956 if output:
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
957 for line in output.splitlines():
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
958 if line.strip():
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
959 try:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
960 name, rev = line.strip().rsplit(None, 1)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
961 if name == tag:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
962 res = tuple(rev.split(":", 1))
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
963 break
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
964 except ValueError:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
965 # ignore silently
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
966 pass
5459
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
967
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
968 return res
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
969
932
efd23a913a09 Finished extending the Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 921
diff changeset
970 def __generateLogItem(self, author, date, message, revision, changedPaths,
5459
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
971 parents, branches, tags, phase, bookmarks,
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
972 latestTag):
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
973 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
974 Private method to generate a log tree entry.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
975
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
976 @param author author info (string)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
977 @param date date info (string)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
978 @param message text of the log message (list of strings)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
979 @param revision revision info (string)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
980 @param changedPaths list of dictionary objects containing
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
981 info about the changed files/directories
179
09260f69bf37 Included parents info in log browser items.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
982 @param parents list of parent revisions (list of integers)
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
983 @param branches list of branches (list of strings)
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
984 @param tags list of tags (string)
2444
0fdd7f9ebd0b Fixed a source docu and regenerated them.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2405
diff changeset
985 @param phase phase of the entry (string)
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
986 @param bookmarks list of bookmarks (string)
5459
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
987 @param latestTag the latest tag(s) reachable from the changeset
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
988 (list of strings)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
989 @return reference to the generated item (QTreeWidgetItem)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
990 """
5451
8ee36e8a315f Added the capability to configure the length of the log message shown in the message column of the Mercurial log browser list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5450
diff changeset
991 logMessageColumnWidth = self.vcs.getPlugin().getPreferences(
8ee36e8a315f Added the capability to configure the length of the log message shown in the message column of the Mercurial log browser list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5450
diff changeset
992 "LogMessageColumnWidth")
8ee36e8a315f Added the capability to configure the length of the log message shown in the message column of the Mercurial log browser list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5450
diff changeset
993 msgtxt = ""
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
994 for line in message:
5451
8ee36e8a315f Added the capability to configure the length of the log message shown in the message column of the Mercurial log browser list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5450
diff changeset
995 if ". " in line:
8ee36e8a315f Added the capability to configure the length of the log message shown in the message column of the Mercurial log browser list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5450
diff changeset
996 msgtxt += " " + line.strip().split(". ", 1)[0] + "."
8ee36e8a315f Added the capability to configure the length of the log message shown in the message column of the Mercurial log browser list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5450
diff changeset
997 break
8ee36e8a315f Added the capability to configure the length of the log message shown in the message column of the Mercurial log browser list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5450
diff changeset
998 else:
8ee36e8a315f Added the capability to configure the length of the log message shown in the message column of the Mercurial log browser list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5450
diff changeset
999 msgtxt += " " + line.strip()
8ee36e8a315f Added the capability to configure the length of the log message shown in the message column of the Mercurial log browser list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5450
diff changeset
1000 if len(msgtxt) > logMessageColumnWidth:
8ee36e8a315f Added the capability to configure the length of the log message shown in the message column of the Mercurial log browser list.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5450
diff changeset
1001 msgtxt = "{0}...".format(msgtxt[:logMessageColumnWidth])
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1002
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1003 rev, node = revision.split(":")
921
ae00e4fbcec0 Prepared Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
1004 if rev in self.__closedBranchesRevs:
3554
9ca56a89aec5 A liitle enhancement and a fix to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3546
diff changeset
1005 closedStr = self.ClosedIndicator
921
ae00e4fbcec0 Prepared Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
1006 else:
ae00e4fbcec0 Prepared Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
1007 closedStr = ""
4409
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
1008 if phase in self.phases:
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
1009 phaseStr = self.phases[phase]
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
1010 else:
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
1011 phaseStr = phase
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
1012 columnLabels = [
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 932
diff changeset
1013 "",
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 932
diff changeset
1014 branches[0] + closedStr,
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 932
diff changeset
1015 "{0:>7}:{1}".format(rev, node),
4409
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
1016 phaseStr,
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 932
diff changeset
1017 author,
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 932
diff changeset
1018 date,
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 932
diff changeset
1019 msgtxt,
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 932
diff changeset
1020 ", ".join(tags),
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
1021 ]
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
1022 if bookmarks is not None:
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
1023 columnLabels.append(", ".join(bookmarks))
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
1024 itm = QTreeWidgetItem(self.logTree, columnLabels)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1025
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 932
diff changeset
1026 itm.setForeground(self.BranchColumn,
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1027 QBrush(QColor(self.__branchColor(branches[0]))))
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1028
187
d7916a2e31d6 Added some more refinements to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1029 if not self.projectMode:
d7916a2e31d6 Added some more refinements to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1030 parents = self.__getParents(rev)
208
26ed553ad4fb Corrected the diff functions of the log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
1031 if not parents:
26ed553ad4fb Corrected the diff functions of the log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
1032 parents = [int(rev) - 1]
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1033 column, color, edges = self.__generateEdges(int(rev), parents)
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1034
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1035 itm.setData(0, self.__messageRole, message)
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1036 itm.setData(0, self.__changesRole, changedPaths)
210
b1a204f22291 Fixed a few issues with the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 208
diff changeset
1037 itm.setData(0, self.__edgesRole, edges)
5459
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
1038 itm.setData(0, self.__latestTagRole, latestTag)
3242
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1039 if parents == [-1]:
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1040 itm.setData(0, self.__parentsRole, [])
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1041 else:
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1042 itm.setData(0, self.__parentsRole, parents)
5445
b24720037f1f Added clickable links to the Mercurial log browser details pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5444
diff changeset
1043 for parent in parents:
b24720037f1f Added clickable links to the Mercurial log browser details pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5444
diff changeset
1044 self.__childrenInfo[parent].append(int(rev))
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1045 itm.setData(0, self.__incomingRole, self.commandMode == "incoming")
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1046
187
d7916a2e31d6 Added some more refinements to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1047 if self.logTree.topLevelItemCount() > 1:
d7916a2e31d6 Added some more refinements to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1048 topedges = \
932
efd23a913a09 Finished extending the Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 921
diff changeset
1049 self.logTree.topLevelItem(
efd23a913a09 Finished extending the Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 921
diff changeset
1050 self.logTree.indexOfTopLevelItem(itm) - 1)\
187
d7916a2e31d6 Added some more refinements to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1051 .data(0, self.__edgesRole)
d7916a2e31d6 Added some more refinements to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1052 else:
d7916a2e31d6 Added some more refinements to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1053 topedges = None
d7916a2e31d6 Added some more refinements to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1054
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 932
diff changeset
1055 icon = self.__generateIcon(column, color, edges, topedges,
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 932
diff changeset
1056 QColor(self.__branchColor(branches[0])),
7183
4ac1c9daa90b HgStatusDialog: commitMerge and abortMerge actions added
Christos Sevastiadis <csevast@gmail.com>
parents: 7142
diff changeset
1057 rev in self.__projectWorkingDirParents,
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1058 rev in self.__closedBranchesRevs,
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1059 phase == "draft")
187
d7916a2e31d6 Added some more refinements to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1060 itm.setIcon(0, icon)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1061
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1062 try:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1063 self.__lastRev = int(revision.split(":")[0])
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1064 except ValueError:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1065 self.__lastRev = 0
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1066
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1067 return itm
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1068
5444
4799e2cf8401 Corrected the Mercurial log browser window refresh action to load as much entries as are already shown (i.e. do not start from scratch).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1069 def __getLogEntries(self, startRev=None, noEntries=0):
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1070 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1071 Private method to retrieve log entries from the repository.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1072
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1073 @param startRev revision number to start from (integer, string)
5444
4799e2cf8401 Corrected the Mercurial log browser window refresh action to load as much entries as are already shown (i.e. do not start from scratch).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1074 @keyparam noEntries number of entries to get (0 = default) (int)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1075 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1076 self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1077 self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(True)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1078 self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1079 QApplication.processEvents()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1080
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1081 QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1082 QApplication.processEvents()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1083
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1084 self.buf = []
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1085 self.cancelled = False
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1086 self.errors.clear()
1269
7b4d9f1d7c6c Fixed an issue in the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1265
diff changeset
1087 self.intercept = False
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1088
5444
4799e2cf8401 Corrected the Mercurial log browser window refresh action to load as much entries as are already shown (i.e. do not start from scratch).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1089 if noEntries == 0:
4799e2cf8401 Corrected the Mercurial log browser window refresh action to load as much entries as are already shown (i.e. do not start from scratch).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1090 noEntries = self.limitSpinBox.value()
4799e2cf8401 Corrected the Mercurial log browser window refresh action to load as much entries as are already shown (i.e. do not start from scratch).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1091
3242
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1092 preargs = []
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3287
diff changeset
1093 args = self.vcs.initCommand(self.commandMode)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1094 args.append('--verbose')
779
04c3a6026543 Fixed an issue where long incoming patchsets were not shown completely.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 537
diff changeset
1095 if self.commandMode not in ("incoming", "outgoing"):
04c3a6026543 Fixed an issue where long incoming patchsets were not shown completely.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 537
diff changeset
1096 args.append('--limit')
5444
4799e2cf8401 Corrected the Mercurial log browser window refresh action to load as much entries as are already shown (i.e. do not start from scratch).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1097 args.append(str(noEntries))
187
d7916a2e31d6 Added some more refinements to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1098 if self.commandMode in ("incoming", "outgoing"):
181
4af57f97c1bc Added code to choose the way incoming and outgoing logs are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1099 args.append("--newest-first")
1906
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1637
diff changeset
1100 if self.vcs.hasSubrepositories():
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1637
diff changeset
1101 args.append("--subrepos")
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1102 if startRev is not None:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1103 args.append('--rev')
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1104 args.append('{0}:0'.format(startRev))
187
d7916a2e31d6 Added some more refinements to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1105 if not self.projectMode and \
d7916a2e31d6 Added some more refinements to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1106 not self.fname == "." and \
d7916a2e31d6 Added some more refinements to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1107 not self.stopCheckBox.isChecked():
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1108 args.append('--follow')
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
1109 if self.commandMode == "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
1110 args.append('--copies')
5104
0b9420dc1093 Removed the support for the obsolete transplant Mercuril extension and made v3.0 the minimum Mercurial version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
1111 args.append('--template')
0b9420dc1093 Removed the support for the obsolete transplant Mercuril extension and made v3.0 the minimum Mercurial version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
1112 args.append(os.path.join(os.path.dirname(__file__),
0b9420dc1093 Removed the support for the obsolete transplant Mercuril extension and made v3.0 the minimum Mercurial version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
1113 "templates",
0b9420dc1093 Removed the support for the obsolete transplant Mercuril extension and made v3.0 the minimum Mercurial version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
1114 "logBrowserBookmarkPhase.tmpl"))
215
e8978dca44af Fixed issues with non-existing bundle caches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
1115 if self.commandMode == "incoming":
3287
c3d784c057b3 Changed the Subversion Log Browser dialogs to maintain its position after being closed and fixed a few issues in the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3283
diff changeset
1116 if self.__bundle:
c3d784c057b3 Changed the Subversion Log Browser dialogs to maintain its position after being closed and fixed a few issues in the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3283
diff changeset
1117 args.append(self.__bundle)
1906
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1637
diff changeset
1118 elif not self.vcs.hasSubrepositories():
213
42bb97ff0bbb Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 210
diff changeset
1119 project = e5App().getObject("Project")
42bb97ff0bbb Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 210
diff changeset
1120 self.vcs.bundleFile = os.path.join(
42bb97ff0bbb Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 210
diff changeset
1121 project.getProjectManagementDir(), "hg-bundle.hg")
3242
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1122 if os.path.exists(self.vcs.bundleFile):
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1123 os.remove(self.vcs.bundleFile)
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1124 preargs = args[:]
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1125 preargs.append("--quiet")
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1126 preargs.append('--bundle')
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1127 preargs.append(self.vcs.bundleFile)
213
42bb97ff0bbb Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 210
diff changeset
1128 args.append(self.vcs.bundleFile)
187
d7916a2e31d6 Added some more refinements to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1129 if not self.projectMode:
3287
c3d784c057b3 Changed the Subversion Log Browser dialogs to maintain its position after being closed and fixed a few issues in the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3283
diff changeset
1130 args.append(self.__filename)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1131
1241
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
1132 if self.__hgClient:
1242
dfb9609caf51 Continued implementing an interface to the Mercurial command server. Modified client all all dialogs done so far to provide a cancel capability..
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1241
diff changeset
1133 self.inputGroup.setEnabled(False)
dfb9609caf51 Continued implementing an interface to the Mercurial command server. Modified client all all dialogs done so far to provide a cancel capability..
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1241
diff changeset
1134 self.inputGroup.hide()
dfb9609caf51 Continued implementing an interface to the Mercurial command server. Modified client all all dialogs done so far to provide a cancel capability..
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1241
diff changeset
1135
3242
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1136 if preargs:
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1137 out, err = self.__hgClient.runcommand(preargs)
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1138 else:
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1139 err = ""
1241
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
1140 if err:
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1141 if self.commandMode == "incoming" and \
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1142 self.initialCommandMode == "full_log":
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1143 # ignore the error
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1144 self.commandMode = "log"
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1145 else:
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1146 self.__showError(err)
3249
8f22bfa586b1 Another fix for the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3247
diff changeset
1147 elif self.commandMode != "incoming" or \
3265
972d6be9dde7 Fixed issues in the Mercurial interface handling bundle files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3255
diff changeset
1148 (self.vcs.bundleFile and
3268
8bfa66a9138a Fixed issues in the Mercurial interface handling bundle files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3265
diff changeset
1149 os.path.exists(self.vcs.bundleFile)) or \
3287
c3d784c057b3 Changed the Subversion Log Browser dialogs to maintain its position after being closed and fixed a few issues in the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3283
diff changeset
1150 self.__bundle:
3242
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1151 out, err = self.__hgClient.runcommand(args)
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1152 self.buf = out.splitlines(True)
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1153 if err:
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1154 self.__showError(err)
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1155 self.__processBuffer()
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1156 elif self.commandMode == "incoming" and \
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1157 self.initialCommandMode == "full_log":
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1158 # no incoming changesets, just switch to log mode
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1159 self.commandMode = "log"
1241
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
1160 self.__finish()
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
1161 else:
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
1162 self.process.kill()
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
1163
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
1164 self.process.setWorkingDirectory(self.repodir)
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
1165
3242
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1166 if preargs:
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1167 process = QProcess()
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1168 process.setWorkingDirectory(self.repodir)
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1169 process.start('hg', args)
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1170 procStarted = process.waitForStarted(5000)
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1171 if procStarted:
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1172 process.waitForFinished(30000)
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1173
3330
955e15f0ecce Fixed an issue in the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3317
diff changeset
1174 if self.commandMode != "incoming" or \
3359
6b6c224d67d6 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3330
diff changeset
1175 (self.vcs.bundleFile and
3330
955e15f0ecce Fixed an issue in the Mercurial log dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3317
diff changeset
1176 os.path.exists(self.vcs.bundleFile)) or \
3287
c3d784c057b3 Changed the Subversion Log Browser dialogs to maintain its position after being closed and fixed a few issues in the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3283
diff changeset
1177 self.__bundle:
3247
ed79e48ba0b4 Fix for the Mercurial log dialogs for checking incoming changes when there are none.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3243
diff changeset
1178 self.process.start('hg', args)
ed79e48ba0b4 Fix for the Mercurial log dialogs for checking incoming changes when there are none.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3243
diff changeset
1179 procStarted = self.process.waitForStarted(5000)
ed79e48ba0b4 Fix for the Mercurial log dialogs for checking incoming changes when there are none.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3243
diff changeset
1180 if not procStarted:
ed79e48ba0b4 Fix for the Mercurial log dialogs for checking incoming changes when there are none.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3243
diff changeset
1181 self.inputGroup.setEnabled(False)
ed79e48ba0b4 Fix for the Mercurial log dialogs for checking incoming changes when there are none.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3243
diff changeset
1182 self.inputGroup.hide()
ed79e48ba0b4 Fix for the Mercurial log dialogs for checking incoming changes when there are none.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3243
diff changeset
1183 E5MessageBox.critical(
ed79e48ba0b4 Fix for the Mercurial log dialogs for checking incoming changes when there are none.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3243
diff changeset
1184 self,
ed79e48ba0b4 Fix for the Mercurial log dialogs for checking incoming changes when there are none.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3243
diff changeset
1185 self.tr('Process Generation Error'),
ed79e48ba0b4 Fix for the Mercurial log dialogs for checking incoming changes when there are none.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3243
diff changeset
1186 self.tr(
ed79e48ba0b4 Fix for the Mercurial log dialogs for checking incoming changes when there are none.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3243
diff changeset
1187 'The process {0} could not be started. '
ed79e48ba0b4 Fix for the Mercurial log dialogs for checking incoming changes when there are none.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3243
diff changeset
1188 'Ensure, that it is in the search path.'
ed79e48ba0b4 Fix for the Mercurial log dialogs for checking incoming changes when there are none.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3243
diff changeset
1189 ).format('hg'))
ed79e48ba0b4 Fix for the Mercurial log dialogs for checking incoming changes when there are none.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3243
diff changeset
1190 else:
ed79e48ba0b4 Fix for the Mercurial log dialogs for checking incoming changes when there are none.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3243
diff changeset
1191 self.__finish()
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1192
5444
4799e2cf8401 Corrected the Mercurial log browser window refresh action to load as much entries as are already shown (i.e. do not start from scratch).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1193 def start(self, fn, bundle=None, isFile=False, noEntries=0):
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1194 """
198
7ab8e126f404 Fixed a few issues with the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
1195 Public slot to start the hg log command.
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1196
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1197 @param fn filename to show the log for (string)
3283
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3279
diff changeset
1198 @keyparam bundle name of a bundle file (string)
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3279
diff changeset
1199 @keyparam isFile flag indicating log for a file is to be shown
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3279
diff changeset
1200 (boolean)
5444
4799e2cf8401 Corrected the Mercurial log browser window refresh action to load as much entries as are already shown (i.e. do not start from scratch).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1201 @keyparam noEntries number of entries to get (0 = default) (int)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1202 """
3287
c3d784c057b3 Changed the Subversion Log Browser dialogs to maintain its position after being closed and fixed a few issues in the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3283
diff changeset
1203 self.__bundle = bundle
c3d784c057b3 Changed the Subversion Log Browser dialogs to maintain its position after being closed and fixed a few issues in the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3283
diff changeset
1204 self.__isFile = isFile
3283
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3279
diff changeset
1205
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1206 if self.initialCommandMode == "full_log":
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1207 if isFile:
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1208 self.commandMode = "log"
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1209 self.__finishCallbacks = []
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1210 else:
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1211 self.commandMode = "incoming"
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1212 self.__addFinishCallback(self.on_nextButton_clicked)
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1213
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1214 self.sbsSelectLabel.clear()
3283
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3279
diff changeset
1215
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1216 self.errorGroup.hide()
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1217 self.errors.clear()
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1218 QApplication.processEvents()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1219
3283
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3279
diff changeset
1220 self.__initData()
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3279
diff changeset
1221
3287
c3d784c057b3 Changed the Subversion Log Browser dialogs to maintain its position after being closed and fixed a few issues in the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3283
diff changeset
1222 self.__filename = fn
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1223 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
1224
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1225 # find the root of the repo
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1226 self.repodir = self.dname
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1227 while not os.path.isdir(os.path.join(self.repodir, self.vcs.adminDir)):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1228 self.repodir = os.path.dirname(self.repodir)
1324
370e8b9cfc23 Fixed an issue introduced by the last fix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1319
diff changeset
1229 if os.path.splitdrive(self.repodir)[1] == os.sep:
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1230 return
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1231
187
d7916a2e31d6 Added some more refinements to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1232 self.projectMode = (self.fname == "." and self.dname == self.repodir)
d7916a2e31d6 Added some more refinements to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 185
diff changeset
1233 self.stopCheckBox.setDisabled(self.projectMode or self.fname == ".")
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1234 self.activateWindow()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1235 self.raise_()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1236
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1237 self.logTree.clear()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1238 self.__started = True
243
a1d982e68edf Fixed an issue introduced by the latest change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 241
diff changeset
1239 self.__identifyProject()
921
ae00e4fbcec0 Prepared Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
1240 self.__getClosedBranches()
7010
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
1241 self.__getHeads()
5444
4799e2cf8401 Corrected the Mercurial log browser window refresh action to load as much entries as are already shown (i.e. do not start from scratch).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1242 self.__getLogEntries(noEntries=noEntries)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1243
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1244 def __procFinished(self, exitCode, exitStatus):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1245 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1246 Private slot connected to the finished signal.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1247
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1248 @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
1249 @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
1250 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1251 self.__processBuffer()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1252 self.__finish()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1253
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1254 def __finish(self):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1255 """
932
efd23a913a09 Finished extending the Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 921
diff changeset
1256 Private slot called when the process finished or the user pressed
efd23a913a09 Finished extending the Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 921
diff changeset
1257 the button.
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1258 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1259 if self.process is not None and \
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1260 self.process.state() != QProcess.NotRunning:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1261 self.process.terminate()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1262 QTimer.singleShot(2000, self.process.kill)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1263 self.process.waitForFinished(3000)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1264
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1265 QApplication.restoreOverrideCursor()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1266
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1267 self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1268 self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(False)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1269 self.buttonBox.button(QDialogButtonBox.Close).setDefault(True)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1270
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1271 self.inputGroup.setEnabled(False)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1272 self.inputGroup.hide()
1086
b48ce064b224 Enhanced the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
1273 self.refreshButton.setEnabled(True)
5450
a5d5e757efcf Fixed a bug in the log browser dialogs causing an endless loop.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5449
diff changeset
1274
a5d5e757efcf Fixed a bug in the log browser dialogs causing an endless loop.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5449
diff changeset
1275 while self.__finishCallbacks:
a5d5e757efcf Fixed a bug in the log browser dialogs causing an endless loop.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5449
diff changeset
1276 self.__finishCallbacks.pop(0)()
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1277
3317
d7639a86e90f Added support for Mercurial outgoing with largefiles by looking for a .hglf path prefix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3315
diff changeset
1278 def __modifyForLargeFiles(self, filename):
d7639a86e90f Added support for Mercurial outgoing with largefiles by looking for a .hglf path prefix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3315
diff changeset
1279 """
d7639a86e90f Added support for Mercurial outgoing with largefiles by looking for a .hglf path prefix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3315
diff changeset
1280 Private method to convert the displayed file name for a large file.
d7639a86e90f Added support for Mercurial outgoing with largefiles by looking for a .hglf path prefix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3315
diff changeset
1281
d7639a86e90f Added support for Mercurial outgoing with largefiles by looking for a .hglf path prefix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3315
diff changeset
1282 @param filename file name to be processed (string)
d7639a86e90f Added support for Mercurial outgoing with largefiles by looking for a .hglf path prefix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3315
diff changeset
1283 @return processed file name (string)
d7639a86e90f Added support for Mercurial outgoing with largefiles by looking for a .hglf path prefix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3315
diff changeset
1284 """
d7639a86e90f Added support for Mercurial outgoing with largefiles by looking for a .hglf path prefix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3315
diff changeset
1285 if filename.startswith((self.LargefilesCacheL, self.LargefilesCacheW)):
d7639a86e90f Added support for Mercurial outgoing with largefiles by looking for a .hglf path prefix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3315
diff changeset
1286 return self.tr("{0} (large file)").format(
d7639a86e90f Added support for Mercurial outgoing with largefiles by looking for a .hglf path prefix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3315
diff changeset
1287 self.PathSeparatorRe.split(filename, 1)[1])
d7639a86e90f Added support for Mercurial outgoing with largefiles by looking for a .hglf path prefix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3315
diff changeset
1288 else:
d7639a86e90f Added support for Mercurial outgoing with largefiles by looking for a .hglf path prefix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3315
diff changeset
1289 return filename
d7639a86e90f Added support for Mercurial outgoing with largefiles by looking for a .hglf path prefix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3315
diff changeset
1290
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1291 def __processBuffer(self):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1292 """
198
7ab8e126f404 Fixed a few issues with the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 187
diff changeset
1293 Private method to process the buffered output of the hg log command.
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1294 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1295 noEntries = 0
1605
899cb1241de5 Added support for Phases as of Mercurial 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1532
diff changeset
1296 log = {"message": [], "bookmarks": None, "phase": ""}
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1297 changedPaths = []
181
4af57f97c1bc Added code to choose the way incoming and outgoing logs are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1298 initialText = True
203
0bd3912f3c5f Refined the Mercurial log browser and log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 201
diff changeset
1299 fileCopies = {}
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1300 for s in self.buf:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1301 if s != "@@@\n":
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1302 try:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1303 key, value = s.split("|", 1)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1304 except ValueError:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1305 key = ""
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1306 value = s
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1307 if key == "change":
181
4af57f97c1bc Added code to choose the way incoming and outgoing logs are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1308 initialText = False
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1309 log["revision"] = value.strip()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1310 elif key == "user":
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1311 log["author"] = value.strip()
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1312 elif key == "parents":
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1313 log["parents"] = \
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 932
diff changeset
1314 [int(x.split(":", 1)[0])
932
efd23a913a09 Finished extending the Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 921
diff changeset
1315 for x in value.strip().split()]
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1316 elif key == "date":
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1317 log["date"] = " ".join(value.strip().split()[:2])
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1318 elif key == "description":
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1319 log["message"].append(value.strip())
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1320 elif key == "file_adds":
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1321 if value.strip():
203
0bd3912f3c5f Refined the Mercurial log browser and log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 201
diff changeset
1322 for f in value.strip().split(", "):
0bd3912f3c5f Refined the Mercurial log browser and log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 201
diff changeset
1323 if f in fileCopies:
0bd3912f3c5f Refined the Mercurial log browser and log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 201
diff changeset
1324 changedPaths.append({
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 932
diff changeset
1325 "action": "A",
3317
d7639a86e90f Added support for Mercurial outgoing with largefiles by looking for a .hglf path prefix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3315
diff changeset
1326 "path": self.__modifyForLargeFiles(f),
d7639a86e90f Added support for Mercurial outgoing with largefiles by looking for a .hglf path prefix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3315
diff changeset
1327 "copyfrom": self.__modifyForLargeFiles(
d7639a86e90f Added support for Mercurial outgoing with largefiles by looking for a .hglf path prefix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3315
diff changeset
1328 fileCopies[f]),
203
0bd3912f3c5f Refined the Mercurial log browser and log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 201
diff changeset
1329 })
0bd3912f3c5f Refined the Mercurial log browser and log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 201
diff changeset
1330 else:
0bd3912f3c5f Refined the Mercurial log browser and log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 201
diff changeset
1331 changedPaths.append({
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 932
diff changeset
1332 "action": "A",
3317
d7639a86e90f Added support for Mercurial outgoing with largefiles by looking for a .hglf path prefix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3315
diff changeset
1333 "path": self.__modifyForLargeFiles(f),
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 932
diff changeset
1334 "copyfrom": "",
203
0bd3912f3c5f Refined the Mercurial log browser and log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 201
diff changeset
1335 })
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1336 elif key == "files_mods":
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1337 if value.strip():
203
0bd3912f3c5f Refined the Mercurial log browser and log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 201
diff changeset
1338 for f in value.strip().split(", "):
0bd3912f3c5f Refined the Mercurial log browser and log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 201
diff changeset
1339 changedPaths.append({
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 932
diff changeset
1340 "action": "M",
3317
d7639a86e90f Added support for Mercurial outgoing with largefiles by looking for a .hglf path prefix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3315
diff changeset
1341 "path": self.__modifyForLargeFiles(f),
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 932
diff changeset
1342 "copyfrom": "",
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1343 })
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1344 elif key == "file_dels":
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1345 if value.strip():
203
0bd3912f3c5f Refined the Mercurial log browser and log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 201
diff changeset
1346 for f in value.strip().split(", "):
0bd3912f3c5f Refined the Mercurial log browser and log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 201
diff changeset
1347 changedPaths.append({
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 932
diff changeset
1348 "action": "D",
3317
d7639a86e90f Added support for Mercurial outgoing with largefiles by looking for a .hglf path prefix.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3315
diff changeset
1349 "path": self.__modifyForLargeFiles(f),
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 932
diff changeset
1350 "copyfrom": "",
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1351 })
203
0bd3912f3c5f Refined the Mercurial log browser and log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 201
diff changeset
1352 elif key == "file_copies":
0bd3912f3c5f Refined the Mercurial log browser and log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 201
diff changeset
1353 if value.strip():
0bd3912f3c5f Refined the Mercurial log browser and log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 201
diff changeset
1354 for entry in value.strip().split(", "):
0bd3912f3c5f Refined the Mercurial log browser and log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 201
diff changeset
1355 newName, oldName = entry[:-1].split(" (")
0bd3912f3c5f Refined the Mercurial log browser and log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 201
diff changeset
1356 fileCopies[newName] = oldName
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1357 elif key == "branches":
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1358 if value.strip():
203
0bd3912f3c5f Refined the Mercurial log browser and log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 201
diff changeset
1359 log["branches"] = value.strip().split(", ")
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1360 else:
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1361 log["branches"] = ["default"]
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1362 elif key == "tags":
203
0bd3912f3c5f Refined the Mercurial log browser and log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 201
diff changeset
1363 log["tags"] = value.strip().split(", ")
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
1364 elif key == "bookmarks":
1019
d8a9697f78d1 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1017
diff changeset
1365 log["bookmarks"] = value.strip().split(", ")
1605
899cb1241de5 Added support for Phases as of Mercurial 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1532
diff changeset
1366 elif key == "phase":
899cb1241de5 Added support for Phases as of Mercurial 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1532
diff changeset
1367 log["phase"] = value.strip()
5459
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
1368 elif key == "latesttag":
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
1369 tag = value.strip()
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
1370 if tag == "null":
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
1371 log["latesttag"] = []
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
1372 elif ":" in tag:
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
1373 log["latesttag"] = [
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
1374 t.strip() for t in tag.split(":") if t.strip()]
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
1375 else:
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
1376 log["latesttag"] = [tag]
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1377 else:
181
4af57f97c1bc Added code to choose the way incoming and outgoing logs are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1378 if initialText:
4af57f97c1bc Added code to choose the way incoming and outgoing logs are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
1379 continue
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1380 if value.strip():
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1381 log["message"].append(value.strip())
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1382 else:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1383 if len(log) > 1:
3023
34ce20603bf7 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
1384 self.__generateLogItem(
34ce20603bf7 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
1385 log["author"], log["date"],
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
1386 log["message"], log["revision"], changedPaths,
1061
3e21869872e3 Fixed PEP-8 related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1019
diff changeset
1387 log["parents"], log["branches"], log["tags"],
5459
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
1388 log["phase"], log["bookmarks"], log["latesttag"])
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1389 dt = QDate.fromString(log["date"], Qt.ISODate)
932
efd23a913a09 Finished extending the Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 921
diff changeset
1390 if not self.__maxDate.isValid() and \
efd23a913a09 Finished extending the Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 921
diff changeset
1391 not self.__minDate.isValid():
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1392 self.__maxDate = dt
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1393 self.__minDate = dt
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1394 else:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1395 if self.__maxDate < dt:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1396 self.__maxDate = dt
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1397 if self.__minDate > dt:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1398 self.__minDate = dt
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1399 noEntries += 1
1605
899cb1241de5 Added support for Phases as of Mercurial 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1532
diff changeset
1400 log = {"message": [], "bookmarks": None, "phase": ""}
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1401 changedPaths = []
203
0bd3912f3c5f Refined the Mercurial log browser and log dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 201
diff changeset
1402 fileCopies = {}
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1403
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1404 self.__resizeColumnsLog()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1405
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1406 if self.__started:
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1407 if not self.__finishCallbacks:
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1408 # we are really done
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1409 if self.__selectedRevisions:
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1410 foundItems = self.logTree.findItems(
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1411 self.__selectedRevisions[0], Qt.MatchExactly,
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1412 self.RevisionColumn)
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1413 if foundItems:
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1414 self.logTree.setCurrentItem(foundItems[0])
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1415 else:
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1416 self.logTree.setCurrentItem(
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1417 self.logTree.topLevelItem(0))
7194
b184e8ca7219 HgLogBrowserDialog: set the selected item on first invocation to the first workspace parent.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7187
diff changeset
1418 elif self.__projectWorkingDirParents:
b184e8ca7219 HgLogBrowserDialog: set the selected item on first invocation to the first workspace parent.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7187
diff changeset
1419 for rev in self.__projectWorkingDirParents:
b184e8ca7219 HgLogBrowserDialog: set the selected item on first invocation to the first workspace parent.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7187
diff changeset
1420 # rev string format must match with the format of the
b184e8ca7219 HgLogBrowserDialog: set the selected item on first invocation to the first workspace parent.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7187
diff changeset
1421 # __generateLogItem() method
b184e8ca7219 HgLogBrowserDialog: set the selected item on first invocation to the first workspace parent.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7187
diff changeset
1422 items = self.logTree.findItems(
b184e8ca7219 HgLogBrowserDialog: set the selected item on first invocation to the first workspace parent.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7187
diff changeset
1423 "{0:>7}:".format(rev), Qt.MatchStartsWith,
b184e8ca7219 HgLogBrowserDialog: set the selected item on first invocation to the first workspace parent.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7187
diff changeset
1424 self.RevisionColumn)
b184e8ca7219 HgLogBrowserDialog: set the selected item on first invocation to the first workspace parent.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7187
diff changeset
1425 if items:
b184e8ca7219 HgLogBrowserDialog: set the selected item on first invocation to the first workspace parent.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7187
diff changeset
1426 self.logTree.setCurrentItem(items[0])
b184e8ca7219 HgLogBrowserDialog: set the selected item on first invocation to the first workspace parent.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7187
diff changeset
1427 break
b184e8ca7219 HgLogBrowserDialog: set the selected item on first invocation to the first workspace parent.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7187
diff changeset
1428 else:
b184e8ca7219 HgLogBrowserDialog: set the selected item on first invocation to the first workspace parent.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7187
diff changeset
1429 self.logTree.setCurrentItem(
b184e8ca7219 HgLogBrowserDialog: set the selected item on first invocation to the first workspace parent.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7187
diff changeset
1430 self.logTree.topLevelItem(0))
5512
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1431 else:
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1432 self.logTree.setCurrentItem(self.logTree.topLevelItem(0))
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1433 self.__started = False
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1434
781
2f85b5573e62 Changed the Mercurial log browser to show incoming/outgoing changesets with the current log (by pressing the next button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 537
diff changeset
1435 if self.commandMode in ("incoming", "outgoing"):
2f85b5573e62 Changed the Mercurial log browser to show incoming/outgoing changesets with the current log (by pressing the next button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 537
diff changeset
1436 self.commandMode = "log" # switch to log mode
2f85b5573e62 Changed the Mercurial log browser to show incoming/outgoing changesets with the current log (by pressing the next button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 537
diff changeset
1437 if self.__lastRev > 0:
2f85b5573e62 Changed the Mercurial log browser to show incoming/outgoing changesets with the current log (by pressing the next button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 537
diff changeset
1438 self.nextButton.setEnabled(True)
2f85b5573e62 Changed the Mercurial log browser to show incoming/outgoing changesets with the current log (by pressing the next button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 537
diff changeset
1439 self.limitSpinBox.setEnabled(True)
2f85b5573e62 Changed the Mercurial log browser to show incoming/outgoing changesets with the current log (by pressing the next button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 537
diff changeset
1440 else:
2f85b5573e62 Changed the Mercurial log browser to show incoming/outgoing changesets with the current log (by pressing the next button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 537
diff changeset
1441 if noEntries < self.limitSpinBox.value() and not self.cancelled:
2f85b5573e62 Changed the Mercurial log browser to show incoming/outgoing changesets with the current log (by pressing the next button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 537
diff changeset
1442 self.nextButton.setEnabled(False)
2f85b5573e62 Changed the Mercurial log browser to show incoming/outgoing changesets with the current log (by pressing the next button).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 537
diff changeset
1443 self.limitSpinBox.setEnabled(False)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1444
316
b7e499650928 Added a branch filter to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 296
diff changeset
1445 # update the log filters
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1446 self.__filterLogsEnabled = False
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1447 self.fromDate.setMinimumDate(self.__minDate)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1448 self.fromDate.setMaximumDate(self.__maxDate)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1449 self.fromDate.setDate(self.__minDate)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1450 self.toDate.setMinimumDate(self.__minDate)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1451 self.toDate.setMaximumDate(self.__maxDate)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1452 self.toDate.setDate(self.__maxDate)
316
b7e499650928 Added a branch filter to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 296
diff changeset
1453
b7e499650928 Added a branch filter to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 296
diff changeset
1454 branchFilter = self.branchCombo.currentText()
b7e499650928 Added a branch filter to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 296
diff changeset
1455 if not branchFilter:
b7e499650928 Added a branch filter to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 296
diff changeset
1456 branchFilter = self.__allBranchesFilter
b7e499650928 Added a branch filter to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 296
diff changeset
1457 self.branchCombo.clear()
b7e499650928 Added a branch filter to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 296
diff changeset
1458 self.branchCombo.addItems(
b7e499650928 Added a branch filter to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 296
diff changeset
1459 [self.__allBranchesFilter] + sorted(self.__branchColors.keys()))
932
efd23a913a09 Finished extending the Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 921
diff changeset
1460 self.branchCombo.setCurrentIndex(
efd23a913a09 Finished extending the Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 921
diff changeset
1461 self.branchCombo.findText(branchFilter))
316
b7e499650928 Added a branch filter to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 296
diff changeset
1462
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1463 self.__filterLogsEnabled = True
4059
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
1464 if self.__actionMode() == "filter":
4080
d4ba5fab5557 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4060
diff changeset
1465 self.__filterLogs()
3279
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
1466 self.__updateToolMenuActions()
3927
3e1dc0fb26ed Enhanced the Mercurial log browser a little bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3909
diff changeset
1467
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1468 # restore selected item
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1469 if self.__selectedRevisions and not self.__finishCallbacks:
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1470 # we are really done
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1471 for revision in self.__selectedRevisions:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1472 items = self.logTree.findItems(
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1473 revision, Qt.MatchExactly, self.RevisionColumn)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1474 if items:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1475 items[0].setSelected(True)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1476 self.__selectedRevisions = []
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1477
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1478 def __readStdout(self):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1479 """
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 932
diff changeset
1480 Private slot to handle the readyReadStandardOutput signal.
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1481
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1482 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
1483 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1484 self.process.setReadChannel(QProcess.StandardOutput)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1485
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1486 while self.process.canReadLine():
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3287
diff changeset
1487 line = str(self.process.readLine(), self.vcs.getEncoding(),
3036
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1488 'replace')
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1489 self.buf.append(line)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1490
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1491 def __readStderr(self):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1492 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1493 Private slot to handle the readyReadStandardError signal.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1494
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1495 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
1496 error pane.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1497 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1498 if self.process is not None:
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 932
diff changeset
1499 s = str(self.process.readAllStandardError(),
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3287
diff changeset
1500 self.vcs.getEncoding(), 'replace')
1241
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
1501 self.__showError(s)
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
1502
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
1503 def __showError(self, out):
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
1504 """
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
1505 Private slot to show some error.
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
1506
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
1507 @param out error to be shown (string)
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
1508 """
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
1509 self.errorGroup.show()
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
1510 self.errors.insertPlainText(out)
09c6155ee612 Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
1511 self.errors.ensureCursorVisible()
5463
d84b854d59c0 Changed the status and log browser dialogs to show the input widgets only when something was written to stderr in order to get less flicker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5459
diff changeset
1512
d84b854d59c0 Changed the status and log browser dialogs to show the input widgets only when something was written to stderr in order to get less flicker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5459
diff changeset
1513 if not self.__hgClient:
d84b854d59c0 Changed the status and log browser dialogs to show the input widgets only when something was written to stderr in order to get less flicker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5459
diff changeset
1514 # show input in case the process asked for some input
d84b854d59c0 Changed the status and log browser dialogs to show the input widgets only when something was written to stderr in order to get less flicker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5459
diff changeset
1515 self.inputGroup.setEnabled(True)
d84b854d59c0 Changed the status and log browser dialogs to show the input widgets only when something was written to stderr in order to get less flicker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5459
diff changeset
1516 self.inputGroup.show()
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1517
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1518 def on_buttonBox_clicked(self, button):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1519 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1520 Private slot called by a button of the button box clicked.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1521
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1522 @param button button that was clicked (QAbstractButton)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1523 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1524 if button == self.buttonBox.button(QDialogButtonBox.Close):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1525 self.close()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1526 elif button == self.buttonBox.button(QDialogButtonBox.Cancel):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1527 self.cancelled = True
1242
dfb9609caf51 Continued implementing an interface to the Mercurial command server. Modified client all all dialogs done so far to provide a cancel capability..
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1241
diff changeset
1528 if self.__hgClient:
dfb9609caf51 Continued implementing an interface to the Mercurial command server. Modified client all all dialogs done so far to provide a cancel capability..
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1241
diff changeset
1529 self.__hgClient.cancel()
dfb9609caf51 Continued implementing an interface to the Mercurial command server. Modified client all all dialogs done so far to provide a cancel capability..
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1241
diff changeset
1530 else:
dfb9609caf51 Continued implementing an interface to the Mercurial command server. Modified client all all dialogs done so far to provide a cancel capability..
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1241
diff changeset
1531 self.__finish()
1086
b48ce064b224 Enhanced the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
1532 elif button == self.refreshButton:
b48ce064b224 Enhanced the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
1533 self.on_refreshButton_clicked()
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1534
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1535 def __updateSbsSelectLabel(self):
235
7cb9905b0cf9 Little enhancement to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 215
diff changeset
1536 """
7cb9905b0cf9 Little enhancement to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 215
diff changeset
1537 Private slot to update the enabled status of the diff buttons.
7cb9905b0cf9 Little enhancement to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 215
diff changeset
1538 """
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1539 self.sbsSelectLabel.clear()
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1540 if self.__isFile:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1541 selectedItems = self.logTree.selectedItems()
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1542 if len(selectedItems) == 1:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1543 currentItem = selectedItems[0]
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1544 rev2 = currentItem.text(self.RevisionColumn).split(":", 1)[0]\
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1545 .strip()
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1546 parents = currentItem.data(0, self.__parentsRole)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1547 if parents:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1548 parentLinks = []
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1549 for index in range(len(parents)):
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1550 parentLinks.append(
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1551 '<a href="sbsdiff:{0}_{1}">&nbsp;{2}&nbsp;</a>'
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1552 .format(parents[index], rev2, index + 1))
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1553 self.sbsSelectLabel.setText(
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1554 self.tr('Side-by-Side Diff to Parent {0}').format(
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1555 " ".join(parentLinks)))
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1556 elif len(selectedItems) == 2:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1557 rev1 = int(selectedItems[0].text(self.RevisionColumn)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1558 .split(":", 1)[0])
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1559 rev2 = int(selectedItems[1].text(self.RevisionColumn)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1560 .split(":", 1)[0])
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1561 if rev1 > rev2:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1562 # Swap the entries, so that rev1 < rev2
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1563 rev1, rev2 = rev2, rev1
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1564 self.sbsSelectLabel.setText(self.tr(
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1565 '<a href="sbsdiff:{0}_{1}">Side-by-Side Compare</a>')
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1566 .format(rev1, rev2))
235
7cb9905b0cf9 Little enhancement to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 215
diff changeset
1567
3279
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
1568 def __updateToolMenuActions(self):
1608
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1605
diff changeset
1569 """
3279
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
1570 Private slot to update the status of the tool menu actions and
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
1571 the tool menu button.
1608
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1605
diff changeset
1572 """
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1573 if self.initialCommandMode in ("log", "full_log") and self.projectMode:
5512
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1574 # do the phase action
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1575 # step 1: count entries with changeable phases
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1576 secret = 0
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1577 draft = 0
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1578 public = 0
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1579 for itm in [item for item in self.logTree.selectedItems()
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1580 if not item.data(0, self.__incomingRole)]:
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1581 # count phase for local items only
5512
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1582 phase = itm.text(self.PhaseColumn)
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1583 if phase == self.phases["draft"]:
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1584 draft += 1
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1585 elif phase == self.phases["secret"]:
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1586 secret += 1
2569
0fff8dc5d472 Fixed an issue in the Mercurial log browser setting the correct state of the phase button in 'incoming' and 'outgoing' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2567
diff changeset
1587 else:
5512
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1588 public += 1
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1589
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1590 # step 2: set the status of the phase action
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1591 if public == 0 and \
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1592 ((secret > 0 and draft == 0) or
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1593 (secret == 0 and draft > 0)):
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1594 self.__phaseAct.setEnabled(True)
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1595 else:
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1596 self.__phaseAct.setEnabled(False)
2569
0fff8dc5d472 Fixed an issue in the Mercurial log browser setting the correct state of the phase button in 'incoming' and 'outgoing' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2567
diff changeset
1597
5512
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1598 # do the graft action
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1599 # step 1: count selected entries not belonging to the
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1600 # current branch
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1601 otherBranches = 0
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1602 for itm in [item for item in self.logTree.selectedItems()
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1603 if not item.data(0, self.__incomingRole)]:
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1604 # for local items only
5512
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1605 branch = itm.text(self.BranchColumn)
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1606 if branch != self.__projectBranch:
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1607 otherBranches += 1
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1608
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1609 # step 2: set the status of the graft action
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1610 self.__graftAct.setEnabled(otherBranches > 0)
3279
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
1611
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1612 selectedItemsCount = len([
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1613 itm for itm in self.logTree.selectedItems()
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1614 if not itm.data(0, self.__incomingRole)
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1615 ])
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1616 selectedIncomingItemsCount = len([
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1617 itm for itm in self.logTree.selectedItems()
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1618 if itm.data(0, self.__incomingRole)
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1619 ])
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1620
5506
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
1621 self.__mergeAct.setEnabled(selectedItemsCount == 1)
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
1622 self.__tagAct.setEnabled(selectedItemsCount == 1)
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
1623 self.__switchAct.setEnabled(selectedItemsCount == 1)
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
1624 self.__bookmarkAct.setEnabled(selectedItemsCount == 1)
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
1625 self.__bookmarkMoveAct.setEnabled(selectedItemsCount == 1)
3279
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
1626
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1627 if selectedIncomingItemsCount > 0:
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1628 self.__pullAct.setText(self.tr("Pull Selected Changes"))
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1629 self.__fetchAct.setText(self.tr("Fetch Selected Changes"))
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1630 else:
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1631 self.__pullAct.setText(self.tr("Pull Changes"))
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1632 self.__fetchAct.setText(self.tr("Fetch Changes"))
5270
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
1633 if self.vcs.canPull():
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
1634 self.__pullAct.setEnabled(True)
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
1635 self.__lfPullAct.setEnabled(
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
1636 self.vcs.isExtensionActive("largefiles") and
5506
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
1637 selectedItemsCount > 0)
5270
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
1638 self.__fetchAct.setEnabled(
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
1639 self.vcs.isExtensionActive("fetch"))
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
1640 else:
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
1641 self.__pullAct.setEnabled(False)
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
1642 self.__lfPullAct.setEnabled(False)
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
1643 self.__fetchAct.setEnabled(False)
3315
bd1a25ead18d Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3302
diff changeset
1644
5270
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
1645 if self.vcs.canPush():
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
1646 self.__pushAct.setEnabled(
5506
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
1647 selectedItemsCount == 1 and
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1648 not self.logTree.selectedItems()[0].data(
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1649 0, self.__incomingRole) and
5270
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
1650 self.logTree.selectedItems()[0].text(self.PhaseColumn) ==
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
1651 self.phases["draft"])
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
1652 self.__pushAllAct.setEnabled(True)
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
1653 else:
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
1654 self.__pushAct.setEnabled(False)
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
1655 self.__pushAllAct.setEnabled(False)
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
1656
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
1657 self.__stripAct.setEnabled(
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
1658 self.vcs.isExtensionActive("strip") and
5506
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
1659 selectedItemsCount == 1)
4409
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
1660
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1661 # count incoming items for 'full_log'
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1662 if self.initialCommandMode == "full_log":
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1663 # incoming items are at the top
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1664 incomingCount = 0
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1665 for row in range(self.logTree.topLevelItemCount()):
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1666 if self.logTree.topLevelItem(row).data(
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1667 0, self.__incomingRole):
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1668 incomingCount += 1
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1669 else:
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1670 break
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1671 localCount = self.logTree.topLevelItemCount() - incomingCount
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1672 else:
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1673 localCount = self.logTree.topLevelItemCount()
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1674 self.__bundleAct.setEnabled(localCount > 0)
5514
1aa13333eb9f Added a an entry to apply the currently previewed changegroup file to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5513
diff changeset
1675 self.__unbundleAct.setEnabled(False)
5501
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
1676
5506
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
1677 self.__gpgSignAct.setEnabled(
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
1678 self.vcs.isExtensionActive("gpg") and
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
1679 selectedItemsCount > 0)
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
1680 self.__gpgVerifyAct.setEnabled(
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
1681 self.vcs.isExtensionActive("gpg") and
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
1682 selectedItemsCount == 1)
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
1683
7010
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
1684 if self.vcs.isExtensionActive("closehead"):
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
1685 revs = [itm.text(self.RevisionColumn).strip().split(":", 1)[0]
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
1686 for itm in self.logTree.selectedItems()
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
1687 if not itm.data(0, self.__incomingRole)]
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
1688 revs = [rev for rev in revs if rev in self.__headRevisions]
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
1689 self.__closeHeadsAct.setEnabled(len(revs) > 0)
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
1690 else:
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
1691 self.__closeHeadsAct.setEnabled(False)
3279
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
1692 self.actionsButton.setEnabled(True)
5513
2ccfb5077dd6 Enabled the action menu for the Mercurial log browser in 'outgoing' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5512
diff changeset
1693
5512
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1694 elif self.initialCommandMode == "incoming" and self.projectMode:
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1695 for act in [self.__phaseAct, self.__graftAct, self.__mergeAct,
7032
1dd0c392f685 HgLogBrowserDialog: fixed incomplete disabling of action menu entries for incoming and outgoing modes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7010
diff changeset
1696 self.__tagAct, self.__closeHeadsAct, self.__switchAct,
1dd0c392f685 HgLogBrowserDialog: fixed incomplete disabling of action menu entries for incoming and outgoing modes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7010
diff changeset
1697 self.__bookmarkAct, self.__bookmarkMoveAct,
1dd0c392f685 HgLogBrowserDialog: fixed incomplete disabling of action menu entries for incoming and outgoing modes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7010
diff changeset
1698 self.__pushAct, self.__pushAllAct, self.__stripAct,
1dd0c392f685 HgLogBrowserDialog: fixed incomplete disabling of action menu entries for incoming and outgoing modes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7010
diff changeset
1699 self.__bundleAct, self.__gpgSignAct,
1dd0c392f685 HgLogBrowserDialog: fixed incomplete disabling of action menu entries for incoming and outgoing modes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7010
diff changeset
1700 self.__gpgVerifyAct]:
5512
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1701 act.setEnabled(False)
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1702
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1703 self.__pullAct.setText(self.tr("Pull Selected Changes"))
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1704 self.__fetchAct.setText(self.tr("Fetch Selected Changes"))
5930
9fe93d87d502 Fixed an issue in the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5880
diff changeset
1705 if self.vcs.canPull() and not bool(self.__bundle):
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1706 selectedIncomingItemsCount = len([
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1707 itm for itm in self.logTree.selectedItems()
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1708 if itm.data(0, self.__incomingRole)
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1709 ])
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1710 self.__pullAct.setEnabled(selectedIncomingItemsCount > 0)
5512
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1711 self.__lfPullAct.setEnabled(
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1712 self.vcs.isExtensionActive("largefiles") and
7142
b0321ba66119 Typo corretion in the Incoming process of HgLogBrowserDialog.
Christos Sevastiadis <csevast@auth.gr>
parents: 7032
diff changeset
1713 selectedIncomingItemsCount > 0)
5512
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1714 self.__fetchAct.setEnabled(
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1715 self.vcs.isExtensionActive("fetch") and
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1716 selectedIncomingItemsCount > 0)
5512
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1717 else:
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1718 self.__pullAct.setEnabled(False)
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1719 self.__lfPullAct.setEnabled(False)
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1720 self.__fetchAct.setEnabled(False)
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1721
5514
1aa13333eb9f Added a an entry to apply the currently previewed changegroup file to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5513
diff changeset
1722 self.__unbundleAct.setEnabled(bool(self.__bundle))
1aa13333eb9f Added a an entry to apply the currently previewed changegroup file to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5513
diff changeset
1723
5512
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
1724 self.actionsButton.setEnabled(True)
5513
2ccfb5077dd6 Enabled the action menu for the Mercurial log browser in 'outgoing' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5512
diff changeset
1725
2ccfb5077dd6 Enabled the action menu for the Mercurial log browser in 'outgoing' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5512
diff changeset
1726 elif self.initialCommandMode == "outgoing" and self.projectMode:
2ccfb5077dd6 Enabled the action menu for the Mercurial log browser in 'outgoing' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5512
diff changeset
1727 for act in [self.__phaseAct, self.__graftAct, self.__mergeAct,
7032
1dd0c392f685 HgLogBrowserDialog: fixed incomplete disabling of action menu entries for incoming and outgoing modes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7010
diff changeset
1728 self.__tagAct, self.__closeHeadsAct, self.__switchAct,
1dd0c392f685 HgLogBrowserDialog: fixed incomplete disabling of action menu entries for incoming and outgoing modes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7010
diff changeset
1729 self.__bookmarkAct, self.__bookmarkMoveAct,
1dd0c392f685 HgLogBrowserDialog: fixed incomplete disabling of action menu entries for incoming and outgoing modes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7010
diff changeset
1730 self.__pullAct, self.__lfPullAct, self.__fetchAct,
1dd0c392f685 HgLogBrowserDialog: fixed incomplete disabling of action menu entries for incoming and outgoing modes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7010
diff changeset
1731 self.__stripAct, self.__gpgSignAct,
1dd0c392f685 HgLogBrowserDialog: fixed incomplete disabling of action menu entries for incoming and outgoing modes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7010
diff changeset
1732 self.__gpgVerifyAct, self.__unbundleAct]:
5513
2ccfb5077dd6 Enabled the action menu for the Mercurial log browser in 'outgoing' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5512
diff changeset
1733 act.setEnabled(False)
2ccfb5077dd6 Enabled the action menu for the Mercurial log browser in 'outgoing' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5512
diff changeset
1734
2ccfb5077dd6 Enabled the action menu for the Mercurial log browser in 'outgoing' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5512
diff changeset
1735 selectedItemsCount = len(self.logTree.selectedItems())
2ccfb5077dd6 Enabled the action menu for the Mercurial log browser in 'outgoing' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5512
diff changeset
1736 if self.vcs.canPush():
2ccfb5077dd6 Enabled the action menu for the Mercurial log browser in 'outgoing' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5512
diff changeset
1737 self.__pushAct.setEnabled(
2ccfb5077dd6 Enabled the action menu for the Mercurial log browser in 'outgoing' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5512
diff changeset
1738 selectedItemsCount == 1 and
2ccfb5077dd6 Enabled the action menu for the Mercurial log browser in 'outgoing' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5512
diff changeset
1739 self.logTree.selectedItems()[0].text(self.PhaseColumn) ==
2ccfb5077dd6 Enabled the action menu for the Mercurial log browser in 'outgoing' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5512
diff changeset
1740 self.phases["draft"])
2ccfb5077dd6 Enabled the action menu for the Mercurial log browser in 'outgoing' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5512
diff changeset
1741 self.__pushAllAct.setEnabled(True)
2ccfb5077dd6 Enabled the action menu for the Mercurial log browser in 'outgoing' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5512
diff changeset
1742 else:
2ccfb5077dd6 Enabled the action menu for the Mercurial log browser in 'outgoing' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5512
diff changeset
1743 self.__pushAct.setEnabled(False)
2ccfb5077dd6 Enabled the action menu for the Mercurial log browser in 'outgoing' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5512
diff changeset
1744 self.__pushAllAct.setEnabled(False)
2ccfb5077dd6 Enabled the action menu for the Mercurial log browser in 'outgoing' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5512
diff changeset
1745
2ccfb5077dd6 Enabled the action menu for the Mercurial log browser in 'outgoing' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5512
diff changeset
1746 self.__bundleAct.setEnabled(selectedItemsCount > 0)
2ccfb5077dd6 Enabled the action menu for the Mercurial log browser in 'outgoing' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5512
diff changeset
1747
3243
bbaa32bb9e63 Fixed an issue in the Mercurial log browser dialog that caused the tag action being activated in wrong dialog modes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3242
diff changeset
1748 else:
3279
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
1749 self.actionsButton.setEnabled(False)
3243
bbaa32bb9e63 Fixed an issue in the Mercurial log browser dialog that caused the tag action being activated in wrong dialog modes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3242
diff changeset
1750
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1751 def __updateDetailsAndFiles(self):
1608
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1605
diff changeset
1752 """
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1753 Private slot to update the details and file changes panes.
1608
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1605
diff changeset
1754 """
3536
c06338ca892b Enhanced the Mercurial log browser dialog to show a summary of the data of the selected changeset in a text edit pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3534
diff changeset
1755 self.detailsEdit.clear()
1608
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1605
diff changeset
1756 self.filesTree.clear()
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1757 self.__diffUpdatesFiles = False
1608
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1605
diff changeset
1758
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1759 selectedItems = self.logTree.selectedItems()
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1760 if len(selectedItems) == 1:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1761 self.detailsEdit.setHtml(
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1762 self.__generateDetailsTableText(selectedItems[0]))
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1763 self.__updateFilesTree(self.filesTree, selectedItems[0])
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1764 self.__resizeColumnsFiles()
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1765 self.__resortFiles()
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1766 elif len(selectedItems) == 2:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1767 self.__diffUpdatesFiles = True
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1768 index1 = self.logTree.indexOfTopLevelItem(selectedItems[0])
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1769 index2 = self.logTree.indexOfTopLevelItem(selectedItems[1])
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1770 if index1 > index2:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1771 # Swap the entries
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1772 selectedItems[0], selectedItems[1] = \
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1773 selectedItems[1], selectedItems[0]
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1774 html = "{0}<hr/>{1}".format(
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1775 self.__generateDetailsTableText(selectedItems[0]),
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1776 self.__generateDetailsTableText(selectedItems[1]),
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1777 )
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1778 self.detailsEdit.setHtml(html)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1779 # self.filesTree is updated by the diff
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1780
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1781 def __generateDetailsTableText(self, itm):
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1782 """
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1783 Private method to generate an HTML table with the details of the given
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1784 changeset.
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1785
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1786 @param itm reference to the item the table should be based on
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1787 @type QTreeWidgetItem
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1788 @return HTML table containing details
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1789 @rtype str
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1790 """
1608
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1605
diff changeset
1791 if itm is not None:
4059
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
1792 if itm.text(self.TagsColumn):
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
1793 tagsStr = self.__tagsTemplate.format(itm.text(self.TagsColumn))
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
1794 else:
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
1795 tagsStr = ""
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1796
4059
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
1797 if itm.text(self.BookmarksColumn):
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
1798 bookmarksStr = self.__bookmarksTemplate.format(
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
1799 itm.text(self.BookmarksColumn))
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
1800 else:
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
1801 bookmarksStr = ""
5459
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
1802
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1803 if self.projectMode and itm.data(0, self.__latestTagRole):
5459
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
1804 latestTagLinks = []
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
1805 for tag in itm.data(0, self.__latestTagRole):
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1806 latestTagLinks.append('<a href="rev:{0}">{1}</a>'.format(
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1807 self.__getRevisionOfTag(tag)[0], tag))
5459
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
1808 latestTagStr = self.__latestTagTemplate.format(
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
1809 ", ".join(latestTagLinks))
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
1810 else:
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
1811 latestTagStr = ""
cdfdecd2faef Extended the details view of the Mercurial log browser window.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5451
diff changeset
1812
5445
b24720037f1f Added clickable links to the Mercurial log browser details pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5444
diff changeset
1813 rev = int(itm.text(self.RevisionColumn).split(":", 1)[0])
b24720037f1f Added clickable links to the Mercurial log browser details pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5444
diff changeset
1814
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1815 if itm.data(0, self.__parentsRole):
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1816 parentLinks = []
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1817 for parent in [str(x) for x in
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1818 itm.data(0, self.__parentsRole)]:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1819 parentLinks.append(
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1820 '<a href="rev:{0}">{0}</a>'.format(parent))
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1821 parentsStr = self.__parentsTemplate.format(
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1822 ", ".join(parentLinks))
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1823 else:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1824 parentsStr = ""
5445
b24720037f1f Added clickable links to the Mercurial log browser details pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5444
diff changeset
1825
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1826 if self.__childrenInfo[rev]:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1827 childLinks = []
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1828 for child in [str(x) for x in self.__childrenInfo[rev]]:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1829 childLinks.append(
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1830 '<a href="rev:{0}">{0}</a>'.format(child))
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1831 childrenStr = self.__childrenTemplate.format(
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1832 ", ".join(childLinks))
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1833 else:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1834 childrenStr = ""
5445
b24720037f1f Added clickable links to the Mercurial log browser details pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5444
diff changeset
1835
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1836 messageStr = "<br />\n".join([
5880
6bd1c5e813c5 Fixed an issue in the Mercurial log browser displaying commit messages containing HTML characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5848
diff changeset
1837 Utilities.html_encode(line.strip())
6bd1c5e813c5 Fixed an issue in the Mercurial log browser displaying commit messages containing HTML characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5848
diff changeset
1838 for line in itm.data(0, self.__messageRole)
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1839 ])
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1840
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1841 html = self.__detailsTemplate.format(
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3554
diff changeset
1842 itm.text(self.RevisionColumn),
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3554
diff changeset
1843 itm.text(self.DateColumn),
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3554
diff changeset
1844 itm.text(self.AuthorColumn),
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3554
diff changeset
1845 itm.text(self.BranchColumn).replace(
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3554
diff changeset
1846 self.ClosedIndicator, ""),
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1847 parentsStr + childrenStr + tagsStr + latestTagStr +
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1848 bookmarksStr,
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1849 messageStr,
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1850 )
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1851 else:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1852 html = ""
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1853
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1854 return html
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1855
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1856 def __updateFilesTree(self, parent, itm):
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1857 """
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1858 Private method to update the files tree with changes of the given item.
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1859
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1860 @param parent parent for the items to be added
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1861 @type QTreeWidget or QTreeWidgetItem
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1862 @param itm reference to the item the update should be based on
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1863 @type QTreeWidgetItem
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1864 """
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1865 if itm is not None:
1608
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1605
diff changeset
1866 changes = itm.data(0, self.__changesRole)
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1605
diff changeset
1867 if len(changes) > 0:
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1605
diff changeset
1868 for change in changes:
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1869 QTreeWidgetItem(parent, [
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1870 self.flags[change["action"]],
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1871 change["path"].strip(),
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1872 change["copyfrom"].strip(),
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1873 ])
1608
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1605
diff changeset
1874
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1875 @pyqtSlot(QTreeWidgetItem, QTreeWidgetItem)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1876 def on_logTree_currentItemChanged(self, current, previous):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1877 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1878 Private slot called, when the current item of the log tree changes.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1879
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1880 @param current reference to the new current item (QTreeWidgetItem)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1881 @param previous reference to the old current item (QTreeWidgetItem)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1882 """
3279
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
1883 self.__updateToolMenuActions()
5448
1a86766ed19a Change the Mercurial log browser such, that the current log entry is highlighted with a bold font.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5445
diff changeset
1884
1a86766ed19a Change the Mercurial log browser such, that the current log entry is highlighted with a bold font.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5445
diff changeset
1885 # Highlight the current entry using a bold font
1a86766ed19a Change the Mercurial log browser such, that the current log entry is highlighted with a bold font.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5445
diff changeset
1886 for col in range(self.logTree.columnCount()):
1a86766ed19a Change the Mercurial log browser such, that the current log entry is highlighted with a bold font.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5445
diff changeset
1887 current and current.setFont(col, self.__logTreeBoldFont)
1a86766ed19a Change the Mercurial log browser such, that the current log entry is highlighted with a bold font.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5445
diff changeset
1888 previous and previous.setFont(col, self.__logTreeNormalFont)
5449
7679d1d3671a Added up and down buttons to move the current entry to the Mercurial and Subversion log browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5448
diff changeset
1889
7679d1d3671a Added up and down buttons to move the current entry to the Mercurial and Subversion log browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5448
diff changeset
1890 # set the state of the up and down buttons
7679d1d3671a Added up and down buttons to move the current entry to the Mercurial and Subversion log browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5448
diff changeset
1891 self.upButton.setEnabled(
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1892 current is not None and
5449
7679d1d3671a Added up and down buttons to move the current entry to the Mercurial and Subversion log browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5448
diff changeset
1893 self.logTree.indexOfTopLevelItem(current) > 0)
7679d1d3671a Added up and down buttons to move the current entry to the Mercurial and Subversion log browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5448
diff changeset
1894 self.downButton.setEnabled(
7679d1d3671a Added up and down buttons to move the current entry to the Mercurial and Subversion log browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5448
diff changeset
1895 current is not None and
5494
fdc53cc1e2fb Fixed another issue in the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5493
diff changeset
1896 int(current.text(self.RevisionColumn).split(":")[0]) > 0 and
fdc53cc1e2fb Fixed another issue in the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5493
diff changeset
1897 (self.logTree.indexOfTopLevelItem(current) <
5517
805b36a7ffb7 Fixed a few code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5514
diff changeset
1898 self.logTree.topLevelItemCount() - 1 or
805b36a7ffb7 Fixed a few code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5514
diff changeset
1899 self.nextButton.isEnabled()))
235
7cb9905b0cf9 Little enhancement to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 215
diff changeset
1900
7cb9905b0cf9 Little enhancement to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 215
diff changeset
1901 @pyqtSlot()
7cb9905b0cf9 Little enhancement to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 215
diff changeset
1902 def on_logTree_itemSelectionChanged(self):
7cb9905b0cf9 Little enhancement to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 215
diff changeset
1903 """
7cb9905b0cf9 Little enhancement to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 215
diff changeset
1904 Private slot called, when the selection has changed.
7cb9905b0cf9 Little enhancement to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 215
diff changeset
1905 """
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1906 self.__updateDetailsAndFiles()
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1907 self.__updateSbsSelectLabel()
3279
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
1908 self.__updateToolMenuActions()
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
1909 self.__generateDiffs()
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1910
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1911 @pyqtSlot()
5449
7679d1d3671a Added up and down buttons to move the current entry to the Mercurial and Subversion log browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5448
diff changeset
1912 def on_upButton_clicked(self):
7679d1d3671a Added up and down buttons to move the current entry to the Mercurial and Subversion log browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5448
diff changeset
1913 """
7679d1d3671a Added up and down buttons to move the current entry to the Mercurial and Subversion log browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5448
diff changeset
1914 Private slot to move the current item up one entry.
7679d1d3671a Added up and down buttons to move the current entry to the Mercurial and Subversion log browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5448
diff changeset
1915 """
7679d1d3671a Added up and down buttons to move the current entry to the Mercurial and Subversion log browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5448
diff changeset
1916 itm = self.logTree.itemAbove(self.logTree.currentItem())
7679d1d3671a Added up and down buttons to move the current entry to the Mercurial and Subversion log browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5448
diff changeset
1917 if itm:
7679d1d3671a Added up and down buttons to move the current entry to the Mercurial and Subversion log browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5448
diff changeset
1918 self.logTree.setCurrentItem(itm)
7679d1d3671a Added up and down buttons to move the current entry to the Mercurial and Subversion log browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5448
diff changeset
1919
7679d1d3671a Added up and down buttons to move the current entry to the Mercurial and Subversion log browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5448
diff changeset
1920 @pyqtSlot()
7679d1d3671a Added up and down buttons to move the current entry to the Mercurial and Subversion log browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5448
diff changeset
1921 def on_downButton_clicked(self):
7679d1d3671a Added up and down buttons to move the current entry to the Mercurial and Subversion log browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5448
diff changeset
1922 """
7679d1d3671a Added up and down buttons to move the current entry to the Mercurial and Subversion log browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5448
diff changeset
1923 Private slot to move the current item down one entry.
7679d1d3671a Added up and down buttons to move the current entry to the Mercurial and Subversion log browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5448
diff changeset
1924 """
7679d1d3671a Added up and down buttons to move the current entry to the Mercurial and Subversion log browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5448
diff changeset
1925 itm = self.logTree.itemBelow(self.logTree.currentItem())
7679d1d3671a Added up and down buttons to move the current entry to the Mercurial and Subversion log browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5448
diff changeset
1926 if itm:
7679d1d3671a Added up and down buttons to move the current entry to the Mercurial and Subversion log browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5448
diff changeset
1927 self.logTree.setCurrentItem(itm)
7679d1d3671a Added up and down buttons to move the current entry to the Mercurial and Subversion log browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5448
diff changeset
1928 else:
7679d1d3671a Added up and down buttons to move the current entry to the Mercurial and Subversion log browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5448
diff changeset
1929 # load the next bunch and try again
5490
95db14ec60b2 Added some code to cope with unlimited recursions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5489
diff changeset
1930 if self.nextButton.isEnabled():
5493
09cd66fa3243 Fixed an issue in the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5490
diff changeset
1931 self.__addFinishCallback(self.on_downButton_clicked)
5490
95db14ec60b2 Added some code to cope with unlimited recursions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5489
diff changeset
1932 self.on_nextButton_clicked()
5449
7679d1d3671a Added up and down buttons to move the current entry to the Mercurial and Subversion log browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5448
diff changeset
1933
7679d1d3671a Added up and down buttons to move the current entry to the Mercurial and Subversion log browsers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5448
diff changeset
1934 @pyqtSlot()
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1935 def on_nextButton_clicked(self):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1936 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1937 Private slot to handle the Next button.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1938 """
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1939 if self.nextButton.isEnabled():
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1940 if self.__lastRev > 0:
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1941 self.__getLogEntries(startRev=self.__lastRev - 1)
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1942 else:
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
1943 self.__getLogEntries()
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1944
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1945 @pyqtSlot(QDate)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1946 def on_fromDate_dateChanged(self, date):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1947 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1948 Private slot called, when the from date changes.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1949
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1950 @param date new date (QDate)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1951 """
4059
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
1952 if self.__actionMode() == "filter":
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
1953 self.__filterLogs()
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1954
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1955 @pyqtSlot(QDate)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1956 def on_toDate_dateChanged(self, date):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1957 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1958 Private slot called, when the from date changes.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1959
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1960 @param date new date (QDate)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1961 """
4059
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
1962 if self.__actionMode() == "filter":
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
1963 self.__filterLogs()
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1964
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1965 @pyqtSlot(str)
316
b7e499650928 Added a branch filter to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 296
diff changeset
1966 def on_branchCombo_activated(self, txt):
b7e499650928 Added a branch filter to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 296
diff changeset
1967 """
b7e499650928 Added a branch filter to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 296
diff changeset
1968 Private slot called, when a new branch is selected.
b7e499650928 Added a branch filter to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 296
diff changeset
1969
b7e499650928 Added a branch filter to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 296
diff changeset
1970 @param txt text of the selected branch (string)
b7e499650928 Added a branch filter to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 296
diff changeset
1971 """
4059
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
1972 if self.__actionMode() == "filter":
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
1973 self.__filterLogs()
316
b7e499650928 Added a branch filter to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 296
diff changeset
1974
b7e499650928 Added a branch filter to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 296
diff changeset
1975 @pyqtSlot(str)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1976 def on_fieldCombo_activated(self, txt):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1977 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1978 Private slot called, when a new filter field is selected.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1979
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1980 @param txt text of the selected field (string)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1981 """
4059
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
1982 if self.__actionMode() == "filter":
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
1983 self.__filterLogs()
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1984
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1985 @pyqtSlot(str)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1986 def on_rxEdit_textChanged(self, txt):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1987 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1988 Private slot called, when a filter expression is entered.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1989
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1990 @param txt filter expression (string)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1991 """
4059
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
1992 if self.__actionMode() == "filter":
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
1993 self.__filterLogs()
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
1994 elif self.__actionMode() == "find":
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
1995 self.__findItem(self.__findBackwards, interactive=True)
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
1996
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
1997 @pyqtSlot()
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
1998 def on_rxEdit_returnPressed(self):
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
1999 """
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2000 Private slot handling a press of the Return key in the rxEdit input.
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2001 """
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2002 if self.__actionMode() == "find":
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2003 self.__findItem(self.__findBackwards, interactive=True)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2004
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2005 def __filterLogs(self):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2006 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2007 Private method to filter the log entries.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2008 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2009 if self.__filterLogsEnabled:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2010 from_ = self.fromDate.date().toString("yyyy-MM-dd")
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2011 to_ = self.toDate.date().addDays(1).toString("yyyy-MM-dd")
316
b7e499650928 Added a branch filter to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 296
diff changeset
2012 branch = self.branchCombo.currentText()
932
efd23a913a09 Finished extending the Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 921
diff changeset
2013 closedBranch = branch + '--'
4060
6dc9821fc9c8 Extended the Mercurial log browser search and filter functions to the list of changed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4059
diff changeset
2014 fieldIndex, searchRx, indexIsRole = self.__prepareFieldSearch()
316
b7e499650928 Added a branch filter to the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 296
diff changeset
2015
4059
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2016 visibleItemCount = self.logTree.topLevelItemCount()
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2017 currentItem = self.logTree.currentItem()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2018 for topIndex in range(self.logTree.topLevelItemCount()):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2019 topItem = self.logTree.topLevelItem(topIndex)
4060
6dc9821fc9c8 Extended the Mercurial log browser search and filter functions to the list of changed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4059
diff changeset
2020 if indexIsRole:
6dc9821fc9c8 Extended the Mercurial log browser search and filter functions to the list of changed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4059
diff changeset
2021 if fieldIndex == self.__changesRole:
6dc9821fc9c8 Extended the Mercurial log browser search and filter functions to the list of changed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4059
diff changeset
2022 changes = topItem.data(0, self.__changesRole)
6dc9821fc9c8 Extended the Mercurial log browser search and filter functions to the list of changed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4059
diff changeset
2023 txt = "\n".join(
6dc9821fc9c8 Extended the Mercurial log browser search and filter functions to the list of changed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4059
diff changeset
2024 [c["path"] for c in changes] +
6dc9821fc9c8 Extended the Mercurial log browser search and filter functions to the list of changed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4059
diff changeset
2025 [c["copyfrom"] for c in changes]
6dc9821fc9c8 Extended the Mercurial log browser search and filter functions to the list of changed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4059
diff changeset
2026 )
6dc9821fc9c8 Extended the Mercurial log browser search and filter functions to the list of changed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4059
diff changeset
2027 else:
6dc9821fc9c8 Extended the Mercurial log browser search and filter functions to the list of changed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4059
diff changeset
2028 # Find based on complete message text
6dc9821fc9c8 Extended the Mercurial log browser search and filter functions to the list of changed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4059
diff changeset
2029 txt = "\n".join(topItem.data(0, self.__messageRole))
4059
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2030 else:
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2031 txt = topItem.text(fieldIndex)
180
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
2032 if topItem.text(self.DateColumn) <= to_ and \
40ac468c2558 Enhanced LogBrowserDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 179
diff changeset
2033 topItem.text(self.DateColumn) >= from_ and \
3034
7ce719013078 Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3023
diff changeset
2034 (branch == self.__allBranchesFilter or
7ce719013078 Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3023
diff changeset
2035 topItem.text(self.BranchColumn) in
932
efd23a913a09 Finished extending the Mercurial log browser to indicate closed branches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 921
diff changeset
2036 [branch, closedBranch]) and \
4059
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2037 searchRx.indexIn(txt) > -1:
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2038 topItem.setHidden(False)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2039 if topItem is currentItem:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2040 self.on_logTree_currentItemChanged(topItem, None)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2041 else:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2042 topItem.setHidden(True)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2043 if topItem is currentItem:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2044 self.filesTree.clear()
4059
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2045 visibleItemCount -= 1
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2046 self.logTree.header().setSectionHidden(
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2047 self.IconColumn,
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2048 visibleItemCount != self.logTree.topLevelItemCount())
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2049
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2050 def __prepareFieldSearch(self):
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2051 """
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2052 Private slot to prepare the filed search data.
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2053
4060
6dc9821fc9c8 Extended the Mercurial log browser search and filter functions to the list of changed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4059
diff changeset
2054 @return tuple of field index, search expression and flag indicating
6dc9821fc9c8 Extended the Mercurial log browser search and filter functions to the list of changed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4059
diff changeset
2055 that the field index is a data role (integer, string, boolean)
4059
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2056 """
4060
6dc9821fc9c8 Extended the Mercurial log browser search and filter functions to the list of changed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4059
diff changeset
2057 indexIsRole = False
4059
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2058 txt = self.fieldCombo.itemData(self.fieldCombo.currentIndex())
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2059 if txt == "author":
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2060 fieldIndex = self.AuthorColumn
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2061 searchRx = QRegExp(self.rxEdit.text(), Qt.CaseInsensitive)
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2062 elif txt == "revision":
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2063 fieldIndex = self.RevisionColumn
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2064 txt = self.rxEdit.text()
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2065 if txt.startswith("^"):
6247
5c677a7f7d51 Corrected some code style issues detected by the new pycodestyle version.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
2066 searchRx = QRegExp(r"^\s*{0}".format(txt[1:]),
4059
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2067 Qt.CaseInsensitive)
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2068 else:
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2069 searchRx = QRegExp(txt, Qt.CaseInsensitive)
4060
6dc9821fc9c8 Extended the Mercurial log browser search and filter functions to the list of changed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4059
diff changeset
2070 elif txt == "file":
6dc9821fc9c8 Extended the Mercurial log browser search and filter functions to the list of changed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4059
diff changeset
2071 fieldIndex = self.__changesRole
4059
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2072 searchRx = QRegExp(self.rxEdit.text(), Qt.CaseInsensitive)
4060
6dc9821fc9c8 Extended the Mercurial log browser search and filter functions to the list of changed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4059
diff changeset
2073 indexIsRole = True
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2074 elif txt == "phase":
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2075 fieldIndex = self.PhaseColumn
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2076 searchRx = QRegExp(self.rxEdit.text(), Qt.CaseInsensitive)
4060
6dc9821fc9c8 Extended the Mercurial log browser search and filter functions to the list of changed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4059
diff changeset
2077 else:
6dc9821fc9c8 Extended the Mercurial log browser search and filter functions to the list of changed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4059
diff changeset
2078 fieldIndex = self.__messageRole
6dc9821fc9c8 Extended the Mercurial log browser search and filter functions to the list of changed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4059
diff changeset
2079 searchRx = QRegExp(self.rxEdit.text(), Qt.CaseInsensitive)
6dc9821fc9c8 Extended the Mercurial log browser search and filter functions to the list of changed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4059
diff changeset
2080 indexIsRole = True
4059
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2081
4060
6dc9821fc9c8 Extended the Mercurial log browser search and filter functions to the list of changed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4059
diff changeset
2082 return fieldIndex, searchRx, indexIsRole
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2083
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2084 @pyqtSlot(bool)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2085 def on_stopCheckBox_clicked(self, checked):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2086 """
2962
d6c9d1ca2da4 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2848
diff changeset
2087 Private slot called, when the stop on copy/move checkbox is clicked.
d6c9d1ca2da4 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2848
diff changeset
2088
d6c9d1ca2da4 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2848
diff changeset
2089 @param checked flag indicating the state of the check box (boolean)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2090 """
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 932
diff changeset
2091 self.vcs.getPlugin().setPreferences("StopLogOnCopy",
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2092 self.stopCheckBox.isChecked())
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2093 self.nextButton.setEnabled(True)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2094 self.limitSpinBox.setEnabled(True)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2095
1086
b48ce064b224 Enhanced the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
2096 @pyqtSlot()
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2097 def on_refreshButton_clicked(self, addNext=False):
1086
b48ce064b224 Enhanced the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
2098 """
b48ce064b224 Enhanced the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
2099 Private slot to refresh the log.
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2100
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2101 @param addNext flag indicating to get a second batch of log entries as
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2102 well
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2103 @type bool
1086
b48ce064b224 Enhanced the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
2104 """
b48ce064b224 Enhanced the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
2105 self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False)
b48ce064b224 Enhanced the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
2106 self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(True)
b48ce064b224 Enhanced the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
2107 self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True)
b48ce064b224 Enhanced the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
2108
b48ce064b224 Enhanced the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
2109 self.refreshButton.setEnabled(False)
b48ce064b224 Enhanced the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
2110
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2111 # save the selected items commit IDs
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2112 self.__selectedRevisions = []
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2113 for item in self.logTree.selectedItems():
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2114 self.__selectedRevisions.append(item.text(self.RevisionColumn))
3927
3e1dc0fb26ed Enhanced the Mercurial log browser a little bit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3909
diff changeset
2115
3287
c3d784c057b3 Changed the Subversion Log Browser dialogs to maintain its position after being closed and fixed a few issues in the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3283
diff changeset
2116 if self.initialCommandMode in ("incoming", "outgoing"):
c3d784c057b3 Changed the Subversion Log Browser dialogs to maintain its position after being closed and fixed a few issues in the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3283
diff changeset
2117 self.nextButton.setEnabled(False)
c3d784c057b3 Changed the Subversion Log Browser dialogs to maintain its position after being closed and fixed a few issues in the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3283
diff changeset
2118 self.limitSpinBox.setEnabled(False)
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2119 if addNext:
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2120 self.__addFinishCallback(self.on_nextButton_clicked)
3287
c3d784c057b3 Changed the Subversion Log Browser dialogs to maintain its position after being closed and fixed a few issues in the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3283
diff changeset
2121 else:
c3d784c057b3 Changed the Subversion Log Browser dialogs to maintain its position after being closed and fixed a few issues in the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3283
diff changeset
2122 self.nextButton.setEnabled(True)
c3d784c057b3 Changed the Subversion Log Browser dialogs to maintain its position after being closed and fixed a few issues in the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3283
diff changeset
2123 self.limitSpinBox.setEnabled(True)
1086
b48ce064b224 Enhanced the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
2124
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2125 if self.initialCommandMode == "full_log":
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2126 self.commandMode = "incoming"
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2127 self.__addFinishCallback(self.on_nextButton_clicked)
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2128 else:
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2129 self.commandMode = self.initialCommandMode
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2130 self.start(self.__filename, bundle=self.__bundle, isFile=self.__isFile,
5444
4799e2cf8401 Corrected the Mercurial log browser window refresh action to load as much entries as are already shown (i.e. do not start from scratch).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
2131 noEntries=self.logTree.topLevelItemCount())
1086
b48ce064b224 Enhanced the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
2132
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2133 def on_passwordCheckBox_toggled(self, isOn):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2134 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2135 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
2136
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2137 @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
2138 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2139 if isOn:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2140 self.input.setEchoMode(QLineEdit.Password)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2141 else:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2142 self.input.setEchoMode(QLineEdit.Normal)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2143
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2144 @pyqtSlot()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2145 def on_sendButton_clicked(self):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2146 """
3909
354f4f62d507 Corrected some typos.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3715
diff changeset
2147 Private slot to send the input to the mercurial process.
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2148 """
5588
6ba512d9f46a Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5587
diff changeset
2149 inputTxt = self.input.text()
6ba512d9f46a Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5587
diff changeset
2150 inputTxt += os.linesep
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2151
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2152 if self.passwordCheckBox.isChecked():
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2153 self.errors.insertPlainText(os.linesep)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2154 self.errors.ensureCursorVisible()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2155 else:
5588
6ba512d9f46a Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5587
diff changeset
2156 self.errors.insertPlainText(inputTxt)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2157 self.errors.ensureCursorVisible()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2158
5848
56388f41b1e6 Fixed an issue sending input to the mercurial and subversion processes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5765
diff changeset
2159 self.process.write(strToQByteArray(inputTxt))
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2160
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2161 self.passwordCheckBox.setChecked(False)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2162 self.input.clear()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2163
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2164 def on_input_returnPressed(self):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2165 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2166 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
2167 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2168 self.intercept = True
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2169 self.on_sendButton_clicked()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2170
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2171 def keyPressEvent(self, evt):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2172 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2173 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
2174
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2175 @param evt the key press event (QKeyEvent)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2176 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2177 if self.intercept:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2178 self.intercept = False
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2179 evt.accept()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2180 return
2525
8b507a9a2d40 Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2444
diff changeset
2181 super(HgLogBrowserDialog, self).keyPressEvent(evt)
1608
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1605
diff changeset
2182
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1605
diff changeset
2183 @pyqtSlot()
3185
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
2184 def __phaseActTriggered(self):
1608
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1605
diff changeset
2185 """
3185
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
2186 Private slot to handle the Change Phase action.
1608
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1605
diff changeset
2187 """
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2188 itm = self.logTree.selectedItems()[0]
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2189 if not itm.data(0, self.__incomingRole):
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2190 currentPhase = itm.text(self.PhaseColumn)
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2191 revs = []
1608
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1605
diff changeset
2192 for itm in self.logTree.selectedItems():
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2193 if itm.text(self.PhaseColumn) == currentPhase:
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2194 revs.append(
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2195 itm.text(self.RevisionColumn).split(":")[0].strip())
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2196
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2197 if not revs:
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2198 self.__phaseAct.setEnabled(False)
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2199 return
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2200
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2201 if currentPhase == self.phases["draft"]:
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2202 newPhase = self.phases["secret"]
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2203 data = (revs, "s", True)
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2204 else:
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2205 newPhase = self.phases["draft"]
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2206 data = (revs, "d", False)
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2207 res = self.vcs.hgPhase(self.repodir, data)
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2208 if res:
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2209 for itm in self.logTree.selectedItems():
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2210 itm.setText(self.PhaseColumn, newPhase)
2543
eb9472947653 Added a 'Copy Changesets' button to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2444
diff changeset
2211
eb9472947653 Added a 'Copy Changesets' button to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2444
diff changeset
2212 @pyqtSlot()
3185
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
2213 def __graftActTriggered(self):
2543
eb9472947653 Added a 'Copy Changesets' button to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2444
diff changeset
2214 """
3185
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
2215 Private slot to handle the Copy Changesets action.
2543
eb9472947653 Added a 'Copy Changesets' button to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2444
diff changeset
2216 """
eb9472947653 Added a 'Copy Changesets' button to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2444
diff changeset
2217 revs = []
eb9472947653 Added a 'Copy Changesets' button to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2444
diff changeset
2218
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2219 for itm in [item for item in self.logTree.selectedItems()
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2220 if not item.data(0, self.__incomingRole)]:
2543
eb9472947653 Added a 'Copy Changesets' button to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2444
diff changeset
2221 branch = itm.text(self.BranchColumn)
eb9472947653 Added a 'Copy Changesets' button to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2444
diff changeset
2222 if branch != self.__projectBranch:
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2962
diff changeset
2223 revs.append(
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2962
diff changeset
2224 itm.text(self.RevisionColumn).strip().split(":", 1)[0])
2543
eb9472947653 Added a 'Copy Changesets' button to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2444
diff changeset
2225
eb9472947653 Added a 'Copy Changesets' button to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2444
diff changeset
2226 if revs:
eb9472947653 Added a 'Copy Changesets' button to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2444
diff changeset
2227 shouldReopen = self.vcs.hgGraft(self.repodir, revs)
eb9472947653 Added a 'Copy Changesets' button to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2444
diff changeset
2228 if shouldReopen:
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
2229 res = E5MessageBox.yesNo(
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
2230 None,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
2231 self.tr("Copy Changesets"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
2232 self.tr(
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2962
diff changeset
2233 """The project should be reread. Do this now?"""),
2543
eb9472947653 Added a 'Copy Changesets' button to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2444
diff changeset
2234 yesDefault=True)
eb9472947653 Added a 'Copy Changesets' button to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2444
diff changeset
2235 if res:
eb9472947653 Added a 'Copy Changesets' button to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2444
diff changeset
2236 e5App().getObject("Project").reopenProject()
3279
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
2237 return
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
2238
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
2239 self.on_refreshButton_clicked()
3185
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
2240
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
2241 @pyqtSlot()
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
2242 def __tagActTriggered(self):
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
2243 """
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
2244 Private slot to tag the selected revision.
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
2245 """
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2246 if len([itm for itm in self.logTree.selectedItems()
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2247 if not itm.data(0, self.__incomingRole)]) == 1:
3185
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
2248 itm = self.logTree.selectedItems()[0]
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
2249 rev = itm.text(self.RevisionColumn).strip().split(":", 1)[0]
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
2250 tag = itm.text(self.TagsColumn).strip().split(", ", 1)[0]
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
2251 res = self.vcs.vcsTag(self.repodir, revision=rev, tagName=tag)
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
2252 if res:
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
2253 self.on_refreshButton_clicked()
3279
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
2254
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
2255 @pyqtSlot()
7010
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
2256 def __closeHeadsActTriggered(self):
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
2257 """
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
2258 Private slot to close the selected head revisions.
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
2259 """
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
2260 if self.vcs.isExtensionActive("closehead"):
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
2261 revs = [itm.text(self.RevisionColumn).strip().split(":", 1)[0]
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
2262 for itm in self.logTree.selectedItems()
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
2263 if not itm.data(0, self.__incomingRole)]
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
2264 revs = [rev for rev in revs if rev in self.__headRevisions]
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
2265 if revs:
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
2266 closeheadExtension = self.vcs.getExtensionObject("closehead")
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
2267 if closeheadExtension is not None:
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
2268 closeheadExtension.hgCloseheads(
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
2269 self.repodir, revisions=revs)
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
2270
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
2271 self.on_refreshButton_clicked()
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
2272
5d6f5a69a952 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7009
diff changeset
2273 @pyqtSlot()
3279
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
2274 def __switchActTriggered(self):
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
2275 """
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
2276 Private slot to switch the working directory to the
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
2277 selected revision.
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
2278 """
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2279 if len([itm for itm in self.logTree.selectedItems()
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2280 if not itm.data(0, self.__incomingRole)]) == 1:
3279
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
2281 itm = self.logTree.selectedItems()[0]
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
2282 rev = itm.text(self.RevisionColumn).strip().split(":", 1)[0]
5353
60fcaa1c3c3c Corrected some code style issues and regenerated the source docu files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5324
diff changeset
2283 bookmarks = [bm.strip() for bm in
5324
337c27027c66 Fixed the handling of the switch action of the Mercurial log browser dialog context menu in the presence of a bookmark.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
2284 itm.text(self.BookmarksColumn).strip().split(",")
337c27027c66 Fixed the handling of the switch action of the Mercurial log browser dialog context menu in the presence of a bookmark.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
2285 if bm.strip()]
337c27027c66 Fixed the handling of the switch action of the Mercurial log browser dialog context menu in the presence of a bookmark.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
2286 if bookmarks:
337c27027c66 Fixed the handling of the switch action of the Mercurial log browser dialog context menu in the presence of a bookmark.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
2287 bookmark, ok = QInputDialog.getItem(
337c27027c66 Fixed the handling of the switch action of the Mercurial log browser dialog context menu in the presence of a bookmark.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
2288 self,
337c27027c66 Fixed the handling of the switch action of the Mercurial log browser dialog context menu in the presence of a bookmark.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
2289 self.tr("Switch"),
337c27027c66 Fixed the handling of the switch action of the Mercurial log browser dialog context menu in the presence of a bookmark.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
2290 self.tr("Select bookmark to switch to (leave empty to"
337c27027c66 Fixed the handling of the switch action of the Mercurial log browser dialog context menu in the presence of a bookmark.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
2291 " use revision):"),
337c27027c66 Fixed the handling of the switch action of the Mercurial log browser dialog context menu in the presence of a bookmark.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
2292 [""] + bookmarks,
337c27027c66 Fixed the handling of the switch action of the Mercurial log browser dialog context menu in the presence of a bookmark.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
2293 0, False)
337c27027c66 Fixed the handling of the switch action of the Mercurial log browser dialog context menu in the presence of a bookmark.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
2294 if not ok:
337c27027c66 Fixed the handling of the switch action of the Mercurial log browser dialog context menu in the presence of a bookmark.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
2295 return
337c27027c66 Fixed the handling of the switch action of the Mercurial log browser dialog context menu in the presence of a bookmark.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
2296 if bookmark:
337c27027c66 Fixed the handling of the switch action of the Mercurial log browser dialog context menu in the presence of a bookmark.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
2297 rev = bookmark
3279
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
2298 if rev:
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
2299 shouldReopen = self.vcs.vcsUpdate(self.repodir, revision=rev)
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
2300 if shouldReopen:
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
2301 res = E5MessageBox.yesNo(
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
2302 None,
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
2303 self.tr("Switch"),
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
2304 self.tr(
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
2305 """The project should be reread. Do this now?"""),
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
2306 yesDefault=True)
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
2307 if res:
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
2308 e5App().getObject("Project").reopenProject()
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
2309 return
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
2310
8df9706ef7f4 Extended the Mercurial log browser by an action to switch to the selected revision.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3273
diff changeset
2311 self.on_refreshButton_clicked()
3315
bd1a25ead18d Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3302
diff changeset
2312
4409
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
2313 @pyqtSlot()
5322
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2314 def __bookmarkActTriggered(self):
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2315 """
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2316 Private slot to bookmark the selected revision.
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2317 """
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2318 if len([itm for itm in self.logTree.selectedItems()
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2319 if not itm.data(0, self.__incomingRole)]) == 1:
5322
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2320 itm = self.logTree.selectedItems()[0]
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2321 rev, changeset = \
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2322 itm.text(self.RevisionColumn).strip().split(":", 1)
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2323 bookmark, ok = QInputDialog.getText(
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2324 self,
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2325 self.tr("Define Bookmark"),
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2326 self.tr('Enter bookmark name for changeset "{0}":').format(
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2327 changeset),
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2328 QLineEdit.Normal)
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2329 if ok and bool(bookmark):
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2330 self.vcs.hgBookmarkDefine(
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2331 self.repodir, revision="rev({0})".format(rev),
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2332 bookmark=bookmark)
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2333 self.on_refreshButton_clicked()
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2334
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2335 @pyqtSlot()
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2336 def __bookmarkMoveActTriggered(self):
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2337 """
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2338 Private slot to move a bookmark to the selected revision.
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2339 """
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2340 if len([itm for itm in self.logTree.selectedItems()
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2341 if not itm.data(0, self.__incomingRole)]) == 1:
5322
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2342 itm = self.logTree.selectedItems()[0]
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2343 rev, changeset = \
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2344 itm.text(self.RevisionColumn).strip().split(":", 1)
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2345 bookmarksList = self.vcs.hgGetBookmarksList(self.repodir)
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2346 bookmark, ok = QInputDialog.getItem(
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2347 self,
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2348 self.tr("Move Bookmark"),
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2349 self.tr('Select the bookmark to be moved to changeset'
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2350 ' "{0}":').format(changeset),
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2351 [""] + bookmarksList,
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2352 0, False)
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2353 if ok and bool(bookmark):
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2354 self.vcs.hgBookmarkMove(
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2355 self.repodir, revision="rev({0})".format(rev),
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2356 bookmark=bookmark)
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2357 self.on_refreshButton_clicked()
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2358
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5276
diff changeset
2359 @pyqtSlot()
3315
bd1a25ead18d Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3302
diff changeset
2360 def __lfPullActTriggered(self):
bd1a25ead18d Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3302
diff changeset
2361 """
bd1a25ead18d Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3302
diff changeset
2362 Private slot to pull large files of selected revisions.
bd1a25ead18d Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3302
diff changeset
2363 """
bd1a25ead18d Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3302
diff changeset
2364 revs = []
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2365 for itm in [item for item in self.logTree.selectedItems()
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2366 if not item.data(0, self.__incomingRole)]:
3315
bd1a25ead18d Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3302
diff changeset
2367 rev = itm.text(self.RevisionColumn).strip().split(":", 1)[0]
bd1a25ead18d Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3302
diff changeset
2368 if rev:
bd1a25ead18d Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3302
diff changeset
2369 revs.append(rev)
bd1a25ead18d Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3302
diff changeset
2370
bd1a25ead18d Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3302
diff changeset
2371 if revs:
bd1a25ead18d Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3302
diff changeset
2372 self.vcs.getExtensionObject("largefiles").hgLfPull(
bd1a25ead18d Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3302
diff changeset
2373 self.repodir, revisions=revs)
4059
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2374
4409
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
2375 @pyqtSlot()
5270
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
2376 def __fetchActTriggered(self):
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
2377 """
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
2378 Private slot to fetch changes from a remote repository.
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
2379 """
5512
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
2380 shouldReopen = False
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
2381 refresh = False
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2382 addNext = False
5512
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
2383
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2384 if self.initialCommandMode in ("log", "full_log", "incoming"):
5512
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
2385 revs = []
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2386 for itm in [item for item in self.logTree.selectedItems()
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2387 if item.data(0, self.__incomingRole)]:
5512
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
2388 rev = itm.text(self.RevisionColumn).split(":")[1].strip()
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2389 if rev:
5512
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
2390 revs.append(rev)
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2391 shouldReopen = self.vcs.getExtensionObject("fetch").hgFetch(
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2392 self.repodir, revisions=revs)
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2393 refresh = True
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2394 if self.initialCommandMode == "incoming":
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2395 addNext = True
5276
c8055cb37262 Improved the handling of Mercurial log browser actions, that potentially modify the project file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5270
diff changeset
2396 if shouldReopen:
c8055cb37262 Improved the handling of Mercurial log browser actions, that potentially modify the project file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5270
diff changeset
2397 res = E5MessageBox.yesNo(
c8055cb37262 Improved the handling of Mercurial log browser actions, that potentially modify the project file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5270
diff changeset
2398 None,
c8055cb37262 Improved the handling of Mercurial log browser actions, that potentially modify the project file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5270
diff changeset
2399 self.tr("Fetch Changes"),
c8055cb37262 Improved the handling of Mercurial log browser actions, that potentially modify the project file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5270
diff changeset
2400 self.tr(
c8055cb37262 Improved the handling of Mercurial log browser actions, that potentially modify the project file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5270
diff changeset
2401 """The project should be reread. Do this now?"""),
c8055cb37262 Improved the handling of Mercurial log browser actions, that potentially modify the project file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5270
diff changeset
2402 yesDefault=True)
c8055cb37262 Improved the handling of Mercurial log browser actions, that potentially modify the project file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5270
diff changeset
2403 if res:
c8055cb37262 Improved the handling of Mercurial log browser actions, that potentially modify the project file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5270
diff changeset
2404 e5App().getObject("Project").reopenProject()
c8055cb37262 Improved the handling of Mercurial log browser actions, that potentially modify the project file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5270
diff changeset
2405 return
c8055cb37262 Improved the handling of Mercurial log browser actions, that potentially modify the project file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5270
diff changeset
2406
5512
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
2407 if refresh:
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2408 self.on_refreshButton_clicked(addNext=addNext)
5270
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
2409
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
2410 @pyqtSlot()
4409
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
2411 def __pullActTriggered(self):
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
2412 """
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
2413 Private slot to pull changes from a remote repository.
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
2414 """
5512
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
2415 shouldReopen = False
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
2416 refresh = False
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2417 addNext = False
5512
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
2418
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2419 if self.initialCommandMode in ("log", "full_log", "incoming"):
5512
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
2420 revs = []
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2421 for itm in [item for item in self.logTree.selectedItems()
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2422 if item.data(0, self.__incomingRole)]:
5512
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
2423 rev = itm.text(self.RevisionColumn).split(":")[1].strip()
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2424 if rev:
5512
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
2425 revs.append(rev)
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2426 shouldReopen = self.vcs.hgPull(self.repodir, revisions=revs)
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2427 refresh = True
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2428 if self.initialCommandMode == "incoming":
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2429 addNext = True
5512
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
2430
5276
c8055cb37262 Improved the handling of Mercurial log browser actions, that potentially modify the project file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5270
diff changeset
2431 if shouldReopen:
c8055cb37262 Improved the handling of Mercurial log browser actions, that potentially modify the project file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5270
diff changeset
2432 res = E5MessageBox.yesNo(
c8055cb37262 Improved the handling of Mercurial log browser actions, that potentially modify the project file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5270
diff changeset
2433 None,
c8055cb37262 Improved the handling of Mercurial log browser actions, that potentially modify the project file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5270
diff changeset
2434 self.tr("Pull Changes"),
c8055cb37262 Improved the handling of Mercurial log browser actions, that potentially modify the project file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5270
diff changeset
2435 self.tr(
c8055cb37262 Improved the handling of Mercurial log browser actions, that potentially modify the project file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5270
diff changeset
2436 """The project should be reread. Do this now?"""),
c8055cb37262 Improved the handling of Mercurial log browser actions, that potentially modify the project file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5270
diff changeset
2437 yesDefault=True)
c8055cb37262 Improved the handling of Mercurial log browser actions, that potentially modify the project file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5270
diff changeset
2438 if res:
c8055cb37262 Improved the handling of Mercurial log browser actions, that potentially modify the project file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5270
diff changeset
2439 e5App().getObject("Project").reopenProject()
c8055cb37262 Improved the handling of Mercurial log browser actions, that potentially modify the project file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5270
diff changeset
2440 return
c8055cb37262 Improved the handling of Mercurial log browser actions, that potentially modify the project file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5270
diff changeset
2441
5512
f148796813d4 Enabled the action menu for the Mercurial log browser in 'incoming' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5506
diff changeset
2442 if refresh:
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2443 self.on_refreshButton_clicked(addNext=addNext)
4409
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
2444
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
2445 @pyqtSlot()
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
2446 def __pushActTriggered(self):
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
2447 """
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
2448 Private slot to push changes to a remote repository up to a selected
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
2449 changeset.
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
2450 """
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
2451 itm = self.logTree.selectedItems()[0]
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2452 if not itm.data(0, self.__incomingRole):
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2453 rev = itm.text(self.RevisionColumn).strip().split(":", 1)[0]
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2454 if rev:
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2455 self.vcs.hgPush(self.repodir, rev=rev)
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2456 self.on_refreshButton_clicked(
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2457 addNext=self.initialCommandMode == "outgoing")
4409
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
2458
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
2459 @pyqtSlot()
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
2460 def __pushAllActTriggered(self):
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
2461 """
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
2462 Private slot to push all changes to a remote repository.
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
2463 """
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
2464 self.vcs.hgPush(self.repodir)
4410
a3a2b652286d Fixed forgotten refresh for the Mercurial log browser push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
2465 self.on_refreshButton_clicked()
4409
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4395
diff changeset
2466
5270
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
2467 @pyqtSlot()
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
2468 def __stripActTriggered(self):
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
2469 """
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
2470 Private slot to strip changesets from the repository.
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
2471 """
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
2472 itm = self.logTree.selectedItems()[0]
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2473 if not itm.data(0, self.__incomingRole):
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2474 rev = itm.text(self.RevisionColumn).strip().split(":", 1)[1]
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2475 shouldReopen = self.vcs.getExtensionObject("strip").hgStrip(
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2476 self.repodir, rev=rev)
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2477 if shouldReopen:
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2478 res = E5MessageBox.yesNo(
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2479 None,
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2480 self.tr("Strip Changesets"),
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2481 self.tr(
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2482 """The project should be reread. Do this now?"""),
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2483 yesDefault=True)
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2484 if res:
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2485 e5App().getObject("Project").reopenProject()
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2486 return
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2487
5270
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
2488 self.on_refreshButton_clicked()
7758f0c7d9f6 Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5104
diff changeset
2489
5496
d157a2319073 Added a 'Merge' action to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5494
diff changeset
2490 @pyqtSlot()
d157a2319073 Added a 'Merge' action to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5494
diff changeset
2491 def __mergeActTriggered(self):
d157a2319073 Added a 'Merge' action to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5494
diff changeset
2492 """
d157a2319073 Added a 'Merge' action to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5494
diff changeset
2493 Private slot to merge the working directory with the selected
d157a2319073 Added a 'Merge' action to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5494
diff changeset
2494 changeset.
d157a2319073 Added a 'Merge' action to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5494
diff changeset
2495 """
d157a2319073 Added a 'Merge' action to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5494
diff changeset
2496 itm = self.logTree.selectedItems()[0]
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2497 if not itm.data(0, self.__incomingRole):
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2498 rev = "rev({0})".format(
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2499 itm.text(self.RevisionColumn).strip().split(":", 1)[0])
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2500 self.vcs.vcsMerge(self.repodir, rev=rev)
5496
d157a2319073 Added a 'Merge' action to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5494
diff changeset
2501
5501
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2502 @pyqtSlot()
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2503 def __bundleActTriggered(self):
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2504 """
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2505 Private slot to create a changegroup file.
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2506 """
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2507 if self.initialCommandMode in ("log", "full_log"):
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2508 selectedItems = [itm for itm in self.logTree.selectedItems()
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2509 if not itm.data(0, self.__incomingRole)]
5503
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2510 if len(selectedItems) == 0:
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2511 # all revisions of the local repository will be bundled
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2512 bundleData = {
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2513 "revs": [],
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2514 "base": "",
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2515 "all": True,
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2516 }
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2517 elif len(selectedItems) == 1:
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2518 # the selected changeset is the base
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2519 rev = selectedItems[0].text(self.RevisionColumn)\
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2520 .split(":", 1)[0].strip()
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2521 bundleData = {
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2522 "revs": [],
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2523 "base": rev,
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2524 "all": False,
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2525 }
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2526 else:
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2527 # lowest revision is the base, others will be bundled
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2528 revs = []
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2529 for itm in selectedItems:
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2530 rev = itm.text(self.RevisionColumn).split(":", 1)[0]
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2531 try:
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2532 revs.append(int(rev))
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2533 except ValueError:
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2534 # ignore silently
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2535 pass
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2536 baseRev = min(revs)
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2537 while baseRev in revs:
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2538 revs.remove(baseRev)
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2539
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2540 bundleData = {
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2541 "revs": [str(rev) for rev in revs],
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2542 "base": str(baseRev),
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2543 "all": False,
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2544 }
5501
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2545 elif self.initialCommandMode == "outgoing":
5513
2ccfb5077dd6 Enabled the action menu for the Mercurial log browser in 'outgoing' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5512
diff changeset
2546 selectedItems = self.logTree.selectedItems()
2ccfb5077dd6 Enabled the action menu for the Mercurial log browser in 'outgoing' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5512
diff changeset
2547 if len(selectedItems) > 0:
2ccfb5077dd6 Enabled the action menu for the Mercurial log browser in 'outgoing' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5512
diff changeset
2548 revs = []
2ccfb5077dd6 Enabled the action menu for the Mercurial log browser in 'outgoing' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5512
diff changeset
2549 for itm in selectedItems:
2ccfb5077dd6 Enabled the action menu for the Mercurial log browser in 'outgoing' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5512
diff changeset
2550 rev = itm.text(self.RevisionColumn).split(":", 1)[0]
2ccfb5077dd6 Enabled the action menu for the Mercurial log browser in 'outgoing' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5512
diff changeset
2551 revs.append(rev.strip())
2ccfb5077dd6 Enabled the action menu for the Mercurial log browser in 'outgoing' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5512
diff changeset
2552
2ccfb5077dd6 Enabled the action menu for the Mercurial log browser in 'outgoing' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5512
diff changeset
2553 bundleData = {
2ccfb5077dd6 Enabled the action menu for the Mercurial log browser in 'outgoing' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5512
diff changeset
2554 "revs": revs,
2ccfb5077dd6 Enabled the action menu for the Mercurial log browser in 'outgoing' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5512
diff changeset
2555 "base": "",
2ccfb5077dd6 Enabled the action menu for the Mercurial log browser in 'outgoing' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5512
diff changeset
2556 "all": False,
2ccfb5077dd6 Enabled the action menu for the Mercurial log browser in 'outgoing' mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5512
diff changeset
2557 }
5503
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2558
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2559 self.vcs.hgBundle(self.repodir, bundleData=bundleData)
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2560
5506
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
2561 @pyqtSlot()
5514
1aa13333eb9f Added a an entry to apply the currently previewed changegroup file to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5513
diff changeset
2562 def __unbundleActTriggered(self):
1aa13333eb9f Added a an entry to apply the currently previewed changegroup file to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5513
diff changeset
2563 """
1aa13333eb9f Added a an entry to apply the currently previewed changegroup file to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5513
diff changeset
2564 Private slot to apply the currently previewed bundle file.
1aa13333eb9f Added a an entry to apply the currently previewed changegroup file to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5513
diff changeset
2565 """
1aa13333eb9f Added a an entry to apply the currently previewed changegroup file to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5513
diff changeset
2566 if self.initialCommandMode == "incoming" and bool(self.__bundle):
1aa13333eb9f Added a an entry to apply the currently previewed changegroup file to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5513
diff changeset
2567 shouldReopen = self.vcs.hgUnbundle(self.repodir,
1aa13333eb9f Added a an entry to apply the currently previewed changegroup file to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5513
diff changeset
2568 files=[self.__bundle])
1aa13333eb9f Added a an entry to apply the currently previewed changegroup file to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5513
diff changeset
2569 if shouldReopen:
1aa13333eb9f Added a an entry to apply the currently previewed changegroup file to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5513
diff changeset
2570 res = E5MessageBox.yesNo(
1aa13333eb9f Added a an entry to apply the currently previewed changegroup file to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5513
diff changeset
2571 None,
1aa13333eb9f Added a an entry to apply the currently previewed changegroup file to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5513
diff changeset
2572 self.tr("Apply Changegroup"),
1aa13333eb9f Added a an entry to apply the currently previewed changegroup file to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5513
diff changeset
2573 self.tr("""The project should be reread. Do this now?"""),
1aa13333eb9f Added a an entry to apply the currently previewed changegroup file to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5513
diff changeset
2574 yesDefault=True)
1aa13333eb9f Added a an entry to apply the currently previewed changegroup file to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5513
diff changeset
2575 if res:
1aa13333eb9f Added a an entry to apply the currently previewed changegroup file to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5513
diff changeset
2576 e5App().getObject("Project").reopenProject()
1aa13333eb9f Added a an entry to apply the currently previewed changegroup file to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5513
diff changeset
2577 return
1aa13333eb9f Added a an entry to apply the currently previewed changegroup file to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5513
diff changeset
2578
5670
7296fc0fae6d Changed the Mercurial log browser dialog to switch to log mode after applying a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
2579 self.vcs.vcsLogBrowser(self.repodir)
7296fc0fae6d Changed the Mercurial log browser dialog to switch to log mode after applying a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
2580 self.close()
5514
1aa13333eb9f Added a an entry to apply the currently previewed changegroup file to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5513
diff changeset
2581
1aa13333eb9f Added a an entry to apply the currently previewed changegroup file to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5513
diff changeset
2582 @pyqtSlot()
5506
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
2583 def __gpgSignActTriggered(self):
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
2584 """
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
2585 Private slot to sign the selected revisions.
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
2586 """
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
2587 revs = []
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2588 for itm in [item for item in self.logTree.selectedItems()
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2589 if not item.data(0, self.__incomingRole)]:
5506
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
2590 rev = itm.text(self.RevisionColumn).split(":", 1)[0].strip()
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
2591 if rev:
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
2592 revs.append(rev)
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
2593
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
2594 if revs:
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
2595 self.vcs.getExtensionObject("gpg").hgGpgSign(
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
2596 self.repodir, revisions=revs)
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
2597
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
2598 @pyqtSlot()
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
2599 def __gpgVerifyActTriggered(self):
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
2600 """
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
2601 Private slot to verify the signatures of a selected revisions.
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
2602 """
7009
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2603 itm = self.logTree.selectedItems()[0]
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2604 if not itm.data(0, self.__incomingRole):
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2605 rev = itm.text(self.RevisionColumn).split(":", 1)[0].strip()
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2606 if rev:
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2607 self.vcs.getExtensionObject("gpg").hgGpgVerifySignatures(
eaf5ed6ef298 Mercurial Interface:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6986
diff changeset
2608 self.repodir, rev=rev)
5506
9482a0ded319 Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5503
diff changeset
2609
5503
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2610 def __selectAllActTriggered(self, select=True):
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2611 """
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2612 Private method to select or unselect all log entries.
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2613
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2614 @param select flag indicating to select all entries
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2615 @type bool
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2616 """
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2617 blocked = self.logTree.blockSignals(True)
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2618 for row in range(self.logTree.topLevelItemCount()):
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2619 self.logTree.topLevelItem(row).setSelected(select)
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2620 self.logTree.blockSignals(blocked)
20dd5c1e43ec Finished adding a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5501
diff changeset
2621 self.on_logTree_itemSelectionChanged()
5501
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2622
4059
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2623 def __actionMode(self):
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2624 """
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2625 Private method to get the selected action mode.
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2626
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2627 @return selected action mode (string, one of filter or find)
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2628 """
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2629 return self.modeComboBox.itemData(
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2630 self.modeComboBox.currentIndex())
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2631
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2632 @pyqtSlot(int)
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2633 def on_modeComboBox_currentIndexChanged(self, index):
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2634 """
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2635 Private slot to react on mode changes.
4080
d4ba5fab5557 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4060
diff changeset
2636
d4ba5fab5557 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4060
diff changeset
2637 @param index index of the selected entry (integer)
4059
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2638 """
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2639 mode = self.modeComboBox.itemData(index)
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2640 findMode = mode == "find"
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2641 filterMode = mode == "filter"
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2642
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2643 self.fromDate.setEnabled(filterMode)
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2644 self.toDate.setEnabled(filterMode)
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2645 self.branchCombo.setEnabled(filterMode)
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2646 self.findPrevButton.setVisible(findMode)
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2647 self.findNextButton.setVisible(findMode)
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2648
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2649 if findMode:
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2650 for topIndex in range(self.logTree.topLevelItemCount()):
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2651 self.logTree.topLevelItem(topIndex).setHidden(False)
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2652 self.logTree.header().setSectionHidden(self.IconColumn, False)
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2653 elif filterMode:
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2654 self.__filterLogs()
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2655
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2656 @pyqtSlot()
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2657 def on_findPrevButton_clicked(self):
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2658 """
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2659 Private slot to find the previous item matching the entered criteria.
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2660 """
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2661 self.__findItem(True)
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2662
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2663 @pyqtSlot()
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2664 def on_findNextButton_clicked(self):
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2665 """
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2666 Private slot to find the next item matching the entered criteria.
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2667 """
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2668 self.__findItem(False)
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2669
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2670 def __findItem(self, backwards=False, interactive=False):
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2671 """
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2672 Private slot to find an item matching the entered criteria.
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2673
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2674 @param backwards flag indicating to search backwards (boolean)
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2675 @param interactive flag indicating an interactive search (boolean)
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2676 """
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2677 self.__findBackwards = backwards
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2678
4060
6dc9821fc9c8 Extended the Mercurial log browser search and filter functions to the list of changed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4059
diff changeset
2679 fieldIndex, searchRx, indexIsRole = self.__prepareFieldSearch()
4059
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2680 currentIndex = self.logTree.indexOfTopLevelItem(
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2681 self.logTree.currentItem())
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2682 if backwards:
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2683 if interactive:
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2684 indexes = range(currentIndex, -1, -1)
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2685 else:
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2686 indexes = range(currentIndex - 1, -1, -1)
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2687 else:
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2688 if interactive:
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2689 indexes = range(currentIndex, self.logTree.topLevelItemCount())
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2690 else:
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2691 indexes = range(currentIndex + 1,
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2692 self.logTree.topLevelItemCount())
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2693
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2694 for index in indexes:
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2695 topItem = self.logTree.topLevelItem(index)
4060
6dc9821fc9c8 Extended the Mercurial log browser search and filter functions to the list of changed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4059
diff changeset
2696 if indexIsRole:
6dc9821fc9c8 Extended the Mercurial log browser search and filter functions to the list of changed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4059
diff changeset
2697 if fieldIndex == self.__changesRole:
6dc9821fc9c8 Extended the Mercurial log browser search and filter functions to the list of changed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4059
diff changeset
2698 changes = topItem.data(0, self.__changesRole)
6dc9821fc9c8 Extended the Mercurial log browser search and filter functions to the list of changed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4059
diff changeset
2699 txt = "\n".join(
6dc9821fc9c8 Extended the Mercurial log browser search and filter functions to the list of changed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4059
diff changeset
2700 [c["path"] for c in changes] +
6dc9821fc9c8 Extended the Mercurial log browser search and filter functions to the list of changed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4059
diff changeset
2701 [c["copyfrom"] for c in changes]
6dc9821fc9c8 Extended the Mercurial log browser search and filter functions to the list of changed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4059
diff changeset
2702 )
6dc9821fc9c8 Extended the Mercurial log browser search and filter functions to the list of changed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4059
diff changeset
2703 else:
6dc9821fc9c8 Extended the Mercurial log browser search and filter functions to the list of changed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4059
diff changeset
2704 # Find based on complete message text
6dc9821fc9c8 Extended the Mercurial log browser search and filter functions to the list of changed files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4059
diff changeset
2705 txt = "\n".join(topItem.data(0, self.__messageRole))
4059
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2706 else:
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2707 txt = topItem.text(fieldIndex)
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2708 if searchRx.indexIn(txt) > -1:
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2709 self.logTree.setCurrentItem(self.logTree.topLevelItem(index))
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2710 break
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2711 else:
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2712 E5MessageBox.information(
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2713 self,
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2714 self.tr("Find Commit"),
15b78ac687fb Enhanced the Mercurial log browser functionality by a search mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
2715 self.tr("""'{0}' was not found.""").format(self.rxEdit.text()))
5445
b24720037f1f Added clickable links to the Mercurial log browser details pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5444
diff changeset
2716
b24720037f1f Added clickable links to the Mercurial log browser details pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5444
diff changeset
2717 def __revisionClicked(self, url):
b24720037f1f Added clickable links to the Mercurial log browser details pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5444
diff changeset
2718 """
b24720037f1f Added clickable links to the Mercurial log browser details pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5444
diff changeset
2719 Private slot to handle the anchorClicked signal of the changeset
b24720037f1f Added clickable links to the Mercurial log browser details pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5444
diff changeset
2720 details pane.
b24720037f1f Added clickable links to the Mercurial log browser details pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5444
diff changeset
2721
b24720037f1f Added clickable links to the Mercurial log browser details pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5444
diff changeset
2722 @param url URL that was clicked
b24720037f1f Added clickable links to the Mercurial log browser details pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5444
diff changeset
2723 @type QUrl
b24720037f1f Added clickable links to the Mercurial log browser details pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5444
diff changeset
2724 """
b24720037f1f Added clickable links to the Mercurial log browser details pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5444
diff changeset
2725 if url.scheme() == "rev":
b24720037f1f Added clickable links to the Mercurial log browser details pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5444
diff changeset
2726 # a parent or child revision was clicked, show the respective item
b24720037f1f Added clickable links to the Mercurial log browser details pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5444
diff changeset
2727 rev = url.path()
b24720037f1f Added clickable links to the Mercurial log browser details pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5444
diff changeset
2728 searchStr = "{0:>7}:".format(rev)
b24720037f1f Added clickable links to the Mercurial log browser details pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5444
diff changeset
2729 # format must be in sync with item generation format
b24720037f1f Added clickable links to the Mercurial log browser details pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5444
diff changeset
2730 items = self.logTree.findItems(searchStr, Qt.MatchStartsWith,
b24720037f1f Added clickable links to the Mercurial log browser details pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5444
diff changeset
2731 self.RevisionColumn)
b24720037f1f Added clickable links to the Mercurial log browser details pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5444
diff changeset
2732 if items:
b24720037f1f Added clickable links to the Mercurial log browser details pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5444
diff changeset
2733 itm = items[0]
b24720037f1f Added clickable links to the Mercurial log browser details pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5444
diff changeset
2734 if itm.isHidden():
b24720037f1f Added clickable links to the Mercurial log browser details pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5444
diff changeset
2735 itm.setHidden(False)
b24720037f1f Added clickable links to the Mercurial log browser details pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5444
diff changeset
2736 self.logTree.setCurrentItem(itm)
b24720037f1f Added clickable links to the Mercurial log browser details pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5444
diff changeset
2737 else:
b24720037f1f Added clickable links to the Mercurial log browser details pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5444
diff changeset
2738 # load the next batch and try again
5490
95db14ec60b2 Added some code to cope with unlimited recursions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5489
diff changeset
2739 if self.nextButton.isEnabled():
5493
09cd66fa3243 Fixed an issue in the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5490
diff changeset
2740 self.__addFinishCallback(
09cd66fa3243 Fixed an issue in the Mercurial log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5490
diff changeset
2741 lambda: self.__revisionClicked(url))
5490
95db14ec60b2 Added some code to cope with unlimited recursions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5489
diff changeset
2742 self.on_nextButton_clicked()
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2743
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2744 ###########################################################################
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2745 ## Diff handling methods below
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2746 ###########################################################################
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2747
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2748 def __generateDiffs(self, parent=1):
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2749 """
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2750 Private slot to generate diff outputs for the selected item.
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2751
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2752 @param parent number of parent to diff against
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2753 @type int
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2754 """
5518
2c5a6446980a Little enhancement to the Mercurial log browser diff pane.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5517
diff changeset
2755 self.diffEdit.setPlainText(self.tr("Generating differences ..."))
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2756 self.diffLabel.setText(self.tr("Differences"))
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2757 self.diffSelectLabel.clear()
5765
39d8b26ff557 Made the colors of the diff dialogs configurable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5736
diff changeset
2758 self.diffHighlighter.regenerateRules()
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2759
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2760 selectedItems = self.logTree.selectedItems()
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2761 if len(selectedItems) == 1:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2762 currentItem = selectedItems[0]
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2763 rev2 = currentItem.text(self.RevisionColumn).split(":", 1)[0]
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2764 parents = currentItem.data(0, self.__parentsRole)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2765 if len(parents) >= parent:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2766 self.diffLabel.setText(
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2767 self.tr("Differences to Parent {0}").format(parent))
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2768 rev1 = parents[parent - 1]
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2769
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2770 self.__diffGenerator.start(self.__filename, [rev1, rev2],
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2771 self.__bundle)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2772
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2773 if len(parents) > 1:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2774 if parent == 1:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2775 par1 = "&nbsp;1&nbsp;"
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2776 else:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2777 par1 = '<a href="diff:1">&nbsp;1&nbsp;</a>'
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2778 if parent == 2:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2779 par2 = "&nbsp;2&nbsp;"
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2780 else:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2781 par2 = '<a href="diff:2">&nbsp;2&nbsp;</a>'
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2782 self.diffSelectLabel.setText(
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2783 self.tr('Diff to Parent {0}{1}').format(par1, par2))
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2784 elif len(selectedItems) == 2:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2785 rev2 = int(selectedItems[0].text(
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2786 self.RevisionColumn).split(":")[0])
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2787 rev1 = int(selectedItems[1].text(
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2788 self.RevisionColumn).split(":")[0])
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2789
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2790 self.__diffGenerator.start(self.__filename,
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2791 [min(rev1, rev2), max(rev1, rev2)],
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2792 self.__bundle)
5562
19f22f304e2c Implemented a little fix for the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5518
diff changeset
2793 else:
19f22f304e2c Implemented a little fix for the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5518
diff changeset
2794 self.diffEdit.clear()
5477
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2795
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2796 def __generatorFinished(self):
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2797 """
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2798 Private slot connected to the finished signal of the diff generator.
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2799 """
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2800 diff, errors, fileSeparators = self.__diffGenerator.getResult()
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2801
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2802 if diff:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2803 self.diffEdit.setPlainText("".join(diff))
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2804 elif errors:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2805 self.diffEdit.setPlainText("".join(errors))
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2806 else:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2807 self.diffEdit.setPlainText(self.tr('There is no difference.'))
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2808
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2809 self.saveLabel.setVisible(bool(diff))
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2810
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2811 if self.__diffUpdatesFiles:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2812 for oldFileName, newFileName, lineNumber in fileSeparators:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2813 if oldFileName == newFileName:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2814 fileName = oldFileName
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2815 elif oldFileName == "__NULL__":
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2816 fileName = newFileName
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2817 else:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2818 fileName = oldFileName
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2819 item = QTreeWidgetItem(self.filesTree, ["", fileName, ""])
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2820 item.setData(0, self.__diffFileLineRole, lineNumber)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2821 self.__resizeColumnsFiles()
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2822 self.__resortFiles()
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2823 else:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2824 for oldFileName, newFileName, lineNumber in fileSeparators:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2825 for fileName in (oldFileName, newFileName):
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2826 if fileName != "__NULL__":
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2827 items = self.filesTree.findItems(
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2828 fileName, Qt.MatchExactly, 1)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2829 for item in items:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2830 item.setData(0, self.__diffFileLineRole,
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2831 lineNumber)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2832
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2833 tc = self.diffEdit.textCursor()
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2834 tc.movePosition(QTextCursor.Start)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2835 self.diffEdit.setTextCursor(tc)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2836 self.diffEdit.ensureCursorVisible()
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2837
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2838 @pyqtSlot(QTreeWidgetItem, QTreeWidgetItem)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2839 def on_filesTree_currentItemChanged(self, current, previous):
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2840 """
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2841 Private slot called, when the current item of the files tree changes.
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2842
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2843 @param current reference to the new current item (QTreeWidgetItem)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2844 @param previous reference to the old current item (QTreeWidgetItem)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2845 """
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2846 if current:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2847 para = current.data(0, self.__diffFileLineRole)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2848 if para is not None:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2849 if para == 0:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2850 tc = self.diffEdit.textCursor()
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2851 tc.movePosition(QTextCursor.Start)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2852 self.diffEdit.setTextCursor(tc)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2853 self.diffEdit.ensureCursorVisible()
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2854 elif para == -1:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2855 tc = self.diffEdit.textCursor()
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2856 tc.movePosition(QTextCursor.End)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2857 self.diffEdit.setTextCursor(tc)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2858 self.diffEdit.ensureCursorVisible()
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2859 else:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2860 # step 1: move cursor to end
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2861 tc = self.diffEdit.textCursor()
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2862 tc.movePosition(QTextCursor.End)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2863 self.diffEdit.setTextCursor(tc)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2864 self.diffEdit.ensureCursorVisible()
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2865
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2866 # step 2: move cursor to desired line
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2867 tc = self.diffEdit.textCursor()
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2868 delta = tc.blockNumber() - para
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2869 tc.movePosition(QTextCursor.PreviousBlock,
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2870 QTextCursor.MoveAnchor, delta)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2871 self.diffEdit.setTextCursor(tc)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2872 self.diffEdit.ensureCursorVisible()
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2873
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2874 @pyqtSlot(str)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2875 def on_diffSelectLabel_linkActivated(self, link):
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2876 """
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2877 Private slot to handle the selection of a diff target.
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2878
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2879 @param link activated link
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2880 @type str
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2881 """
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2882 if ":" in link:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2883 scheme, parent = link.split(":", 1)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2884 if scheme == "diff":
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2885 try:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2886 parent = int(parent)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2887 self.__generateDiffs(parent)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2888 except ValueError:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2889 # ignore silently
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2890 pass
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2891
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2892 @pyqtSlot(str)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2893 def on_saveLabel_linkActivated(self, link):
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2894 """
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2895 Private slot to handle the selection of the save link.
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2896
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2897 @param link activated link
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2898 @type str
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2899 """
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2900 if ":" not in link:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2901 return
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2902
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2903 scheme, rest = link.split(":", 1)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2904 if scheme != "save" or rest != "me":
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2905 return
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2906
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2907 if self.projectMode:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2908 fname = self.vcs.splitPath(self.__filename)[0]
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2909 fname += "/{0}.diff".format(os.path.split(fname)[-1])
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2910 else:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2911 dname, fname = self.vcs.splitPath(self.__filename)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2912 if fname != '.':
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2913 fname = "{0}.diff".format(self.__filename)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2914 else:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2915 fname = dname
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2916
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2917 fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2918 self,
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2919 self.tr("Save Diff"),
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2920 fname,
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2921 self.tr("Patch Files (*.diff)"),
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2922 None,
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2923 E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2924
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2925 if not fname:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2926 return # user aborted
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2927
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2928 ext = QFileInfo(fname).suffix()
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2929 if not ext:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2930 ex = selectedFilter.split("(*")[1].split(")")[0]
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2931 if ex:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2932 fname += ex
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2933 if QFileInfo(fname).exists():
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2934 res = E5MessageBox.yesNo(
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2935 self,
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2936 self.tr("Save Diff"),
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2937 self.tr("<p>The patch file <b>{0}</b> already exists."
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2938 " Overwrite it?</p>").format(fname),
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2939 icon=E5MessageBox.Warning)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2940 if not res:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2941 return
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2942 fname = Utilities.toNativeSeparators(fname)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2943
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2944 eol = e5App().getObject("Project").getEolString()
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2945 try:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2946 f = open(fname, "w", encoding="utf-8", newline="")
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2947 f.write(eol.join(self.diffEdit.toPlainText().splitlines()))
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2948 f.close()
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2949 except IOError as why:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2950 E5MessageBox.critical(
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2951 self, self.tr('Save Diff'),
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2952 self.tr(
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2953 '<p>The patch file <b>{0}</b> could not be saved.'
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2954 '<br>Reason: {1}</p>')
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2955 .format(fname, str(why)))
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2956
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2957 @pyqtSlot(str)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2958 def on_sbsSelectLabel_linkActivated(self, link):
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2959 """
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2960 Private slot to handle selection of a side-by-side link.
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2961
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2962 @param link text of the selected link
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2963 @type str
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2964 """
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2965 if ":" in link:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2966 scheme, path = link.split(":", 1)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2967 if scheme == "sbsdiff" and "_" in path:
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2968 rev1, rev2 = path.split("_", 1)
fb8875e356d4 Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5463
diff changeset
2969 self.vcs.hgSbsDiff(self.__filename, revisions=(rev1, rev2))

eric ide

mercurial