eric7/VCS/ProjectHelper.py

branch
eric7
changeset 9153
506e35e424d5
parent 9152
8a68afaf1ba2
equal deleted inserted replaced
9152:8a68afaf1ba2 9153:506e35e424d5
8 """ 8 """
9 9
10 import os 10 import os
11 import shutil 11 import shutil
12 import copy 12 import copy
13 13 import pathlib
14 from PyQt6.QtCore import pyqtSlot, QDir, QFileInfo, QObject, QCoreApplication 14
15 from PyQt6.QtCore import pyqtSlot, QObject, QCoreApplication
15 from PyQt6.QtWidgets import QDialog, QInputDialog, QToolBar 16 from PyQt6.QtWidgets import QDialog, QInputDialog, QToolBar
16 17
17 from EricGui.EricAction import EricAction 18 from EricGui.EricAction import EricAction
18 from EricWidgets import EricMessageBox 19 from EricWidgets import EricMessageBox
19 from EricWidgets.EricApplication import ericApp 20 from EricWidgets.EricApplication import ericApp
265 ok = vcs.vcsExport(vcsDataDict, projectdir) 266 ok = vcs.vcsExport(vcsDataDict, projectdir)
266 else: 267 else:
267 ok = vcs.vcsCheckout(vcsDataDict, projectdir, False) 268 ok = vcs.vcsCheckout(vcsDataDict, projectdir, False)
268 if ok: 269 if ok:
269 projectdir = os.path.normpath(projectdir) 270 projectdir = os.path.normpath(projectdir)
271 dpath = pathlib.Path(projectdir)
270 # look for JSON style project file first 272 # look for JSON style project file first
271 filters = ["*.epj"] 273 plist = list(dpath.glob("*.epj"))
272 # TODO: replace QDir and QFileInfo using pathlib
273 d = QDir(projectdir)
274 plist = d.entryInfoList(filters)
275 if not plist: 274 if not plist:
276 # look for XML style project file second 275 # look for XML style project file second
277 filters = ["*.e4p"] 276 plist = list(dpath.glob("*.e4p"))
278 d = QDir(projectdir)
279 plist = d.entryInfoList(filters)
280 if plist: 277 if plist:
281 if len(plist) == 1: 278 if len(plist) == 1:
282 self.project.openProject( 279 self.project.openProject(str(plist[0].resolve()))
283 plist[0].absoluteFilePath())
284 else: 280 else:
285 pfilenamelist = d.entryList(filters) 281 pfilenamelist = [p.name for p in plist]
286 pfilename, ok = QInputDialog.getItem( 282 pfilename, ok = QInputDialog.getItem(
287 None, 283 None,
288 QCoreApplication.translate( 284 QCoreApplication.translate(
289 "VcsProjectHelper", 285 "VcsProjectHelper",
290 "New project from repository"), 286 "New project from repository"),
292 "VcsProjectHelper", 288 "VcsProjectHelper",
293 "Select a project file to open."), 289 "Select a project file to open."),
294 pfilenamelist, 0, False) 290 pfilenamelist, 0, False)
295 if ok: 291 if ok:
296 self.project.openProject( 292 self.project.openProject(
297 QFileInfo(d, pfilename).absoluteFilePath()) 293 str(dpath / pfilename))
298 if export: 294 if export:
299 self.project.pdata["VCS"] = 'None' 295 self.project.pdata["VCS"] = 'None'
300 self.project.vcs = self.project.initVCS() 296 self.project.vcs = self.project.initVCS()
301 self.project.setDirty(True) 297 self.project.setDirty(True)
302 self.project.saveProject() 298 self.project.saveProject()

eric ide

mercurial