E5XML/ProjectWriter.py

changeset 945
8cd4d08fa9f6
parent 791
9ec2ac20e54e
child 1292
74fc87c7b7a8
equal deleted inserted replaced
944:1b59c4ba121e 945:8cd4d08fa9f6
14 from .XMLStreamWriterBase import XMLStreamWriterBase 14 from .XMLStreamWriterBase import XMLStreamWriterBase
15 from .Config import projectFileFormatVersion 15 from .Config import projectFileFormatVersion
16 16
17 import Preferences 17 import Preferences
18 import Utilities 18 import Utilities
19
19 20
20 class ProjectWriter(XMLStreamWriterBase): 21 class ProjectWriter(XMLStreamWriterBase):
21 """ 22 """
22 Class implementing the writer class for writing an XML project file. 23 Class implementing the writer class for writing an XML project file.
23 """ 24 """
45 # add some generation comments 46 # add some generation comments
46 self.writeComment(" eric5 project file for project {0} ".format(self.name)) 47 self.writeComment(" eric5 project file for project {0} ".format(self.name))
47 if Preferences.getProject("XMLTimestamp"): 48 if Preferences.getProject("XMLTimestamp"):
48 self.writeComment(" Saved: {0} ".format(time.strftime('%Y-%m-%d, %H:%M:%S'))) 49 self.writeComment(" Saved: {0} ".format(time.strftime('%Y-%m-%d, %H:%M:%S')))
49 self.writeComment(" Copyright (C) {0} {1}, {2} ".format( 50 self.writeComment(" Copyright (C) {0} {1}, {2} ".format(
50 time.strftime('%Y'), 51 time.strftime('%Y'),
51 self.pdata["AUTHOR"][0], 52 self.pdata["AUTHOR"][0],
52 self.pdata["EMAIL"][0])) 53 self.pdata["EMAIL"][0]))
53 54
54 # add the main tag 55 # add the main tag
55 self.writeStartElement("Project") 56 self.writeStartElement("Project")
56 self.writeAttribute("version", projectFileFormatVersion) 57 self.writeAttribute("version", projectFileFormatVersion)
57 58
58 # do the language (used for spell checking) 59 # do the language (used for spell checking)
59 self.writeTextElement("Language", self.pdata["SPELLLANGUAGE"][0]) 60 self.writeTextElement("Language", self.pdata["SPELLLANGUAGE"][0])
60 if len(self.pdata["SPELLWORDS"][0]) > 0: 61 if len(self.pdata["SPELLWORDS"][0]) > 0:
61 self.writeTextElement("ProjectWordList", 62 self.writeTextElement("ProjectWordList",
62 Utilities.fromNativeSeparators(self.pdata["SPELLWORDS"][0])) 63 Utilities.fromNativeSeparators(self.pdata["SPELLWORDS"][0]))
63 if len(self.pdata["SPELLEXCLUDES"][0]) > 0: 64 if len(self.pdata["SPELLEXCLUDES"][0]) > 0:
64 self.writeTextElement("ProjectExcludeList", 65 self.writeTextElement("ProjectExcludeList",
65 Utilities.fromNativeSeparators(self.pdata["SPELLEXCLUDES"][0])) 66 Utilities.fromNativeSeparators(self.pdata["SPELLEXCLUDES"][0]))
66 67
67 # do the hash 68 # do the hash
68 self.writeTextElement("Hash", self.pdata["HASH"][0]) 69 self.writeTextElement("Hash", self.pdata["HASH"][0])
69 70
85 self.writeTextElement("Author", self.pdata["AUTHOR"][0]) 86 self.writeTextElement("Author", self.pdata["AUTHOR"][0])
86 self.writeTextElement("Email", self.pdata["EMAIL"][0]) 87 self.writeTextElement("Email", self.pdata["EMAIL"][0])
87 88
88 # do the translation pattern 89 # do the translation pattern
89 if self.pdata["TRANSLATIONPATTERN"]: 90 if self.pdata["TRANSLATIONPATTERN"]:
90 self.writeTextElement("TranslationPattern", 91 self.writeTextElement("TranslationPattern",
91 Utilities.fromNativeSeparators(self.pdata["TRANSLATIONPATTERN"][0])) 92 Utilities.fromNativeSeparators(self.pdata["TRANSLATIONPATTERN"][0]))
92 93
93 # do the binary translations path 94 # do the binary translations path
94 if self.pdata["TRANSLATIONSBINPATH"]: 95 if self.pdata["TRANSLATIONSBINPATH"]:
95 self.writeTextElement("TranslationsBinPath", 96 self.writeTextElement("TranslationsBinPath",
96 Utilities.fromNativeSeparators(self.pdata["TRANSLATIONSBINPATH"][0])) 97 Utilities.fromNativeSeparators(self.pdata["TRANSLATIONSBINPATH"][0]))
97 98
98 # do the eol setting 99 # do the eol setting
99 if self.pdata["EOL"] and self.pdata["EOL"][0]: 100 if self.pdata["EOL"] and self.pdata["EOL"][0]:
100 self.writeEmptyElement("Eol") 101 self.writeEmptyElement("Eol")
120 121
121 # do the translation exceptions 122 # do the translation exceptions
122 if self.pdata["TRANSLATIONEXCEPTIONS"]: 123 if self.pdata["TRANSLATIONEXCEPTIONS"]:
123 self.writeStartElement("TranslationExceptions") 124 self.writeStartElement("TranslationExceptions")
124 for name in self.pdata["TRANSLATIONEXCEPTIONS"]: 125 for name in self.pdata["TRANSLATIONEXCEPTIONS"]:
125 self.writeTextElement("TranslationException", 126 self.writeTextElement("TranslationException",
126 Utilities.fromNativeSeparators(name)) 127 Utilities.fromNativeSeparators(name))
127 self.writeEndElement() 128 self.writeEndElement()
128 129
129 # do the resources 130 # do the resources
130 self.writeStartElement("Resources") 131 self.writeStartElement("Resources")
144 self.writeTextElement("Other", Utilities.fromNativeSeparators(name)) 145 self.writeTextElement("Other", Utilities.fromNativeSeparators(name))
145 self.writeEndElement() 146 self.writeEndElement()
146 147
147 # do the main script 148 # do the main script
148 if self.pdata["MAINSCRIPT"]: 149 if self.pdata["MAINSCRIPT"]:
149 self.writeTextElement("MainScript", 150 self.writeTextElement("MainScript",
150 Utilities.fromNativeSeparators(self.pdata["MAINSCRIPT"][0])) 151 Utilities.fromNativeSeparators(self.pdata["MAINSCRIPT"][0]))
151 152
152 # do the vcs stuff 153 # do the vcs stuff
153 self.writeStartElement("Vcs") 154 self.writeStartElement("Vcs")
154 if self.pdata["VCS"]: 155 if self.pdata["VCS"]:
178 179
179 # do the extra project data stuff 180 # do the extra project data stuff
180 if len(self.pdata["PROJECTTYPESPECIFICDATA"]): 181 if len(self.pdata["PROJECTTYPESPECIFICDATA"]):
181 self.writeStartElement("ProjectTypeSpecific") 182 self.writeStartElement("ProjectTypeSpecific")
182 if self.pdata["PROJECTTYPESPECIFICDATA"]: 183 if self.pdata["PROJECTTYPESPECIFICDATA"]:
183 self.writeBasics("ProjectTypeSpecificData", 184 self.writeBasics("ProjectTypeSpecificData",
184 self.pdata["PROJECTTYPESPECIFICDATA"]) 185 self.pdata["PROJECTTYPESPECIFICDATA"])
185 self.writeEndElement() 186 self.writeEndElement()
186 187
187 # do the documentation generators stuff 188 # do the documentation generators stuff
188 if len(self.pdata["DOCUMENTATIONPARMS"]): 189 if len(self.pdata["DOCUMENTATIONPARMS"]):
189 self.writeStartElement("Documentation") 190 self.writeStartElement("Documentation")
190 if self.pdata["DOCUMENTATIONPARMS"]: 191 if self.pdata["DOCUMENTATIONPARMS"]:
191 self.writeBasics("DocumentationParams", 192 self.writeBasics("DocumentationParams",
192 self.pdata["DOCUMENTATIONPARMS"]) 193 self.pdata["DOCUMENTATIONPARMS"])
193 self.writeEndElement() 194 self.writeEndElement()
194 195
195 # do the packagers stuff 196 # do the packagers stuff
196 if len(self.pdata["PACKAGERSPARMS"]): 197 if len(self.pdata["PACKAGERSPARMS"]):
197 self.writeStartElement("Packagers") 198 self.writeStartElement("Packagers")
198 if self.pdata["PACKAGERSPARMS"]: 199 if self.pdata["PACKAGERSPARMS"]:
199 self.writeBasics("PackagersParams", 200 self.writeBasics("PackagersParams",
200 self.pdata["PACKAGERSPARMS"]) 201 self.pdata["PACKAGERSPARMS"])
201 self.writeEndElement() 202 self.writeEndElement()
202 203
203 # do the checkers stuff 204 # do the checkers stuff
204 if len(self.pdata["CHECKERSPARMS"]): 205 if len(self.pdata["CHECKERSPARMS"]):
205 self.writeStartElement("Checkers") 206 self.writeStartElement("Checkers")
206 if self.pdata["CHECKERSPARMS"]: 207 if self.pdata["CHECKERSPARMS"]:
207 self.writeBasics("CheckersParams", 208 self.writeBasics("CheckersParams",
208 self.pdata["CHECKERSPARMS"]) 209 self.pdata["CHECKERSPARMS"])
209 self.writeEndElement() 210 self.writeEndElement()
210 211
211 # do the other tools stuff 212 # do the other tools stuff
212 if len(self.pdata["OTHERTOOLSPARMS"]): 213 if len(self.pdata["OTHERTOOLSPARMS"]):
213 self.writeStartElement("OtherTools") 214 self.writeStartElement("OtherTools")
214 if self.pdata["OTHERTOOLSPARMS"]: 215 if self.pdata["OTHERTOOLSPARMS"]:
215 self.writeBasics("OtherToolsParams", 216 self.writeBasics("OtherToolsParams",
216 self.pdata["OTHERTOOLSPARMS"]) 217 self.pdata["OTHERTOOLSPARMS"])
217 self.writeEndElement() 218 self.writeEndElement()
218 219
219 self.writeEndElement() 220 self.writeEndElement()
220 self.writeEndDocument() 221 self.writeEndDocument()

eric ide

mercurial