Tue, 02 Mar 2021 17:17:09 +0100
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
7010
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
7923
91e843545d9a
Updated copyright for 2021.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7780
diff
changeset
|
3 | # Copyright (c) 2019 - 2021 Detlev Offenbach <detlev@die-offenbachs.de> |
7010
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing the closehead extension interface. |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | from PyQt5.QtWidgets import QDialog |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | from ..HgExtension import HgExtension |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | from ..HgDialog import HgDialog |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | class Closehead(HgExtension): |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | """ |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | Class implementing the strip extension interface. |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | """ |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | def __init__(self, vcs): |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | """ |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | Constructor |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | @param vcs reference to the Mercurial vcs object |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | @type Hg |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | """ |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | super(Closehead, self).__init__(vcs) |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | |
7970
c4ee8a81584c
Mercurial: started more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
29 | def hgCloseheads(self, revisions=None): |
7010
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | """ |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | Public method to close arbitrary heads. |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | @param revisions revisions of branch heads to be closed |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | @type str |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | """ |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | message = "" |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | if not revisions: |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | from .HgCloseHeadSelectionDialog import HgCloseHeadSelectionDialog |
7970
c4ee8a81584c
Mercurial: started more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
39 | dlg = HgCloseHeadSelectionDialog(self.vcs) |
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:
7970
diff
changeset
|
40 | if dlg.exec() == QDialog.DialogCode.Accepted: |
7010
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | revisions, message = dlg.getData() |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | if not revisions: |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | # still no revisions given; abort... |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | return |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | args = self.vcs.initCommand("close-head") |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | if not message: |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | if len(revisions) == 1: |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | message = self.tr("Revision <{0}> closed.").format( |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | revisions[0]) |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | else: |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | message = self.tr("Revisions <{0}> closed.").format( |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | ", ".join(revisions)) |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | args += ["--message", message] |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | for revision in revisions: |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | args += ["--rev", revision] |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | |
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | dia = HgDialog(self.tr("Closing Heads"), self.vcs) |
7970
c4ee8a81584c
Mercurial: started more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
60 | res = dia.startProcess(args) |
7010
5d6f5a69a952
Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | if res: |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
62 | dia.exec() |