VCS/ProjectHelper.py

changeset 3190
a9a94491c4fd
parent 3164
a027fc190f82
child 3302
e92f0dd51979
equal deleted inserted replaced
3189:9a21c547de5f 3190:a9a94491c4fd
60 def initActions(self): 60 def initActions(self):
61 """ 61 """
62 Public method to generate the action objects. 62 Public method to generate the action objects.
63 """ 63 """
64 self.vcsNewAct = E5Action( 64 self.vcsNewAct = E5Action(
65 self.trUtf8('New from repository'), 65 self.tr('New from repository'),
66 self.trUtf8('&New from repository...'), 66 self.tr('&New from repository...'),
67 0, 0, self, 'vcs_new') 67 0, 0, self, 'vcs_new')
68 self.vcsNewAct.setStatusTip(self.trUtf8( 68 self.vcsNewAct.setStatusTip(self.tr(
69 'Create a new project from the VCS repository' 69 'Create a new project from the VCS repository'
70 )) 70 ))
71 self.vcsNewAct.setWhatsThis(self.trUtf8( 71 self.vcsNewAct.setWhatsThis(self.tr(
72 """<b>New from repository</b>""" 72 """<b>New from repository</b>"""
73 """<p>This creates a new local project from the VCS""" 73 """<p>This creates a new local project from the VCS"""
74 """ repository.</p>""" 74 """ repository.</p>"""
75 )) 75 ))
76 self.vcsNewAct.triggered[()].connect(self._vcsCheckout) 76 self.vcsNewAct.triggered[()].connect(self._vcsCheckout)
77 self.actions.append(self.vcsNewAct) 77 self.actions.append(self.vcsNewAct)
78 78
79 self.vcsExportAct = E5Action( 79 self.vcsExportAct = E5Action(
80 self.trUtf8('Export from repository'), 80 self.tr('Export from repository'),
81 self.trUtf8('&Export from repository...'), 81 self.tr('&Export from repository...'),
82 0, 0, self, 'vcs_export') 82 0, 0, self, 'vcs_export')
83 self.vcsExportAct.setStatusTip(self.trUtf8( 83 self.vcsExportAct.setStatusTip(self.tr(
84 'Export a project from the repository' 84 'Export a project from the repository'
85 )) 85 ))
86 self.vcsExportAct.setWhatsThis(self.trUtf8( 86 self.vcsExportAct.setWhatsThis(self.tr(
87 """<b>Export from repository</b>""" 87 """<b>Export from repository</b>"""
88 """<p>This exports a project from the repository.</p>""" 88 """<p>This exports a project from the repository.</p>"""
89 )) 89 ))
90 self.vcsExportAct.triggered[()].connect(self._vcsExport) 90 self.vcsExportAct.triggered[()].connect(self._vcsExport)
91 self.actions.append(self.vcsExportAct) 91 self.actions.append(self.vcsExportAct)
92 92
93 self.vcsAddAct = E5Action( 93 self.vcsAddAct = E5Action(
94 self.trUtf8('Add to repository'), 94 self.tr('Add to repository'),
95 self.trUtf8('&Add to repository...'), 95 self.tr('&Add to repository...'),
96 0, 0, self, 'vcs_add') 96 0, 0, self, 'vcs_add')
97 self.vcsAddAct.setStatusTip(self.trUtf8( 97 self.vcsAddAct.setStatusTip(self.tr(
98 'Add the local project to the VCS repository' 98 'Add the local project to the VCS repository'
99 )) 99 ))
100 self.vcsAddAct.setWhatsThis(self.trUtf8( 100 self.vcsAddAct.setWhatsThis(self.tr(
101 """<b>Add to repository</b>""" 101 """<b>Add to repository</b>"""
102 """<p>This adds (imports) the local project to the VCS""" 102 """<p>This adds (imports) the local project to the VCS"""
103 """ repository.</p>""" 103 """ repository.</p>"""
104 )) 104 ))
105 self.vcsAddAct.triggered[()].connect(self._vcsImport) 105 self.vcsAddAct.triggered[()].connect(self._vcsImport)
146 keys = sorted(vcsSystemsDict.keys()) 146 keys = sorted(vcsSystemsDict.keys())
147 for key in keys: 147 for key in keys:
148 vcsSystemsDisplay.append(vcsSystemsDict[key]) 148 vcsSystemsDisplay.append(vcsSystemsDict[key])
149 vcsSelected, ok = QInputDialog.getItem( 149 vcsSelected, ok = QInputDialog.getItem(
150 None, 150 None,
151 self.trUtf8("New Project"), 151 self.tr("New Project"),
152 self.trUtf8("Select version control system for the project"), 152 self.tr("Select version control system for the project"),
153 vcsSystemsDisplay, 153 vcsSystemsDisplay,
154 0, False) 154 0, False)
155 if not ok: 155 if not ok:
156 return 156 return
157 for vcsSystem, vcsSystemDisplay in list(vcsSystemsDict.items()): 157 for vcsSystem, vcsSystemDisplay in list(vcsSystemsDict.items()):
170 self.project.pdata["VCS"] = [vcsSystem] 170 self.project.pdata["VCS"] = [vcsSystem]
171 self.project.vcs = self.project.initVCS(vcsSystem) 171 self.project.vcs = self.project.initVCS(vcsSystem)
172 # edit VCS command options 172 # edit VCS command options
173 vcores = E5MessageBox.yesNo( 173 vcores = E5MessageBox.yesNo(
174 self.parent(), 174 self.parent(),
175 self.trUtf8("New Project"), 175 self.tr("New Project"),
176 self.trUtf8( 176 self.tr(
177 """Would you like to edit the VCS command options?""")) 177 """Would you like to edit the VCS command options?"""))
178 if vcores: 178 if vcores:
179 from .CommandOptionsDialog import VcsCommandOptionsDialog 179 from .CommandOptionsDialog import VcsCommandOptionsDialog
180 codlg = VcsCommandOptionsDialog(self.project.vcs) 180 codlg = VcsCommandOptionsDialog(self.project.vcs)
181 if codlg.exec_() == QDialog.Accepted: 181 if codlg.exec_() == QDialog.Accepted:
186 try: 186 try:
187 os.makedirs(projectdir) 187 os.makedirs(projectdir)
188 except EnvironmentError: 188 except EnvironmentError:
189 E5MessageBox.critical( 189 E5MessageBox.critical(
190 self.parent(), 190 self.parent(),
191 self.trUtf8("Create project directory"), 191 self.tr("Create project directory"),
192 self.trUtf8( 192 self.tr(
193 "<p>The project directory <b>{0}</b> could not" 193 "<p>The project directory <b>{0}</b> could not"
194 " be created.</p>").format(projectdir)) 194 " be created.</p>").format(projectdir))
195 self.project.pdata["VCS"] = ['None'] 195 self.project.pdata["VCS"] = ['None']
196 self.project.vcs = self.project.initVCS() 196 self.project.vcs = self.project.initVCS()
197 return 197 return
215 self.project.newProject.emit() 215 self.project.newProject.emit()
216 else: 216 else:
217 pfilenamelist = d.entryList(filters) 217 pfilenamelist = d.entryList(filters)
218 pfilename, ok = QInputDialog.getItem( 218 pfilename, ok = QInputDialog.getItem(
219 None, 219 None,
220 self.trUtf8("New project from repository"), 220 self.tr("New project from repository"),
221 self.trUtf8("Select a project file to open."), 221 self.tr("Select a project file to open."),
222 pfilenamelist, 0, False) 222 pfilenamelist, 0, False)
223 if ok: 223 if ok:
224 self.project.openProject( 224 self.project.openProject(
225 QFileInfo(d, pfilename).absoluteFilePath()) 225 QFileInfo(d, pfilename).absoluteFilePath())
226 self.project.newProject.emit() 226 self.project.newProject.emit()
230 self.project.setDirty(True) 230 self.project.setDirty(True)
231 self.project.saveProject() 231 self.project.saveProject()
232 else: 232 else:
233 res = E5MessageBox.yesNo( 233 res = E5MessageBox.yesNo(
234 self.parent(), 234 self.parent(),
235 self.trUtf8("New project from repository"), 235 self.tr("New project from repository"),
236 self.trUtf8( 236 self.tr(
237 "The project retrieved from the repository" 237 "The project retrieved from the repository"
238 " does not contain an eric project file" 238 " does not contain an eric project file"
239 " (*.e4p). Create it?"), 239 " (*.e4p). Create it?"),
240 yesDefault=True) 240 yesDefault=True)
241 if res: 241 if res:
262 self.project.saveProject() 262 self.project.saveProject()
263 self.project.openProject(self.project.pfile) 263 self.project.openProject(self.project.pfile)
264 if not export: 264 if not export:
265 res = E5MessageBox.yesNo( 265 res = E5MessageBox.yesNo(
266 self.parent(), 266 self.parent(),
267 self.trUtf8( 267 self.tr(
268 "New project from repository"), 268 "New project from repository"),
269 self.trUtf8( 269 self.tr(
270 "Shall the project file be added" 270 "Shall the project file be added"
271 " to the repository?"), 271 " to the repository?"),
272 yesDefault=True) 272 yesDefault=True)
273 if res: 273 if res:
274 self.project.vcs.vcsAdd( 274 self.project.vcs.vcsAdd(
275 self.project.pfile) 275 self.project.pfile)
276 else: 276 else:
277 E5MessageBox.critical( 277 E5MessageBox.critical(
278 self.parent(), 278 self.parent(),
279 self.trUtf8("New project from repository"), 279 self.tr("New project from repository"),
280 self.trUtf8( 280 self.tr(
281 """The project could not be retrieved from""" 281 """The project could not be retrieved from"""
282 """ the repository.""")) 282 """ the repository."""))
283 self.project.pdata["VCS"] = ['None'] 283 self.project.pdata["VCS"] = ['None']
284 self.project.vcs = self.project.initVCS() 284 self.project.vcs = self.project.initVCS()
285 else: 285 else:
330 keys = sorted(list(vcsSystemsDict.keys())) 330 keys = sorted(list(vcsSystemsDict.keys()))
331 for key in keys: 331 for key in keys:
332 vcsSystemsDisplay.append(vcsSystemsDict[key]) 332 vcsSystemsDisplay.append(vcsSystemsDict[key])
333 vcsSelected, ok = QInputDialog.getItem( 333 vcsSelected, ok = QInputDialog.getItem(
334 None, 334 None,
335 self.trUtf8("Import Project"), 335 self.tr("Import Project"),
336 self.trUtf8("Select version control system for the project"), 336 self.tr("Select version control system for the project"),
337 vcsSystemsDisplay, 337 vcsSystemsDisplay,
338 0, False) 338 0, False)
339 if not ok: 339 if not ok:
340 return 340 return
341 for vcsSystem, vcsSystemDisplay in list(vcsSystemsDict.items()): 341 for vcsSystem, vcsSystemDisplay in list(vcsSystemsDict.items()):
350 if vcsdlg.exec_() == QDialog.Accepted: 350 if vcsdlg.exec_() == QDialog.Accepted:
351 vcsDataDict = vcsdlg.getData() 351 vcsDataDict = vcsdlg.getData()
352 # edit VCS command options 352 # edit VCS command options
353 vcores = E5MessageBox.yesNo( 353 vcores = E5MessageBox.yesNo(
354 self.parent(), 354 self.parent(),
355 self.trUtf8("Import Project"), 355 self.tr("Import Project"),
356 self.trUtf8( 356 self.tr(
357 """Would you like to edit the VCS command options?""")) 357 """Would you like to edit the VCS command options?"""))
358 if vcores: 358 if vcores:
359 from .CommandOptionsDialog import VcsCommandOptionsDialog 359 from .CommandOptionsDialog import VcsCommandOptionsDialog
360 codlg = VcsCommandOptionsDialog(self.project.vcs) 360 codlg = VcsCommandOptionsDialog(self.project.vcs)
361 if codlg.exec_() == QDialog.Accepted: 361 if codlg.exec_() == QDialog.Accepted:
382 """ 382 """
383 shouldReopen = self.vcs.vcsUpdate(self.project.ppath) 383 shouldReopen = self.vcs.vcsUpdate(self.project.ppath)
384 if shouldReopen: 384 if shouldReopen:
385 res = E5MessageBox.yesNo( 385 res = E5MessageBox.yesNo(
386 self.parent(), 386 self.parent(),
387 self.trUtf8("Update"), 387 self.tr("Update"),
388 self.trUtf8("""The project should be reread. Do this now?"""), 388 self.tr("""The project should be reread. Do this now?"""),
389 yesDefault=True) 389 yesDefault=True)
390 if res: 390 if res:
391 self.project.reopenProject() 391 self.project.reopenProject()
392 392
393 def _vcsCommit(self): 393 def _vcsCommit(self):
408 Depending on the parameters set in the vcs object the project 408 Depending on the parameters set in the vcs object the project
409 may be removed from the local disk as well. 409 may be removed from the local disk as well.
410 """ 410 """
411 res = E5MessageBox.yesNo( 411 res = E5MessageBox.yesNo(
412 self.parent(), 412 self.parent(),
413 self.trUtf8("Remove project from repository"), 413 self.tr("Remove project from repository"),
414 self.trUtf8( 414 self.tr(
415 "Dou you really want to remove this project from" 415 "Dou you really want to remove this project from"
416 " the repository (and disk)?")) 416 " the repository (and disk)?"))
417 if res: 417 if res:
418 self.vcs.vcsRemove(self.project.ppath, True) 418 self.vcs.vcsRemove(self.project.ppath, True)
419 self._vcsCommit() 419 self._vcsCommit()
470 """ 470 """
471 shouldReopen = self.vcs.vcsSwitch(self.project.ppath) 471 shouldReopen = self.vcs.vcsSwitch(self.project.ppath)
472 if shouldReopen: 472 if shouldReopen:
473 res = E5MessageBox.yesNo( 473 res = E5MessageBox.yesNo(
474 self.parent(), 474 self.parent(),
475 self.trUtf8("Switch"), 475 self.tr("Switch"),
476 self.trUtf8("""The project should be reread. Do this now?"""), 476 self.tr("""The project should be reread. Do this now?"""),
477 yesDefault=True) 477 yesDefault=True)
478 if res: 478 if res:
479 self.project.reopenProject() 479 self.project.reopenProject()
480 480
481 def _vcsMerge(self): 481 def _vcsMerge(self):

eric ide

mercurial