36 |
36 |
37 def readXML(self): |
37 def readXML(self): |
38 """ |
38 """ |
39 Public method to read and parse the XML document. |
39 Public method to read and parse the XML document. |
40 """ |
40 """ |
|
41 fileCategoryTags = [s.capitalize() for s in self.project.getFileCategories()] |
|
42 |
41 while not self.atEnd(): |
43 while not self.atEnd(): |
42 self.readNext() |
44 self.readNext() |
43 if self.isStartElement(): |
45 if self.isStartElement(): |
44 if self.name() == "Project": |
46 if self.name() == "Project": |
45 self.version = self.attribute("version", projectFileFormatVersion) |
47 self.version = self.attribute("version", projectFileFormatVersion) |
46 if self.version not in self.supportedVersions: |
48 if self.version not in self.supportedVersions: |
47 self.raiseUnsupportedFormatVersion(self.version) |
49 self.raiseUnsupportedFormatVersion(self.version) |
48 elif self.name() == "Language": |
50 elif self.name() == "Language": |
49 self.project.setProjectData( |
51 self.project.setProjectData( |
50 self.readElementText(), dataKey="SPELLLANGUAGE" |
52 self.readElementText(), dataKey="SPELLLANGUAGE", setDirty=False |
51 ) |
53 ) |
52 elif self.name() == "ProjectWordList": |
54 elif self.name() == "ProjectWordList": |
53 self.project.setProjectData( |
55 self.project.setProjectData( |
54 Utilities.toNativeSeparators(self.readElementText()), |
56 Utilities.toNativeSeparators(self.readElementText()), |
55 dataKey="SPELLWORDS", |
57 dataKey="SPELLWORDS", |
|
58 setDirty=False, |
56 ) |
59 ) |
57 elif self.name() == "ProjectExcludeList": |
60 elif self.name() == "ProjectExcludeList": |
58 self.project.setProjectData( |
61 self.project.setProjectData( |
59 Utilities.toNativeSeparators(self.readElementText()), |
62 Utilities.toNativeSeparators(self.readElementText()), |
60 dataKey="SPELLEXCLUDES", |
63 dataKey="SPELLEXCLUDES", |
|
64 setDirty=False, |
61 ) |
65 ) |
62 elif self.name() == "Hash": |
66 elif self.name() == "Hash": |
63 self.project.setProjectData(self.readElementText(), dataKey="HASH") |
67 self.project.setProjectData( |
|
68 self.readElementText(), dataKey="HASH", setDirty=False |
|
69 ) |
64 elif self.name() == "ProgLanguage": |
70 elif self.name() == "ProgLanguage": |
65 self.project.setProjectData( |
71 self.project.setProjectData( |
66 int(self.attribute("mixed", "0")), |
72 int(self.attribute("mixed", "0")), |
67 dataKey="MIXEDLANGUAGE", |
73 dataKey="MIXEDLANGUAGE", |
68 ) |
74 setDirty=False, |
69 self.project.setProjectData( |
75 ) |
70 self.readElementText(), dataKey="PROGLANGUAGE" |
76 self.project.setProjectData( |
|
77 self.readElementText(), dataKey="PROGLANGUAGE", setDirty=False |
71 ) |
78 ) |
72 if self.project.getProjectData(dataKey="PROGLANGUAGE") == "Python": |
79 if self.project.getProjectData(dataKey="PROGLANGUAGE") == "Python": |
73 # convert Python to the more specific Python3 |
80 # convert Python to the more specific Python3 |
74 self.project.setProjectData("Python3", dataKey="PROGLANGUAGE") |
81 self.project.setProjectData( |
|
82 "Python3", dataKey="PROGLANGUAGE", setDirty=False |
|
83 ) |
75 elif self.name() == "ProjectType": |
84 elif self.name() == "ProjectType": |
76 self.project.setProjectData( |
85 self.project.setProjectData( |
77 self.readElementText(), dataKey="PROJECTTYPE" |
86 self.readElementText(), dataKey="PROJECTTYPE", setDirty=False |
78 ) |
87 ) |
79 elif self.name() == "Description": |
88 elif self.name() == "Description": |
80 self.project.setProjectData( |
89 self.project.setProjectData( |
81 self.readElementText(), dataKey="DESCRIPTION" |
90 self.readElementText(), dataKey="DESCRIPTION", setDirty=False |
82 ) |
91 ) |
83 elif self.name() == "Version": |
92 elif self.name() == "Version": |
84 self.project.setProjectData( |
93 self.project.setProjectData( |
85 self.readElementText(), dataKey="VERSION" |
94 self.readElementText(), dataKey="VERSION", setDirty=False |
86 ) |
95 ) |
87 elif self.name() == "Author": |
96 elif self.name() == "Author": |
88 self.project.setProjectData( |
97 self.project.setProjectData( |
89 self.readElementText(), dataKey="AUTHOR" |
98 self.readElementText(), dataKey="AUTHOR", setDirty=False |
90 ) |
99 ) |
91 elif self.name() == "Email": |
100 elif self.name() == "Email": |
92 self.project.setProjectData(self.readElementText(), dataKey="EMAIL") |
101 self.project.setProjectData( |
|
102 self.readElementText(), dataKey="EMAIL", setDirty=False |
|
103 ) |
93 elif self.name() == "TranslationPattern": |
104 elif self.name() == "TranslationPattern": |
94 self.project.setProjectData( |
105 self.project.setProjectData( |
95 Utilities.toNativeSeparators(self.readElementText()), |
106 Utilities.toNativeSeparators(self.readElementText()), |
96 dataKey="TRANSLATIONPATTERN", |
107 dataKey="TRANSLATIONPATTERN", |
|
108 setDirty=False, |
97 ) |
109 ) |
98 elif self.name() == "TranslationsBinPath": |
110 elif self.name() == "TranslationsBinPath": |
99 self.project.setProjectData( |
111 self.project.setProjectData( |
100 Utilities.toNativeSeparators(self.readElementText()), |
112 Utilities.toNativeSeparators(self.readElementText()), |
101 dataKey="TRANSLATIONSBINPATH", |
113 dataKey="TRANSLATIONSBINPATH", |
|
114 setDirty=False, |
102 ) |
115 ) |
103 elif self.name() == "Eol": |
116 elif self.name() == "Eol": |
104 self.project.setProjectData( |
117 self.project.setProjectData( |
105 int(self.attribute("index", "0")), dataKey="EOL" |
118 int(self.attribute("index", "0")), dataKey="EOL", setDirty=False |
106 ) |
119 ) |
107 elif self.name() == "Sources": |
120 elif self.name() in fileCategoryTags: |
108 self.__readFiles("Sources", "Source", "SOURCES") |
121 self.__readFiles( |
109 elif self.name() == "Forms": |
122 self.name(), self.name()[:-1], self.name().upper() |
110 self.__readFiles("Forms", "Form", "FORMS") |
123 ) |
111 elif self.name() == "Translations": |
|
112 self.__readFiles("Translations", "Translation", "TRANSLATIONS") |
|
113 elif self.name() == "TranslationExceptions": |
124 elif self.name() == "TranslationExceptions": |
114 self.__readFiles( |
125 self.__readFiles( |
115 "TranslationExceptions", |
126 "TranslationExceptions", |
116 "TranslationException", |
127 "TranslationException", |
117 "TRANSLATIONEXCEPTIONS", |
128 "TRANSLATIONEXCEPTIONS", |
118 ) |
129 ) |
119 elif self.name() == "Resources": |
|
120 self.__readFiles("Resources", "Resource", "RESOURCES") |
|
121 elif self.name() == "Interfaces": |
|
122 self.__readFiles("Interfaces", "Interface", "INTERFACES") |
|
123 elif self.name() == "Protocols": |
|
124 self.__readFiles("Protocols", "Protocol", "PROTOCOLS") |
|
125 elif self.name() == "Others": |
|
126 self.__readFiles("Others", "Other", "OTHERS") |
|
127 elif self.name() == "MainScript": |
130 elif self.name() == "MainScript": |
128 self.project.setProjectData( |
131 self.project.setProjectData( |
129 Utilities.toNativeSeparators(self.readElementText()), |
132 Utilities.toNativeSeparators(self.readElementText()), |
130 dataKey="MAINSCRIPT", |
133 dataKey="MAINSCRIPT", |
|
134 setDirty=False, |
131 ) |
135 ) |
132 elif self.name() == "Vcs": |
136 elif self.name() == "Vcs": |
133 self.__readVcs() |
137 self.__readVcs() |
134 elif self.name() == "FiletypeAssociations": |
138 elif self.name() == "FiletypeAssociations": |
135 self.__readFiletypeAssociations() |
139 self.__readFiletypeAssociations() |