eric6/Project/Project.py

changeset 8222
5994b80b8760
parent 8221
0572a215bd2f
child 8228
772103b14c18
--- 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

eric ide

mercurial