Tue, 24 Sep 2024 17:52:41 +0200
Changed EricCore, EricGraphics, EricGui and some of EricNetwork to allow them to be extracted into an external library later on.
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 | |
10439
21c28b0f9e41
Updated copyright for 2024.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9653
diff
changeset
|
3 | # Copyright (c) 2010 - 2024 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 enter the data for a merge operation. |
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_HgMergeDialog import Ui_HgMergeDialog |
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 HgMergeDialog(QDialog, Ui_HgMergeDialog): |
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 enter the data for a merge operation. |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
20 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
21 | def __init__(self, tagsList, branchesList, bookmarksList=None, 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 |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
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 parent parent widget |
9fe8cfa14542
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
32 | @type QWidget |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | """ |
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
|
34 | super().__init__(parent) |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | self.setupUi(self) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
36 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
37 | self.buttonBox.button(QDialogButtonBox.StandardButton.Ok).setEnabled(False) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
38 | |
739
efbfe57c8219
Modified some list(sorted(...)) calls.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
178
diff
changeset
|
39 | self.tagCombo.addItems(sorted(tagsList)) |
efbfe57c8219
Modified some list(sorted(...)) calls.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
178
diff
changeset
|
40 | self.branchCombo.addItems(["default"] + sorted(branchesList)) |
1017
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
41 | if bookmarksList is not None: |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
42 | self.bookmarkCombo.addItems(sorted(bookmarksList)) |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
43 | else: |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
44 | self.bookmarkButton.setHidden(True) |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
45 | self.bookmarkCombo.setHidden(True) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
46 | |
9025
9fe8cfa14542
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
47 | # connect various radio buttons and input fields |
9fe8cfa14542
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
48 | self.idButton.toggled.connect(self.__updateOK) |
9fe8cfa14542
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
49 | self.tagButton.toggled.connect(self.__updateOK) |
9fe8cfa14542
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
50 | self.branchButton.toggled.connect(self.__updateOK) |
9fe8cfa14542
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
51 | self.bookmarkButton.toggled.connect(self.__updateOK) |
9fe8cfa14542
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
52 | self.expressionButton.toggled.connect(self.__updateOK) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
53 | |
9025
9fe8cfa14542
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
54 | self.idEdit.textChanged.connect(self.__updateOK) |
9fe8cfa14542
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
55 | self.expressionEdit.textChanged.connect(self.__updateOK) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
56 | |
9025
9fe8cfa14542
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
57 | self.tagCombo.editTextChanged.connect(self.__updateOK) |
9fe8cfa14542
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
58 | self.branchCombo.editTextChanged.connect(self.__updateOK) |
9fe8cfa14542
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
59 | self.bookmarkCombo.editTextChanged.connect(self.__updateOK) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
60 | |
3366
6084bb3c3911
Made some changes to have a bunch of dialogs with correct sizes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3337
diff
changeset
|
61 | 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
|
62 | self.resize(max(self.width(), msh.width()), msh.height()) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
63 | |
9025
9fe8cfa14542
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
64 | @pyqtSlot() |
1017
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
65 | def __updateOK(self): |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
66 | """ |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
67 | Private slot to update the OK button. |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
68 | """ |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
69 | enabled = True |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
70 | if self.idButton.isChecked(): |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
71 | enabled = self.idEdit.text() != "" |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
72 | elif self.tagButton.isChecked(): |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
73 | enabled = self.tagCombo.currentText() != "" |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
74 | elif self.branchButton.isChecked(): |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
75 | enabled = self.branchCombo.currentText() != "" |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
76 | elif self.bookmarkButton.isChecked(): |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
77 | enabled = self.bookmarkCombo.currentText() != "" |
9025
9fe8cfa14542
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
78 | elif self.expressionButton.isChecked(): |
9fe8cfa14542
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
79 | enabled = enabled and bool(self.expressionEdit.text()) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
80 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
81 | self.buttonBox.button(QDialogButtonBox.StandardButton.Ok).setEnabled(enabled) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
82 | |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | def getParameters(self): |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | """ |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | Public method to retrieve the merge data. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
86 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
87 | @return tuple naming the revision and a flag indicating a |
9025
9fe8cfa14542
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
88 | forced merge |
9fe8cfa14542
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
89 | @rtype tuple of (str, bool) |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | """ |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | if self.numberButton.isChecked(): |
3337
49faa820151a
Corrected some Mercurial input dialogs offering to enter either a revision number or a changeset id to use rev() and id() to make the operation unambigous.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3306
diff
changeset
|
92 | rev = "rev({0})".format(self.numberSpinBox.value()) |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | elif self.idButton.isChecked(): |
3337
49faa820151a
Corrected some Mercurial input dialogs offering to enter either a revision number or a changeset id to use rev() and id() to make the operation unambigous.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3306
diff
changeset
|
94 | rev = "id({0})".format(self.idEdit.text()) |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | elif self.tagButton.isChecked(): |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | rev = self.tagCombo.currentText() |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | elif self.branchButton.isChecked(): |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | rev = self.branchCombo.currentText() |
1017
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
99 | elif self.bookmarkButton.isChecked(): |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
100 | rev = self.bookmarkCombo.currentText() |
9025
9fe8cfa14542
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
101 | elif self.expressionButton.isChecked(): |
9fe8cfa14542
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
102 | rev = self.expressionEdit.text() |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | else: |
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
104 | rev = "" |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
105 | |
178
dd9f0bca5e2f
Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | return rev, self.forceCheckBox.isChecked() |