src/eric7/EricXML/ProjectReader.py

branch
eric7
changeset 9516
0f023e61a9b5
parent 9514
2b104ad132a4
child 9531
155b2646799a
diff -r 275334bc9607 -r 0f023e61a9b5 src/eric7/EricXML/ProjectReader.py
--- a/src/eric7/EricXML/ProjectReader.py	Wed Nov 16 11:04:18 2022 +0100
+++ b/src/eric7/EricXML/ProjectReader.py	Wed Nov 16 18:11:52 2022 +0100
@@ -38,6 +38,8 @@
         """
         Public method to read and parse the XML document.
         """
+        fileCategoryTags = [s.capitalize() for s in self.project.getFileCategories()]
+
         while not self.atEnd():
             self.readNext()
             if self.isStartElement():
@@ -47,87 +49,89 @@
                         self.raiseUnsupportedFormatVersion(self.version)
                 elif self.name() == "Language":
                     self.project.setProjectData(
-                        self.readElementText(), dataKey="SPELLLANGUAGE"
+                        self.readElementText(), dataKey="SPELLLANGUAGE", setDirty=False
                     )
                 elif self.name() == "ProjectWordList":
                     self.project.setProjectData(
                         Utilities.toNativeSeparators(self.readElementText()),
                         dataKey="SPELLWORDS",
+                        setDirty=False,
                     )
                 elif self.name() == "ProjectExcludeList":
                     self.project.setProjectData(
                         Utilities.toNativeSeparators(self.readElementText()),
                         dataKey="SPELLEXCLUDES",
+                        setDirty=False,
                     )
                 elif self.name() == "Hash":
-                    self.project.setProjectData(self.readElementText(), dataKey="HASH")
+                    self.project.setProjectData(
+                        self.readElementText(), dataKey="HASH", setDirty=False
+                    )
                 elif self.name() == "ProgLanguage":
                     self.project.setProjectData(
                         int(self.attribute("mixed", "0")),
                         dataKey="MIXEDLANGUAGE",
+                        setDirty=False,
                     )
                     self.project.setProjectData(
-                        self.readElementText(), dataKey="PROGLANGUAGE"
+                        self.readElementText(), dataKey="PROGLANGUAGE", setDirty=False
                     )
                     if self.project.getProjectData(dataKey="PROGLANGUAGE") == "Python":
                         # convert Python to the more specific Python3
-                        self.project.setProjectData("Python3", dataKey="PROGLANGUAGE")
+                        self.project.setProjectData(
+                            "Python3", dataKey="PROGLANGUAGE", setDirty=False
+                        )
                 elif self.name() == "ProjectType":
                     self.project.setProjectData(
-                        self.readElementText(), dataKey="PROJECTTYPE"
+                        self.readElementText(), dataKey="PROJECTTYPE", setDirty=False
                     )
                 elif self.name() == "Description":
                     self.project.setProjectData(
-                        self.readElementText(), dataKey="DESCRIPTION"
+                        self.readElementText(), dataKey="DESCRIPTION", setDirty=False
                     )
                 elif self.name() == "Version":
                     self.project.setProjectData(
-                        self.readElementText(), dataKey="VERSION"
+                        self.readElementText(), dataKey="VERSION", setDirty=False
                     )
                 elif self.name() == "Author":
                     self.project.setProjectData(
-                        self.readElementText(), dataKey="AUTHOR"
+                        self.readElementText(), dataKey="AUTHOR", setDirty=False
                     )
                 elif self.name() == "Email":
-                    self.project.setProjectData(self.readElementText(), dataKey="EMAIL")
+                    self.project.setProjectData(
+                        self.readElementText(), dataKey="EMAIL", setDirty=False
+                    )
                 elif self.name() == "TranslationPattern":
                     self.project.setProjectData(
                         Utilities.toNativeSeparators(self.readElementText()),
                         dataKey="TRANSLATIONPATTERN",
+                        setDirty=False,
                     )
                 elif self.name() == "TranslationsBinPath":
                     self.project.setProjectData(
                         Utilities.toNativeSeparators(self.readElementText()),
                         dataKey="TRANSLATIONSBINPATH",
+                        setDirty=False,
                     )
                 elif self.name() == "Eol":
                     self.project.setProjectData(
-                        int(self.attribute("index", "0")), dataKey="EOL"
+                        int(self.attribute("index", "0")), dataKey="EOL", setDirty=False
                     )
-                elif self.name() == "Sources":
-                    self.__readFiles("Sources", "Source", "SOURCES")
-                elif self.name() == "Forms":
-                    self.__readFiles("Forms", "Form", "FORMS")
-                elif self.name() == "Translations":
-                    self.__readFiles("Translations", "Translation", "TRANSLATIONS")
+                elif self.name() in fileCategoryTags:
+                    self.__readFiles(
+                        self.name(), self.name()[:-1], self.name().upper()
+                    )
                 elif self.name() == "TranslationExceptions":
                     self.__readFiles(
                         "TranslationExceptions",
                         "TranslationException",
                         "TRANSLATIONEXCEPTIONS",
                     )
-                elif self.name() == "Resources":
-                    self.__readFiles("Resources", "Resource", "RESOURCES")
-                elif self.name() == "Interfaces":
-                    self.__readFiles("Interfaces", "Interface", "INTERFACES")
-                elif self.name() == "Protocols":
-                    self.__readFiles("Protocols", "Protocol", "PROTOCOLS")
-                elif self.name() == "Others":
-                    self.__readFiles("Others", "Other", "OTHERS")
                 elif self.name() == "MainScript":
                     self.project.setProjectData(
                         Utilities.toNativeSeparators(self.readElementText()),
                         dataKey="MAINSCRIPT",
+                        setDirty=False,
                     )
                 elif self.name() == "Vcs":
                     self.__readVcs()
@@ -151,7 +155,7 @@
                     )
                 elif self.name() == "DocstringStyle":
                     self.project.setProjectData(
-                        self.readElementText(), dataKey="DOCSTRING"
+                        self.readElementText(), dataKey="DOCSTRING", setDirty=False
                     )
                 elif self.name() == "ProjectTypeSpecific":
                     self.__readBasicDataField(
@@ -199,7 +203,9 @@
                     fileList.append(
                         Utilities.toNativeSeparators(self.readElementText())
                     )
-                    self.project.setProjectData(fileList, dataKey=dataKey)
+                    self.project.setProjectData(
+                        fileList, dataKey=dataKey, setDirty=False
+                    )
                 else:
                     self.raiseUnexpectedStartTag(self.name())
 
@@ -218,7 +224,9 @@
 
             if self.isStartElement():
                 if self.name() == dataTag:
-                    self.project.setProjectData(self._readBasics(), dataKey=dataKey)
+                    self.project.setProjectData(
+                        self._readBasics(), dataKey=dataKey, setDirty=False
+                    )
                 else:
                     self.raiseUnexpectedStartTag(self.name())
 
@@ -233,14 +241,16 @@
 
             if self.isStartElement():
                 if self.name() == "VcsType":
-                    self.project.setProjectData(self.readElementText(), dataKey="VCS")
+                    self.project.setProjectData(
+                        self.readElementText(), dataKey="VCS", setDirty=False
+                    )
                 elif self.name() == "VcsOptions":
                     self.project.setProjectData(
-                        self._readBasics(), dataKey="VCSOPTIONS"
+                        self._readBasics(), dataKey="VCSOPTIONS", setDirty=False
                     )
                 elif self.name() == "VcsOtherData":
                     self.project.setProjectData(
-                        self._readBasics(), dataKey="VCSOTHERDATA"
+                        self._readBasics(), dataKey="VCSOTHERDATA", setDirty=False
                     )
                 else:
                     self.raiseUnexpectedStartTag(self.name())
@@ -261,7 +271,9 @@
                     if pattern:
                         fileTypes = self.project.getProjectData(dataKey="FILETYPES")
                         fileTypes[pattern] = filetype
-                        self.project.setProjectData(fileTypes, dataKey="FILETYPES")
+                        self.project.setProjectData(
+                            fileTypes, dataKey="FILETYPES", setDirty=False
+                        )
                 else:
                     self.raiseUnexpectedStartTag(self.name())
 
@@ -281,6 +293,8 @@
                     if pattern:
                         assocs = self.project.getProjectData(dataKey="LEXERASSOCS")
                         assocs[pattern] = lexer
-                        self.project.setProjectData(assocs, dataKey="LEXERASSOCS")
+                        self.project.setProjectData(
+                            assocs, dataKey="LEXERASSOCS", setDirty=False
+                        )
                 else:
                     self.raiseUnexpectedStartTag(self.name())

eric ide

mercurial