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.
5268
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
7923
91e843545d9a
Updated copyright for 2021.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7900
diff
changeset
|
3 | # Copyright (c) 2016 - 2021 Detlev Offenbach <detlev@die-offenbachs.de> |
5268
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing the strip extension interface. |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | from PyQt5.QtWidgets import QDialog |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | from ..HgExtension import HgExtension |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | from ..HgDialog import HgDialog |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | class Strip(HgExtension): |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | """ |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | Class implementing the strip extension interface. |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | """ |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | def __init__(self, vcs): |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | """ |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | Constructor |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | @param vcs reference to the Mercurial vcs object |
5270
7758f0c7d9f6
Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5268
diff
changeset
|
25 | @type Hg |
5268
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | """ |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | super(Strip, self).__init__(vcs) |
748e4c50523b
Added support for the Mercurial strip extension.
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 hgStrip(self, rev=""): |
5268
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | """ |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | Public method to strip revisions from a repository. |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | |
7900
72b88fb20261
Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7780
diff
changeset
|
33 | @param rev revision to strip from |
5270
7758f0c7d9f6
Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5268
diff
changeset
|
34 | @type str |
7758f0c7d9f6
Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5268
diff
changeset
|
35 | @return flag indicating that the project should be reread |
7758f0c7d9f6
Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5268
diff
changeset
|
36 | @rtype bool |
5268
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | """ |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | from .HgStripDialog import HgStripDialog |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | res = False |
7970
c4ee8a81584c
Mercurial: started more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
40 | dlg = HgStripDialog(self.vcs.hgGetTagsList(), |
c4ee8a81584c
Mercurial: started more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
41 | self.vcs.hgGetBranchesList(), |
c4ee8a81584c
Mercurial: started more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
42 | self.vcs.hgGetBookmarksList(), |
5270
7758f0c7d9f6
Added support for the strip and fetch extensions to the log browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5268
diff
changeset
|
43 | rev) |
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
|
44 | if dlg.exec() == QDialog.DialogCode.Accepted: |
5268
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | rev, bookmark, force, noBackup, keep = dlg.getData() |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | args = self.vcs.initCommand("strip") |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | if bookmark: |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | args.append("--bookmark") |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | args.append(bookmark) |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | if force: |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | args.append("--force") |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | if noBackup: |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | args.append("--no-backup") |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | if keep: |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | args.append("--keep") |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | args.append("-v") |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | args.append(rev) |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | dia = HgDialog( |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | self.tr("Stripping changesets from repository"), |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | self.vcs) |
7970
c4ee8a81584c
Mercurial: started more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
63 | res = dia.startProcess(args) |
5268
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | if res: |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
65 | dia.exec() |
5268
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | res = dia.hasAddOrDelete() |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | self.vcs.checkVCSStatus() |
748e4c50523b
Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | return res |