eric6/Plugins/VcsPlugins/vcsMercurial/PurgeExtension/ProjectHelper.py

changeset 6942
2602857055c5
parent 6645
ad476851d7e0
child 7229
53054eb5b15a
equal deleted inserted replaced
6941:f99d60d6b59b 6942:2602857055c5
1 # -*- coding: utf-8 -*-
2
3 # Copyright (c) 2011 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
4 #
5
6 """
7 Module implementing the purge extension project helper.
8 """
9
10 from __future__ import unicode_literals
11
12 from PyQt5.QtWidgets import QMenu
13
14 from E5Gui.E5Action import E5Action
15
16 from ..HgExtensionProjectHelper import HgExtensionProjectHelper
17
18 import UI.PixmapCache
19
20
21 class PurgeProjectHelper(HgExtensionProjectHelper):
22 """
23 Class implementing the purge extension project helper.
24 """
25 def __init__(self):
26 """
27 Constructor
28 """
29 super(PurgeProjectHelper, self).__init__()
30
31 def initActions(self):
32 """
33 Public method to generate the action objects.
34 """
35 self.hgPurgeAct = E5Action(
36 self.tr('Purge Files'),
37 UI.PixmapCache.getIcon("fileDelete.png"),
38 self.tr('Purge Files'),
39 0, 0, self, 'mercurial_purge')
40 self.hgPurgeAct.setStatusTip(self.tr(
41 'Delete files and directories not known to Mercurial'
42 ))
43 self.hgPurgeAct.setWhatsThis(self.tr(
44 """<b>Purge Files</b>"""
45 """<p>This deletes files and directories not known to Mercurial."""
46 """ That means that purge will delete:<ul>"""
47 """<li>unknown files (marked with "not tracked" in the status"""
48 """ dialog)</li>"""
49 """<li>empty directories</li>"""
50 """</ul>Note that ignored files will be left untouched.</p>"""
51 ))
52 self.hgPurgeAct.triggered.connect(self.__hgPurge)
53 self.actions.append(self.hgPurgeAct)
54
55 self.hgPurgeAllAct = E5Action(
56 self.tr('Purge All Files'),
57 self.tr('Purge All Files'),
58 0, 0, self, 'mercurial_purge_all')
59 self.hgPurgeAllAct.setStatusTip(self.tr(
60 'Delete files and directories not known to Mercurial including'
61 ' ignored ones'
62 ))
63 self.hgPurgeAllAct.setWhatsThis(self.tr(
64 """<b>Purge All Files</b>"""
65 """<p>This deletes files and directories not known to Mercurial."""
66 """ That means that purge will delete:<ul>"""
67 """<li>unknown files (marked with "not tracked" in the status"""
68 """ dialog)</li>"""
69 """<li>empty directories</li>"""
70 """<li>ignored files and directories</li>"""
71 """</ul></p>"""
72 ))
73 self.hgPurgeAllAct.triggered.connect(self.__hgPurgeAll)
74 self.actions.append(self.hgPurgeAllAct)
75
76 self.hgPurgeListAct = E5Action(
77 self.tr('List Files to be Purged'),
78 UI.PixmapCache.getIcon("fileDeleteList.png"),
79 self.tr('List Files to be Purged...'),
80 0, 0, self, 'mercurial_purge_list')
81 self.hgPurgeListAct.setStatusTip(self.tr(
82 'List files and directories not known to Mercurial'
83 ))
84 self.hgPurgeListAct.setWhatsThis(self.tr(
85 """<b>List Files to be Purged</b>"""
86 """<p>This lists files and directories not known to Mercurial."""
87 """ These would be deleted by the "Purge Files" menu entry.</p>"""
88 ))
89 self.hgPurgeListAct.triggered.connect(self.__hgPurgeList)
90 self.actions.append(self.hgPurgeListAct)
91
92 self.hgPurgeAllListAct = E5Action(
93 self.tr('List All Files to be Purged'),
94 self.tr('List All Files to be Purged...'),
95 0, 0, self, 'mercurial_purge_all_list')
96 self.hgPurgeAllListAct.setStatusTip(self.tr(
97 'List files and directories not known to Mercurial including'
98 ' ignored ones'
99 ))
100 self.hgPurgeAllListAct.setWhatsThis(self.tr(
101 """<b>List All Files to be Purged</b>"""
102 """<p>This lists files and directories not known to Mercurial"""
103 """ including ignored ones. These would be deleted by the"""
104 """ "Purge All Files" menu entry.</p>"""
105 ))
106 self.hgPurgeAllListAct.triggered.connect(self.__hgPurgeAllList)
107 self.actions.append(self.hgPurgeAllListAct)
108
109 def initMenu(self, mainMenu):
110 """
111 Public method to generate the extension menu.
112
113 @param mainMenu reference to the main menu (QMenu)
114 @return populated menu (QMenu)
115 """
116 menu = QMenu(self.menuTitle(), mainMenu)
117 menu.setIcon(UI.PixmapCache.getIcon("fileDelete.png"))
118 menu.setTearOffEnabled(True)
119
120 menu.addAction(self.hgPurgeAct)
121 menu.addAction(self.hgPurgeAllAct)
122 menu.addSeparator()
123 menu.addAction(self.hgPurgeListAct)
124 menu.addAction(self.hgPurgeAllListAct)
125
126 return menu
127
128 def menuTitle(self):
129 """
130 Public method to get the menu title.
131
132 @return title of the menu (string)
133 """
134 return self.tr("Purge")
135
136 def __hgPurge(self):
137 """
138 Private slot used to remove files not tracked by Mercurial.
139 """
140 self.vcs.getExtensionObject("purge")\
141 .hgPurge(self.project.getProjectPath(), deleteAll=False)
142
143 def __hgPurgeAll(self):
144 """
145 Private slot used to remove all files not tracked by Mercurial.
146 """
147 self.vcs.getExtensionObject("purge")\
148 .hgPurge(self.project.getProjectPath(), deleteAll=True)
149
150 def __hgPurgeList(self):
151 """
152 Private slot used to list files not tracked by Mercurial.
153 """
154 self.vcs.getExtensionObject("purge")\
155 .hgPurgeList(self.project.getProjectPath(), deleteAll=False)
156
157 def __hgPurgeAllList(self):
158 """
159 Private slot used to list all files not tracked by Mercurial.
160 """
161 self.vcs.getExtensionObject("purge")\
162 .hgPurgeList(self.project.getProjectPath(), deleteAll=True)

eric ide

mercurial