--- a/eric6/Project/Project.py Sun Apr 11 16:53:48 2021 +0200 +++ b/eric6/Project/Project.py Sun Apr 11 18:45:10 2021 +0200 @@ -2960,154 +2960,153 @@ QApplication.processEvents() - if fn: - if self.closeProject(): + if fn and self.closeProject(): + with E5OverrideCursor(): + ok = self.__readProject(fn) + if ok: + self.opened = True + if not self.pdata["FILETYPES"]: + self.initFileTypes() + else: + self.updateFileTypes() + + try: + # create management directory if not present + self.createProjectManagementDir() + except OSError: + E5MessageBox.critical( + self.ui, + self.tr("Create project management directory"), + self.tr( + "<p>The project directory <b>{0}</b> is not" + " writable.</p>") + .format(self.ppath)) + return + + # read a user specific project file + self.__readUserProperties() + with E5OverrideCursor(): - ok = self.__readProject(fn) - if ok: - self.opened = True - if not self.pdata["FILETYPES"]: - self.initFileTypes() - else: - self.updateFileTypes() - - try: - # create management directory if not present - self.createProjectManagementDir() - except OSError: - E5MessageBox.critical( - self.ui, - self.tr("Create project management directory"), - self.tr( - "<p>The project directory <b>{0}</b> is not" - " writable.</p>") - .format(self.ppath)) - return - - # read a user specific project file - self.__readUserProperties() - - with E5OverrideCursor(): - oldState = self.isDirty() - self.vcs = self.initVCS() - if self.vcs is None and self.isDirty() == oldState: - # check, if project is version controlled - pluginManager = e5App().getObject("PluginManager") - for indicator, vcsData in ( - pluginManager.getVcsSystemIndicators().items() - ): - if os.path.exists( - os.path.join(self.ppath, indicator)): - if len(vcsData) > 1: - vcsList = [] + oldState = self.isDirty() + self.vcs = self.initVCS() + if self.vcs is None and self.isDirty() == oldState: + # check, if project is version controlled + pluginManager = e5App().getObject("PluginManager") + for indicator, vcsData in ( + pluginManager.getVcsSystemIndicators().items() + ): + if os.path.exists( + os.path.join(self.ppath, indicator)): + if len(vcsData) > 1: + vcsList = [] + for ( + _vcsSystemStr, vcsSystemDisplay + ) in vcsData: + vcsList.append(vcsSystemDisplay) + with E5OverridenCursor(): + res, vcs_ok = QInputDialog.getItem( + None, + self.tr("New Project"), + self.tr( + "Select Version Control" + " System"), + vcsList, + 0, False) + if vcs_ok: for ( - _vcsSystemStr, vcsSystemDisplay + vcsSystemStr, vcsSystemDisplay ) in vcsData: - vcsList.append(vcsSystemDisplay) - with E5OverridenCursor(): - res, vcs_ok = QInputDialog.getItem( - None, - self.tr("New Project"), - self.tr( - "Select Version Control" - " System"), - vcsList, - 0, False) - if vcs_ok: - for ( - vcsSystemStr, vcsSystemDisplay - ) in vcsData: - if res == vcsSystemDisplay: - vcsSystem = vcsSystemStr - break - else: - vcsSystem = "None" + if res == vcsSystemDisplay: + vcsSystem = vcsSystemStr + break else: vcsSystem = "None" else: - vcsSystem = vcsData[0][0] - self.pdata["VCS"] = vcsSystem - self.vcs = self.initVCS() - self.setDirty(True) - if ( - self.vcs is not None and - (self.vcs.vcsRegisteredState(self.ppath) != - self.vcs.canBeCommitted) - ): - self.pdata["VCS"] = 'None' - self.vcs = self.initVCS() - self.closeAct.setEnabled(True) - self.saveasAct.setEnabled(True) - self.actGrp2.setEnabled(True) - self.propsAct.setEnabled(True) - self.userPropsAct.setEnabled(True) - self.filetypesAct.setEnabled(True) - self.lexersAct.setEnabled(True) - self.sessActGrp.setEnabled(True) - self.dbgActGrp.setEnabled(True) - self.menuDebuggerAct.setEnabled(True) - self.menuSessionAct.setEnabled(True) - self.menuCheckAct.setEnabled(True) - self.menuShowAct.setEnabled(True) - self.menuDiagramAct.setEnabled(True) - self.menuApidocAct.setEnabled(True) - self.menuPackagersAct.setEnabled(True) - self.pluginGrp.setEnabled( - self.pdata["PROJECTTYPE"] in ["E6Plugin"]) - self.addLanguageAct.setEnabled( - bool(self.pdata["TRANSLATIONPATTERN"])) - self.makeGrp.setEnabled( - self.pdata["MAKEPARAMS"]["MakeEnabled"]) - self.menuMakeAct.setEnabled( - self.pdata["MAKEPARAMS"]["MakeEnabled"]) - - # open a project debugger properties file being quiet - # about errors - if Preferences.getProject("AutoLoadDbgProperties"): - self.__readDebugProperties(True) - - self.__model.projectOpened() - self.projectOpenedHooks.emit() - self.projectOpened.emit() + vcsSystem = "None" + else: + vcsSystem = vcsData[0][0] + self.pdata["VCS"] = vcsSystem + self.vcs = self.initVCS() + self.setDirty(True) + if ( + self.vcs is not None and + (self.vcs.vcsRegisteredState(self.ppath) != + self.vcs.canBeCommitted) + ): + self.pdata["VCS"] = 'None' + self.vcs = self.initVCS() + self.closeAct.setEnabled(True) + self.saveasAct.setEnabled(True) + self.actGrp2.setEnabled(True) + self.propsAct.setEnabled(True) + self.userPropsAct.setEnabled(True) + self.filetypesAct.setEnabled(True) + self.lexersAct.setEnabled(True) + self.sessActGrp.setEnabled(True) + self.dbgActGrp.setEnabled(True) + self.menuDebuggerAct.setEnabled(True) + self.menuSessionAct.setEnabled(True) + self.menuCheckAct.setEnabled(True) + self.menuShowAct.setEnabled(True) + self.menuDiagramAct.setEnabled(True) + self.menuApidocAct.setEnabled(True) + self.menuPackagersAct.setEnabled(True) + self.pluginGrp.setEnabled( + self.pdata["PROJECTTYPE"] in ["E6Plugin"]) + self.addLanguageAct.setEnabled( + bool(self.pdata["TRANSLATIONPATTERN"])) + self.makeGrp.setEnabled( + self.pdata["MAKEPARAMS"]["MakeEnabled"]) + self.menuMakeAct.setEnabled( + self.pdata["MAKEPARAMS"]["MakeEnabled"]) + + # open a project debugger properties file being quiet + # about errors + if Preferences.getProject("AutoLoadDbgProperties"): + self.__readDebugProperties(True) - if Preferences.getProject("SearchNewFiles"): - self.__doSearchNewFiles() - - # read a project tasks file - self.__readTasks() - self.ui.taskViewer.setProjectOpen(True) - # rescan project tasks - if Preferences.getProject("TasksProjectRescanOnOpen"): - e5App().getObject("TaskViewer" - ).regenerateProjectTasks(quiet=True) + self.__model.projectOpened() + self.projectOpenedHooks.emit() + self.projectOpened.emit() + + if Preferences.getProject("SearchNewFiles"): + self.__doSearchNewFiles() + + # read a project tasks file + self.__readTasks() + self.ui.taskViewer.setProjectOpen(True) + # rescan project tasks + if Preferences.getProject("TasksProjectRescanOnOpen"): + e5App().getObject("TaskViewer" + ).regenerateProjectTasks(quiet=True) + + if restoreSession: + # open the main script + if self.pdata["MAINSCRIPT"]: + if not os.path.isabs(self.pdata["MAINSCRIPT"]): + ms = os.path.join( + self.ppath, self.pdata["MAINSCRIPT"]) + else: + ms = self.pdata["MAINSCRIPT"] + self.sourceFile.emit(ms) - if restoreSession: - # open the main script - if self.pdata["MAINSCRIPT"]: - if not os.path.isabs(self.pdata["MAINSCRIPT"]): - ms = os.path.join( - self.ppath, self.pdata["MAINSCRIPT"]) - else: - ms = self.pdata["MAINSCRIPT"] - self.sourceFile.emit(ms) - - # open a project session file being quiet about errors - if reopen: - self.__readSession(quiet=True, indicator="_tmp") - elif Preferences.getProject("AutoLoadSession"): - self.__readSession(quiet=True) - - # start the VCS monitor thread - if self.vcs is not None: - self.vcs.startStatusMonitor(self) - self.vcs.vcsStatusMonitorData.connect( - self.__model.changeVCSStates) - self.vcs.vcsStatusMonitorStatus.connect( - self.__statusMonitorStatus) - self.vcs.vcsStatusMonitorInfo.connect( - self.vcsStatusMonitorInfo) - self.vcs.vcsStatusChanged.connect( - self.__vcsStatusChanged) + # open a project session file being quiet about errors + if reopen: + self.__readSession(quiet=True, indicator="_tmp") + elif Preferences.getProject("AutoLoadSession"): + self.__readSession(quiet=True) + + # start the VCS monitor thread + if self.vcs is not None: + self.vcs.startStatusMonitor(self) + self.vcs.vcsStatusMonitorData.connect( + self.__model.changeVCSStates) + self.vcs.vcsStatusMonitorStatus.connect( + self.__statusMonitorStatus) + self.vcs.vcsStatusMonitorInfo.connect( + self.vcsStatusMonitorInfo) + self.vcs.vcsStatusChanged.connect( + self.__vcsStatusChanged) def reopenProject(self): """ @@ -3799,19 +3798,23 @@ newfn = self.getRelativePath(newfn) if newfn in self.pdata[group]: return True - elif group == "OTHERS": - if any(newfn.startswith(entry) for entry in self.pdata[group]): - return True + elif ( + group == "OTHERS" and + any(newfn.startswith(entry) for entry in self.pdata[group]) + ): + return True if Utilities.isWindowsPlatform(): # try the above case-insensitive newfn = newfn.lower() if any(entry.lower() == newfn for entry in self.pdata[group]): return True - elif group == "OTHERS": - if any(newfn.startswith(entry.lower()) - for entry in self.pdata[group]): - return True + elif ( + group == "OTHERS" and + any(newfn.startswith(entry.lower()) + for entry in self.pdata[group]) + ): + return True return False @@ -4728,16 +4731,14 @@ newFiles.append(ns) elif ( filetype == "TRANSLATIONS" and - fn not in self.pdata["TRANSLATIONS"] + fn not in self.pdata["TRANSLATIONS"] and + (fnmatch.fnmatch(ns, pattern) or + fnmatch.fnmatch(ns, binpattern)) ): - if ( - fnmatch.fnmatch(ns, pattern) or - fnmatch.fnmatch(ns, binpattern) - ): - if autoInclude and AI: - self.appendFile(ns) - else: - newFiles.append(ns) + if autoInclude and AI: + self.appendFile(ns) + else: + newFiles.append(ns) # if autoInclude is set there is no more work left if (autoInclude and AI): @@ -4858,13 +4859,15 @@ else: forProject = False - if forProject and self.pdata["VCS"] and self.pdata["VCS"] != 'None': - if ( - self.pudata["VCSOVERRIDE"] and - not nooverride - ): - vcsSystem = self.pudata["VCSOVERRIDE"] - override = True + if ( + forProject and + self.pdata["VCS"] and + self.pdata["VCS"] != 'None' and + self.pudata["VCSOVERRIDE"] and + not nooverride + ): + vcsSystem = self.pudata["VCSOVERRIDE"] + override = True if vcsSystem is not None: import VCS