src/eric7/Plugins/VcsPlugins/vcsMercurial/HgRevisionSelectionDialog.py

Thu, 07 Jul 2022 11:23:56 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 07 Jul 2022 11:23:56 +0200
branch
eric7
changeset 9209
b99e7fd55fd3
parent 9025
eric7/Plugins/VcsPlugins/vcsMercurial/HgRevisionSelectionDialog.py@9fe8cfa14542
child 9221
bf71ee032bb4
permissions
-rw-r--r--

Reorganized the project structure to use the source layout in order to support up-to-date build systems with "pyproject.toml".

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
8881
54e42bc2437a Updated copyright for 2022.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
3 # Copyright (c) 2010 - 2022 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 select a revision.
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
8318
962bce857696 Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
10 from PyQt6.QtCore import pyqtSlot
962bce857696 Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
11 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 from .Ui_HgRevisionSelectionDialog import Ui_HgRevisionSelectionDialog
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
15
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 class HgRevisionSelectionDialog(QDialog, Ui_HgRevisionSelectionDialog):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 Class implementing a dialog to select a revision.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 """
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
20 def __init__(self, tagsList, branchesList, bookmarksList=None,
9025
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
21 noneLabel="", revset=True, parent=None):
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 Constructor
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24
9025
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
25 @param tagsList list of tags
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
26 @type list of str
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
27 @param branchesList list of branches
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
28 @type list of str
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
29 @param bookmarksList list of bookmarks
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
30 @type list of str
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
31 @param noneLabel labeltext for "no revision selected"
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
32 @type str
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
33 @param revset flag indicating to allow the revision or ID given as a
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
34 revset
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
35 @type bool
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
36 @param parent parent widget
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
37 @type QWidget
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 """
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
39 super().__init__(parent)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 self.setupUi(self)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
42 self.buttonBox.button(
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
43 QDialogButtonBox.StandardButton.Ok).setEnabled(False)
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
44
739
efbfe57c8219 Modified some list(sorted(...)) calls.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
45 self.tagCombo.addItems(sorted(tagsList))
efbfe57c8219 Modified some list(sorted(...)) calls.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
46 self.branchCombo.addItems(["default"] + sorted(branchesList))
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
47 if bookmarksList is not None:
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
48 self.bookmarkCombo.addItems(sorted(bookmarksList))
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
49 else:
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
50 self.bookmarkButton.setHidden(True)
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
51 self.bookmarkCombo.setHidden(True)
202
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
52
3407
07966c6b5565 Changed a few Mercurial dialogs asking the user for the selection of a revision to be more accurate.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3366
diff changeset
53 if noneLabel:
07966c6b5565 Changed a few Mercurial dialogs asking the user for the selection of a revision to be more accurate.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3366
diff changeset
54 self.noneButton.setText(noneLabel)
3366
6084bb3c3911 Made some changes to have a bunch of dialogs with correct sizes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3337
diff changeset
55
9025
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
56 self.__revset = revset
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
57 self.expressionButton.setEnabled(revset)
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
58
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
59 # connect various radio buttons and input fields
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
60 self.idButton.toggled.connect(self.__updateOK)
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
61 self.tagButton.toggled.connect(self.__updateOK)
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
62 self.branchButton.toggled.connect(self.__updateOK)
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
63 self.bookmarkButton.toggled.connect(self.__updateOK)
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
64 self.expressionButton.toggled.connect(self.__updateOK)
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
65
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
66 self.idEdit.textChanged.connect(self.__updateOK)
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
67 self.expressionEdit.textChanged.connect(self.__updateOK)
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
68
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
69 self.tagCombo.editTextChanged.connect(self.__updateOK)
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
70 self.branchCombo.editTextChanged.connect(self.__updateOK)
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
71 self.bookmarkCombo.editTextChanged.connect(self.__updateOK)
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
72
3366
6084bb3c3911 Made some changes to have a bunch of dialogs with correct sizes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3337
diff changeset
73 msh = self.minimumSizeHint()
6084bb3c3911 Made some changes to have a bunch of dialogs with correct sizes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3337
diff changeset
74 self.resize(max(self.width(), msh.width()), msh.height())
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75
9025
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
76 @pyqtSlot()
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
77 def __updateOK(self):
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
78 """
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
79 Private slot to update the OK button.
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
80 """
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
81 enabled = True
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
82 if self.idButton.isChecked():
9025
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
83 enabled = bool(self.idEdit.text())
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
84 elif self.tagButton.isChecked():
9025
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
85 enabled = bool(self.tagCombo.currentText())
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
86 elif self.branchButton.isChecked():
9025
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
87 enabled = bool(self.branchCombo.currentText())
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
88 elif self.bookmarkButton.isChecked():
9025
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
89 enabled = bool(self.bookmarkCombo.currentText())
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
90 elif self.expressionButton.isChecked():
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
91 enabled = enabled and bool(self.expressionEdit.text())
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
92
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
93 self.buttonBox.button(
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
94 QDialogButtonBox.StandardButton.Ok).setEnabled(enabled)
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
95
9025
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
96 def getRevision(self):
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 Public method to retrieve the selected revision.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99
5478
3d498aa4f97f Started a major rework of the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
100 @return selected revision
3d498aa4f97f Started a major rework of the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
101 @rtype str
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 if self.numberButton.isChecked():
9025
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
104 if self.__revset:
5478
3d498aa4f97f Started a major rework of the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
105 rev = "rev({0})".format(self.numberSpinBox.value())
3d498aa4f97f Started a major rework of the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
106 else:
3d498aa4f97f Started a major rework of the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
107 rev = str(self.numberSpinBox.value())
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 elif self.idButton.isChecked():
9025
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
109 if self.__revset:
5478
3d498aa4f97f Started a major rework of the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
110 rev = "id({0})".format(self.idEdit.text())
3d498aa4f97f Started a major rework of the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
111 else:
3d498aa4f97f Started a major rework of the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
112 rev = self.idEdit.text()
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 elif self.tagButton.isChecked():
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 rev = self.tagCombo.currentText()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 elif self.branchButton.isChecked():
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 rev = self.branchCombo.currentText()
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
117 elif self.bookmarkButton.isChecked():
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
118 rev = self.bookmarkCombo.currentText()
9025
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
119 elif self.expressionButton.isChecked():
9fe8cfa14542 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
120 rev = self.expressionEdit.text()
3407
07966c6b5565 Changed a few Mercurial dialogs asking the user for the selection of a revision to be more accurate.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3366
diff changeset
121 elif self.tipButton.isChecked():
07966c6b5565 Changed a few Mercurial dialogs asking the user for the selection of a revision to be more accurate.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3366
diff changeset
122 rev = "tip"
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 else:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 rev = ""
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 return rev

eric ide

mercurial