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.
1071
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
7923
91e843545d9a
Updated copyright for 2021.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7759
diff
changeset
|
3 | # Copyright (c) 2011 - 2021 Detlev Offenbach <detlev@die-offenbachs.de> |
1071
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing the purge extension interface. |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
ac0f74c0b870
Added support for the Mercurial purge 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:
3591
diff
changeset
|
10 | from PyQt5.QtWidgets import QDialog |
1071
ac0f74c0b870
Added support for the Mercurial purge 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:
1071
diff
changeset
|
12 | from ..HgExtension import HgExtension |
1071
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | from ..HgDialog import HgDialog |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | |
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:
1071
diff
changeset
|
16 | class Purge(HgExtension): |
1071
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | """ |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | Class implementing the purge extension interface. |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | """ |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | def __init__(self, vcs): |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | """ |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | Constructor |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | @param vcs reference to the Mercurial vcs object |
ac0f74c0b870
Added support for the Mercurial purge 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(Purge, self).__init__(vcs) |
1071
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | self.purgeListDialog = None |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | def shutdown(self): |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | """ |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | Public method used to shutdown the purge interface. |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | """ |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | if self.purgeListDialog is not None: |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | self.purgeListDialog.close() |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | |
7971
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
37 | def __getEntries(self, deleteAll): |
1071
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | """ |
3591
2f2a4a76dd22
Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3484
diff
changeset
|
39 | Private method to get a list of files/directories being purged. |
1071
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | |
5588
6ba512d9f46a
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
41 | @param deleteAll flag indicating to delete all files including ignored |
7971
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
42 | ones |
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
43 | @type bool |
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
44 | @return name of the current patch |
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
45 | @rtype str |
1071
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | """ |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | purgeEntries = [] |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | |
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
|
49 | args = self.vcs.initCommand("purge") |
1071
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | args.append("--print") |
5588
6ba512d9f46a
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
51 | if deleteAll: |
1071
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | args.append("--all") |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | |
1249
77f836a883c1
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
54 | client = self.vcs.getClient() |
7370
5fb53279f2df
Mercurial: removed some old code dealing with using the hg commandline executable instead of the command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
55 | out, err = client.runcommand(args) |
5fb53279f2df
Mercurial: removed some old code dealing with using the hg commandline executable instead of the command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
56 | if out: |
5fb53279f2df
Mercurial: removed some old code dealing with using the hg commandline executable instead of the command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
57 | purgeEntries = out.strip().split() |
1071
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | return purgeEntries |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | |
7971
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
61 | def hgPurge(self, deleteAll=False): |
1071
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | """ |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | Public method to purge files and directories not tracked by Mercurial. |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | |
5588
6ba512d9f46a
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
65 | @param deleteAll flag indicating to delete all files including ignored |
7971
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
66 | ones |
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
67 | @type bool |
1071
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | """ |
5588
6ba512d9f46a
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
69 | if deleteAll: |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
70 | title = self.tr("Purge All Files") |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
71 | message = self.tr( |
2962
d6c9d1ca2da4
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2771
diff
changeset
|
72 | """Do really want to delete all files not tracked by""" |
d6c9d1ca2da4
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2771
diff
changeset
|
73 | """ Mercurial (including ignored ones)?""") |
1071
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | else: |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
75 | title = self.tr("Purge Files") |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
76 | message = self.tr( |
2962
d6c9d1ca2da4
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2771
diff
changeset
|
77 | """Do really want to delete files not tracked by Mercurial?""") |
7971
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
78 | entries = self.__getEntries(deleteAll) |
7257
c4d0cac9b5c9
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
79 | from UI.DeleteFilesConfirmationDialog import ( |
2962
d6c9d1ca2da4
Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2771
diff
changeset
|
80 | DeleteFilesConfirmationDialog |
7257
c4d0cac9b5c9
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
81 | ) |
1071
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | dlg = DeleteFilesConfirmationDialog(None, title, message, entries) |
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
|
83 | if dlg.exec() == QDialog.DialogCode.Accepted: |
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
|
84 | args = self.vcs.initCommand("purge") |
5588
6ba512d9f46a
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
85 | if deleteAll: |
1071
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | args.append("--all") |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | args.append("-v") |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | |
1249
77f836a883c1
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
89 | dia = HgDialog(title, self.vcs) |
7971
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
90 | res = dia.startProcess(args) |
1071
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | if res: |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7370
diff
changeset
|
92 | dia.exec() |
1071
ac0f74c0b870
Added support for the Mercurial purge 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:
7923
diff
changeset
|
94 | def hgPurgeList(self, deleteAll=False): |
1071
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | """ |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | Public method to list files and directories not tracked by Mercurial. |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | |
5588
6ba512d9f46a
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
98 | @param deleteAll flag indicating to list all files including ignored |
6ba512d9f46a
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5587
diff
changeset
|
99 | ones (boolean) |
1071
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | """ |
7971
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
101 | entries = self.__getEntries(deleteAll) |
2405
d4b5f3bd4720
Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
102 | from .HgPurgeListDialog import HgPurgeListDialog |
1071
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | self.purgeListDialog = HgPurgeListDialog(entries) |
ac0f74c0b870
Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
104 | self.purgeListDialog.show() |