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.
1075
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
75bfe8bd4243
Added support for the Mercurial gpg extension.
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) 2011 - 2021 Detlev Offenbach <detlev@die-offenbachs.de> |
1075
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing the gpg extension interface. |
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3562
diff
changeset
|
10 | from PyQt5.QtWidgets import QDialog |
1075
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | |
1087
fb8cd56819a9
Changed the Mercurial extension interface code to use custom base classes instead of inheriting QObject directly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1075
diff
changeset
|
12 | from ..HgExtension import HgExtension |
1075
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | from ..HgDialog import HgDialog |
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | from ..HgRevisionSelectionDialog import HgRevisionSelectionDialog |
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | |
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | |
1087
fb8cd56819a9
Changed the Mercurial extension interface code to use custom base classes instead of inheriting QObject directly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1075
diff
changeset
|
17 | class Gpg(HgExtension): |
1075
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | """ |
7679
5816200f021b
Mercurial: removed the interface to the deprecated 'fetch' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
19 | Class implementing the gpg extension interface. |
1075
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | """ |
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | def __init__(self, vcs): |
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | """ |
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | Constructor |
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | |
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | @param vcs reference to the Mercurial vcs object |
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | """ |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2405
diff
changeset
|
27 | super(Gpg, self).__init__(vcs) |
1075
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | |
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | self.gpgSignaturesDialog = None |
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | |
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | def shutdown(self): |
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | """ |
7679
5816200f021b
Mercurial: removed the interface to the deprecated 'fetch' extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
33 | Public method used to shutdown the gpg interface. |
1075
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | """ |
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | if self.gpgSignaturesDialog is not None: |
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | self.gpgSignaturesDialog.close() |
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | |
7970
c4ee8a81584c
Mercurial: started more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
38 | def hgGpgSignatures(self): |
1075
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | """ |
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | Public method used to list all signed changesets. |
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | """ |
2405
d4b5f3bd4720
Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
42 | from .HgGpgSignaturesDialog import HgGpgSignaturesDialog |
1075
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | self.gpgSignaturesDialog = HgGpgSignaturesDialog(self.vcs) |
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | self.gpgSignaturesDialog.show() |
7970
c4ee8a81584c
Mercurial: started more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
45 | self.gpgSignaturesDialog.start() |
1075
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | |
7970
c4ee8a81584c
Mercurial: started more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
47 | def hgGpgVerifySignatures(self, rev=None): |
1075
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | """ |
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | Public method used to verify the signatures of a revision. |
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | |
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | @param rev revision to check (string) |
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | """ |
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | if rev is None: |
3008
7848489bcb92
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2405
diff
changeset
|
54 | dlg = HgRevisionSelectionDialog( |
7970
c4ee8a81584c
Mercurial: started more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
55 | self.vcs.hgGetTagsList(), |
c4ee8a81584c
Mercurial: started more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
56 | self.vcs.hgGetBranchesList(), |
c4ee8a81584c
Mercurial: started more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
57 | self.vcs.hgGetBookmarksList()) |
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:
7971
diff
changeset
|
58 | if dlg.exec() == QDialog.DialogCode.Accepted: |
5477
fb8875e356d4
Fixed a bug in the Mercurial GPG verify signature dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
59 | rev = dlg.getRevision(revset=False) |
1075
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | |
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | if rev is not None: |
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | if rev == "": |
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | rev = "tip" |
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:
3190
diff
changeset
|
64 | args = self.vcs.initCommand("sigcheck") |
1075
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | args.append(rev) |
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
67 | dia = HgDialog(self.tr('Verify Signatures'), self.vcs) |
7970
c4ee8a81584c
Mercurial: started more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
68 | res = dia.startProcess(args) |
1075
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | if res: |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7679
diff
changeset
|
70 | dia.exec() |
1075
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | |
7970
c4ee8a81584c
Mercurial: started more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
72 | def hgGpgSign(self, revisions=None): |
1075
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | """ |
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | Public method used to list the available bookmarks. |
75bfe8bd4243
Added support for the Mercurial gpg extension.
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:
5477
diff
changeset
|
76 | @param revisions list containing the revisions to be signed |
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
77 | @type list of str |
1075
75bfe8bd4243
Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | """ |
5506
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
79 | if revisions is None: |
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
80 | from .HgGpgSignDialog import HgGpgSignDialog |
7970
c4ee8a81584c
Mercurial: started more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
81 | dlg = HgGpgSignDialog(self.vcs.hgGetTagsList(), |
c4ee8a81584c
Mercurial: started more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
82 | self.vcs.hgGetBranchesList(), |
c4ee8a81584c
Mercurial: started more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
83 | self.vcs.hgGetBookmarksList()) |
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:
7971
diff
changeset
|
84 | if dlg.exec() == QDialog.DialogCode.Accepted: |
7257
c4d0cac9b5c9
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
85 | revision, noCommit, message, keyId, local, force = ( |
5506
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
86 | dlg.getData() |
7257
c4d0cac9b5c9
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
87 | ) |
5506
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
88 | if revision: |
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
89 | revisions = [revision] |
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
90 | else: |
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
91 | revisions = [] |
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
92 | else: |
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
93 | return |
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
94 | else: |
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
95 | noCommit = False |
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
96 | message = "" |
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
97 | keyId = "" |
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
98 | local = False |
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
99 | force = False |
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
100 | |
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
101 | args = self.vcs.initCommand("sign") |
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
102 | if noCommit: |
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
103 | args.append("--no-commit") |
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
104 | if message: |
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
105 | args.append("--message") |
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
106 | args.append(message) |
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
107 | if keyId: |
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
108 | args.append("--key") |
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
109 | args.append(keyId) |
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
110 | if local: |
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
111 | args.append("--local") |
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
112 | if force: |
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
113 | args.append("--force") |
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
114 | for rev in revisions: |
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
115 | args.append(rev) |
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
116 | |
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
117 | dia = HgDialog(self.tr('Sign Revision'), self.vcs) |
7970
c4ee8a81584c
Mercurial: started more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
118 | res = dia.startProcess(args) |
5506
9482a0ded319
Added a GPG actions to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5477
diff
changeset
|
119 | if res: |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7679
diff
changeset
|
120 | dia.exec() |