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.
1093
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
47bc4ef30315
Added support for the Mercurial rebase 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> |
1093
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing the rebase extension interface. |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
47bc4ef30315
Added support for the Mercurial rebase 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 |
1093
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | from ..HgExtension import HgExtension |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | from ..HgDialog import HgDialog |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | class Rebase(HgExtension): |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | """ |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | Class implementing the rebase extension interface. |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | """ |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | def __init__(self, vcs): |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | """ |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | Constructor |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | @param vcs reference to the Mercurial vcs object |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | """ |
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
|
26 | super(Rebase, self).__init__(vcs) |
1093
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | |
7971
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
28 | def hgRebase(self): |
1093
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | """ |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | Public method to rebase changesets to a different branch. |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | @return flag indicating that the project should be reread (boolean) |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | """ |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | res = False |
2405
d4b5f3bd4720
Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
35 | from .HgRebaseDialog import HgRebaseDialog |
7970
c4ee8a81584c
Mercurial: started more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
36 | dlg = HgRebaseDialog(self.vcs.hgGetTagsList(), |
c4ee8a81584c
Mercurial: started more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
37 | self.vcs.hgGetBranchesList(), |
c4ee8a81584c
Mercurial: started more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
38 | self.vcs.hgGetBookmarksList(), |
6459
68c13732795b
rebase, HgRebaseDialog: add support for --confirm and --dry-run as of Mercurial 4.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6458
diff
changeset
|
39 | self.vcs.version) |
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
|
40 | if dlg.exec() == QDialog.DialogCode.Accepted: |
3008
7848489bcb92
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2405
diff
changeset
|
41 | (indicator, sourceRev, destRev, collapse, keep, keepBranches, |
6459
68c13732795b
rebase, HgRebaseDialog: add support for --confirm and --dry-run as of Mercurial 4.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6458
diff
changeset
|
42 | detach, dryRunOnly, dryRunConfirm) = dlg.getData() |
1093
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | |
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
|
44 | args = self.vcs.initCommand("rebase") |
1093
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | if indicator == "S": |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | args.append("--source") |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | args.append(sourceRev) |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | elif indicator == "B": |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | args.append("--base") |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | args.append(sourceRev) |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | if destRev: |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | args.append("--dest") |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | args.append(destRev) |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | if collapse: |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | args.append("--collapse") |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | if keep: |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | args.append("--keep") |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | if keepBranches: |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | args.append("--keepbranches") |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | if detach: |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | args.append("--detach") |
6459
68c13732795b
rebase, HgRebaseDialog: add support for --confirm and --dry-run as of Mercurial 4.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6458
diff
changeset
|
62 | if dryRunOnly: |
68c13732795b
rebase, HgRebaseDialog: add support for --confirm and --dry-run as of Mercurial 4.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6458
diff
changeset
|
63 | args.append("--dry-run") |
68c13732795b
rebase, HgRebaseDialog: add support for --confirm and --dry-run as of Mercurial 4.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6458
diff
changeset
|
64 | elif dryRunConfirm: |
68c13732795b
rebase, HgRebaseDialog: add support for --confirm and --dry-run as of Mercurial 4.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6458
diff
changeset
|
65 | args.append("--confirm") |
1093
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | args.append("--verbose") |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
68 | dia = HgDialog(self.tr('Rebase Changesets'), self.vcs) |
7971
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
69 | res = dia.startProcess(args) |
1093
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | if res: |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
71 | dia.exec() |
1093
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | res = dia.hasAddOrDelete() |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | self.vcs.checkVCSStatus() |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | return res |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | |
7971
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
76 | def hgRebaseContinue(self): |
1093
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | """ |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | Public method to continue rebasing changesets from another branch. |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | @return flag indicating that the project should be reread (boolean) |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | """ |
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
|
82 | args = self.vcs.initCommand("rebase") |
1093
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | args.append("--continue") |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | args.append("--verbose") |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
86 | dia = HgDialog(self.tr('Rebase Changesets (Continue)'), self.vcs) |
7971
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
87 | res = dia.startProcess(args) |
1093
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | if res: |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
89 | dia.exec() |
1093
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | res = dia.hasAddOrDelete() |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | self.vcs.checkVCSStatus() |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | return res |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | |
7971
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
94 | def hgRebaseAbort(self): |
1093
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | """ |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | Public method to abort rebasing changesets from another branch. |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | @return flag indicating that the project should be reread (boolean) |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | """ |
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
|
100 | args = self.vcs.initCommand("rebase") |
1093
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | args.append("--abort") |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | args.append("--verbose") |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
104 | dia = HgDialog(self.tr('Rebase Changesets (Abort)'), self.vcs) |
7971
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
105 | res = dia.startProcess(args) |
1093
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | if res: |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
107 | dia.exec() |
1093
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | res = dia.hasAddOrDelete() |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | self.vcs.checkVCSStatus() |
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | return res |