src/eric7/Plugins/VcsPlugins/vcsMercurial/ShelveExtension/shelve.py

branch
eric7
changeset 11006
a671918232f3
parent 10439
21c28b0f9e41
equal deleted inserted replaced
11005:b918c6c2736b 11006:a671918232f3
19 class Shelve(HgExtension): 19 class Shelve(HgExtension):
20 """ 20 """
21 Class implementing the shelve extension interface. 21 Class implementing the shelve extension interface.
22 """ 22 """
23 23
24 def __init__(self, vcs): 24 def __init__(self, vcs, ui=None):
25 """ 25 """
26 Constructor 26 Constructor
27 27
28 @param vcs reference to the Mercurial vcs object 28 @param vcs reference to the Mercurial vcs object
29 @type Hg 29 @type Hg
30 """ 30 @param ui reference to a UI widget (defaults to None)
31 super().__init__(vcs) 31 @type QWidget
32 """
33 super().__init__(vcs, ui=ui)
32 34
33 self.__unshelveKeep = False 35 self.__unshelveKeep = False
34 36
35 self.__shelveBrowserDialog = None 37 self.__shelveBrowserDialog = None
36 38
72 @rtype bool 74 @rtype bool
73 """ 75 """
74 from .HgShelveDataDialog import HgShelveDataDialog 76 from .HgShelveDataDialog import HgShelveDataDialog
75 77
76 res = False 78 res = False
77 dlg = HgShelveDataDialog(self.vcs.version) 79 dlg = HgShelveDataDialog(self.vcs.version, parent=self.ui)
78 if dlg.exec() == QDialog.DialogCode.Accepted: 80 if dlg.exec() == QDialog.DialogCode.Accepted:
79 shelveName, dateTime, message, addRemove, keep = dlg.getData() 81 shelveName, dateTime, message, addRemove, keep = dlg.getData()
80 82
81 args = self.vcs.initCommand("shelve") 83 args = self.vcs.initCommand("shelve")
82 if shelveName: 84 if shelveName:
97 if isinstance(name, list): 99 if isinstance(name, list):
98 self.vcs.addArguments(args, name) 100 self.vcs.addArguments(args, name)
99 else: 101 else:
100 args.append(name) 102 args.append(name)
101 103
102 dia = HgDialog(self.tr("Shelve current changes"), self.vcs) 104 dia = HgDialog(
105 self.tr("Shelve current changes"), hg=self.vcs, parent=self.ui
106 )
103 res = dia.startProcess(args) 107 res = dia.startProcess(args)
104 if res: 108 if res:
105 dia.exec() 109 dia.exec()
106 res = dia.hasAddOrDelete() 110 res = dia.hasAddOrDelete()
107 self.vcs.checkVCSStatus() 111 self.vcs.checkVCSStatus()
128 @rtype bool 132 @rtype bool
129 """ 133 """
130 from .HgUnshelveDataDialog import HgUnshelveDataDialog 134 from .HgUnshelveDataDialog import HgUnshelveDataDialog
131 135
132 res = False 136 res = False
133 dlg = HgUnshelveDataDialog(self.__hgGetShelveNamesList(), shelveName=shelveName) 137 dlg = HgUnshelveDataDialog(
138 self.__hgGetShelveNamesList(), shelveName=shelveName, parent=self.ui
139 )
134 if dlg.exec() == QDialog.DialogCode.Accepted: 140 if dlg.exec() == QDialog.DialogCode.Accepted:
135 shelveName, keep = dlg.getData() 141 shelveName, keep = dlg.getData()
136 self.__unshelveKeep = keep # store for potential continue 142 self.__unshelveKeep = keep # store for potential continue
137 143
138 args = self.vcs.initCommand("unshelve") 144 args = self.vcs.initCommand("unshelve")
139 if keep: 145 if keep:
140 args.append("--keep") 146 args.append("--keep")
141 if shelveName: 147 if shelveName:
142 args.append(shelveName) 148 args.append(shelveName)
143 149
144 dia = HgDialog(self.tr("Restore shelved changes"), self.vcs) 150 dia = HgDialog(
151 self.tr("Restore shelved changes"), hg=self.vcs, parent=self.ui
152 )
145 res = dia.startProcess(args) 153 res = dia.startProcess(args)
146 if res: 154 if res:
147 dia.exec() 155 dia.exec()
148 res = dia.hasAddOrDelete() 156 res = dia.hasAddOrDelete()
149 self.vcs.checkVCSStatus() 157 self.vcs.checkVCSStatus()
157 @rtype bool 165 @rtype bool
158 """ 166 """
159 args = self.vcs.initCommand("unshelve") 167 args = self.vcs.initCommand("unshelve")
160 args.append("--abort") 168 args.append("--abort")
161 169
162 dia = HgDialog(self.tr("Abort restore operation"), self.vcs) 170 dia = HgDialog(self.tr("Abort restore operation"), hg=self.vcs, parent=self.ui)
163 res = dia.startProcess(args) 171 res = dia.startProcess(args)
164 if res: 172 if res:
165 dia.exec() 173 dia.exec()
166 res = dia.hasAddOrDelete() 174 res = dia.hasAddOrDelete()
167 self.vcs.checkVCSStatus() 175 self.vcs.checkVCSStatus()
177 args = self.vcs.initCommand("unshelve") 185 args = self.vcs.initCommand("unshelve")
178 if self.__unshelveKeep: 186 if self.__unshelveKeep:
179 args.append("--keep") 187 args.append("--keep")
180 args.append("--continue") 188 args.append("--continue")
181 189
182 dia = HgDialog(self.tr("Continue restore operation"), self.vcs) 190 dia = HgDialog(
191 self.tr("Continue restore operation"), hg=self.vcs, parent=self.ui
192 )
183 res = dia.startProcess(args) 193 res = dia.startProcess(args)
184 if res: 194 if res:
185 dia.exec() 195 dia.exec()
186 res = dia.hasAddOrDelete() 196 res = dia.hasAddOrDelete()
187 self.vcs.checkVCSStatus() 197 self.vcs.checkVCSStatus()
198 208
199 if not shelveNames: 209 if not shelveNames:
200 dlg = HgShelvesSelectionDialog( 210 dlg = HgShelvesSelectionDialog(
201 self.tr("Select the shelves to be deleted:"), 211 self.tr("Select the shelves to be deleted:"),
202 self.__hgGetShelveNamesList(), 212 self.__hgGetShelveNamesList(),
213 parent=self.ui,
203 ) 214 )
204 if dlg.exec() == QDialog.DialogCode.Accepted: 215 if dlg.exec() == QDialog.DialogCode.Accepted:
205 shelveNames = dlg.getSelectedShelves() 216 shelveNames = dlg.getSelectedShelves()
206 else: 217 else:
207 return 218 return
208 219
209 dlg = DeleteFilesConfirmationDialog( 220 dlg = DeleteFilesConfirmationDialog(
210 None, 221 self.ui,
211 self.tr("Delete shelves"), 222 self.tr("Delete shelves"),
212 self.tr("Do you really want to delete these shelves?"), 223 self.tr("Do you really want to delete these shelves?"),
213 shelveNames, 224 shelveNames,
214 ) 225 )
215 if dlg.exec() == QDialog.DialogCode.Accepted: 226 if dlg.exec() == QDialog.DialogCode.Accepted:
216 args = self.vcs.initCommand("shelve") 227 args = self.vcs.initCommand("shelve")
217 args.append("--delete") 228 args.append("--delete")
218 args.extend(shelveNames) 229 args.extend(shelveNames)
219 230
220 dia = HgDialog(self.tr("Delete shelves"), self.vcs) 231 dia = HgDialog(self.tr("Delete shelves"), hg=self.vcs, parent=self.ui)
221 res = dia.startProcess(args) 232 res = dia.startProcess(args)
222 if res: 233 if res:
223 dia.exec() 234 dia.exec()
224 235
225 def hgCleanupShelves(self): 236 def hgCleanupShelves(self):
233 ) 244 )
234 if res: 245 if res:
235 args = self.vcs.initCommand("shelve") 246 args = self.vcs.initCommand("shelve")
236 args.append("--cleanup") 247 args.append("--cleanup")
237 248
238 dia = HgDialog(self.tr("Delete all shelves"), self.vcs) 249 dia = HgDialog(self.tr("Delete all shelves"), hg=self.vcs, parent=self.ui)
239 res = dia.startProcess(args) 250 res = dia.startProcess(args)
240 if res: 251 if res:
241 dia.exec() 252 dia.exec()

eric ide

mercurial