src/eric7/EricXML/ProjectReader.py

branch
eric7
changeset 9514
2b104ad132a4
parent 9473
3f23dbf37dbe
child 9516
0f023e61a9b5
diff -r 6e260b424396 -r 2b104ad132a4 src/eric7/EricXML/ProjectReader.py
--- a/src/eric7/EricXML/ProjectReader.py	Wed Nov 16 10:10:06 2022 +0100
+++ b/src/eric7/EricXML/ProjectReader.py	Wed Nov 16 10:53:40 2022 +0100
@@ -46,45 +46,64 @@
                     if self.version not in self.supportedVersions:
                         self.raiseUnsupportedFormatVersion(self.version)
                 elif self.name() == "Language":
-                    self.project.pdata["SPELLLANGUAGE"] = self.readElementText()
+                    self.project.setProjectData(
+                        self.readElementText(), dataKey="SPELLLANGUAGE"
+                    )
                 elif self.name() == "ProjectWordList":
-                    self.project.pdata["SPELLWORDS"] = Utilities.toNativeSeparators(
-                        self.readElementText()
+                    self.project.setProjectData(
+                        Utilities.toNativeSeparators(self.readElementText()),
+                        dataKey="SPELLWORDS",
                     )
                 elif self.name() == "ProjectExcludeList":
-                    self.project.pdata["SPELLEXCLUDES"] = Utilities.toNativeSeparators(
-                        self.readElementText()
+                    self.project.setProjectData(
+                        Utilities.toNativeSeparators(self.readElementText()),
+                        dataKey="SPELLEXCLUDES",
                     )
                 elif self.name() == "Hash":
-                    self.project.pdata["HASH"] = self.readElementText()
+                    self.project.setProjectData(self.readElementText(), dataKey="HASH")
                 elif self.name() == "ProgLanguage":
-                    self.project.pdata["MIXEDLANGUAGE"] = int(
-                        self.attribute("mixed", "0")
+                    self.project.setProjectData(
+                        int(self.attribute("mixed", "0")),
+                        dataKey="MIXEDLANGUAGE",
+                    )
+                    self.project.setProjectData(
+                        self.readElementText(), dataKey="PROGLANGUAGE"
                     )
-                    self.project.pdata["PROGLANGUAGE"] = self.readElementText()
-                    if self.project.pdata["PROGLANGUAGE"] == "Python":
+                    if self.project.getProjectData(dataKey="PROGLANGUAGE") == "Python":
                         # convert Python to the more specific Python3
-                        self.project.pdata["PROGLANGUAGE"] = "Python3"
+                        self.project.setProjectData("Python3", dataKey="PROGLANGUAGE")
                 elif self.name() == "ProjectType":
-                    self.project.pdata["PROJECTTYPE"] = self.readElementText()
+                    self.project.setProjectData(
+                        self.readElementText(), dataKey="PROJECTTYPE"
+                    )
                 elif self.name() == "Description":
-                    self.project.pdata["DESCRIPTION"] = self.readElementText()
+                    self.project.setProjectData(
+                        self.readElementText(), dataKey="DESCRIPTION"
+                    )
                 elif self.name() == "Version":
-                    self.project.pdata["VERSION"] = self.readElementText()
+                    self.project.setProjectData(
+                        self.readElementText(), dataKey="VERSION"
+                    )
                 elif self.name() == "Author":
-                    self.project.pdata["AUTHOR"] = self.readElementText()
+                    self.project.setProjectData(
+                        self.readElementText(), dataKey="AUTHOR"
+                    )
                 elif self.name() == "Email":
-                    self.project.pdata["EMAIL"] = self.readElementText()
+                    self.project.setProjectData(self.readElementText(), dataKey="EMAIL")
                 elif self.name() == "TranslationPattern":
-                    self.project.pdata[
-                        "TRANSLATIONPATTERN"
-                    ] = Utilities.toNativeSeparators(self.readElementText())
+                    self.project.setProjectData(
+                        Utilities.toNativeSeparators(self.readElementText()),
+                        dataKey="TRANSLATIONPATTERN",
+                    )
                 elif self.name() == "TranslationsBinPath":
-                    self.project.pdata[
-                        "TRANSLATIONSBINPATH"
-                    ] = Utilities.toNativeSeparators(self.readElementText())
+                    self.project.setProjectData(
+                        Utilities.toNativeSeparators(self.readElementText()),
+                        dataKey="TRANSLATIONSBINPATH",
+                    )
                 elif self.name() == "Eol":
-                    self.project.pdata["EOL"] = int(self.attribute("index", "0"))
+                    self.project.setProjectData(
+                        int(self.attribute("index", "0")), dataKey="EOL"
+                    )
                 elif self.name() == "Sources":
                     self.__readFiles("Sources", "Source", "SOURCES")
                 elif self.name() == "Forms":
@@ -106,8 +125,9 @@
                 elif self.name() == "Others":
                     self.__readFiles("Others", "Other", "OTHERS")
                 elif self.name() == "MainScript":
-                    self.project.pdata["MAINSCRIPT"] = Utilities.toNativeSeparators(
-                        self.readElementText()
+                    self.project.setProjectData(
+                        Utilities.toNativeSeparators(self.readElementText()),
+                        dataKey="MAINSCRIPT",
                     )
                 elif self.name() == "Vcs":
                     self.__readVcs()
@@ -130,7 +150,9 @@
                         "RccCompiler", "RccCompilerParameters", "RCCPARAMS"
                     )
                 elif self.name() == "DocstringStyle":
-                    self.project.pdata["DOCSTRING"] = self.readElementText()
+                    self.project.setProjectData(
+                        self.readElementText(), dataKey="DOCSTRING"
+                    )
                 elif self.name() == "ProjectTypeSpecific":
                     self.__readBasicDataField(
                         "ProjectTypeSpecific",
@@ -173,9 +195,11 @@
 
             if self.isStartElement():
                 if self.name() == listTag:
-                    self.project.pdata[dataKey].append(
+                    fileList = self.project.getProjectData(dataKey=dataKey)
+                    fileList.append(
                         Utilities.toNativeSeparators(self.readElementText())
                     )
+                    self.project.setProjectData(fileList, dataKey=dataKey)
                 else:
                     self.raiseUnexpectedStartTag(self.name())
 
@@ -194,7 +218,7 @@
 
             if self.isStartElement():
                 if self.name() == dataTag:
-                    self.project.pdata[dataKey] = self._readBasics()
+                    self.project.setProjectData(self._readBasics(), dataKey=dataKey)
                 else:
                     self.raiseUnexpectedStartTag(self.name())
 
@@ -209,11 +233,15 @@
 
             if self.isStartElement():
                 if self.name() == "VcsType":
-                    self.project.pdata["VCS"] = self.readElementText()
+                    self.project.setProjectData(self.readElementText(), dataKey="VCS")
                 elif self.name() == "VcsOptions":
-                    self.project.pdata["VCSOPTIONS"] = self._readBasics()
+                    self.project.setProjectData(
+                        self._readBasics(), dataKey="VCSOPTIONS"
+                    )
                 elif self.name() == "VcsOtherData":
-                    self.project.pdata["VCSOTHERDATA"] = self._readBasics()
+                    self.project.setProjectData(
+                        self._readBasics(), dataKey="VCSOTHERDATA"
+                    )
                 else:
                     self.raiseUnexpectedStartTag(self.name())
 
@@ -231,7 +259,9 @@
                     pattern = self.attribute("pattern", "")
                     filetype = self.attribute("type", "OTHERS")
                     if pattern:
-                        self.project.pdata["FILETYPES"][pattern] = filetype
+                        fileTypes = self.project.getProjectData(dataKey="FILETYPES")
+                        fileTypes[pattern] = filetype
+                        self.project.setProjectData(fileTypes, dataKey="FILETYPES")
                 else:
                     self.raiseUnexpectedStartTag(self.name())
 
@@ -249,6 +279,8 @@
                     pattern = self.attribute("pattern", "")
                     lexer = self.attribute("lexer")
                     if pattern:
-                        self.project.pdata["LEXERASSOCS"][pattern] = lexer
+                        assocs = self.project.getProjectData(dataKey="LEXERASSOCS")
+                        assocs[pattern] = lexer
+                        self.project.setProjectData(assocs, dataKey="LEXERASSOCS")
                 else:
                     self.raiseUnexpectedStartTag(self.name())

eric ide

mercurial