eric7/E5XML/UserProjectWriter.py

branch
eric7
changeset 8351
7d13e08ddb3f
parent 8350
74a3b2a6a944
child 8352
879dc528461f
equal deleted inserted replaced
8350:74a3b2a6a944 8351:7d13e08ddb3f
1 # -*- coding: utf-8 -*-
2
3 # Copyright (c) 2006 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
4 #
5
6 """
7 Module implementing the writer class for writing an XML user project
8 properties file.
9 """
10
11 import time
12
13 from E5Gui.E5Application import e5App
14
15 from .XMLStreamWriterBase import XMLStreamWriterBase
16 from .Config import userProjectFileFormatVersion
17
18 import Preferences
19
20
21 class UserProjectWriter(XMLStreamWriterBase):
22 """
23 Class implementing the writer class for writing an XML user project
24 properties file.
25 """
26 def __init__(self, device, projectName):
27 """
28 Constructor
29
30 @param device reference to the I/O device to write to (QIODevice)
31 @param projectName name of the project (string)
32 """
33 XMLStreamWriterBase.__init__(self, device)
34
35 self.pudata = e5App().getObject("Project").pudata
36 self.pdata = e5App().getObject("Project").pdata
37 self.name = projectName
38
39 def writeXML(self):
40 """
41 Public method to write the XML to the file.
42 """
43 XMLStreamWriterBase.writeXML(self)
44
45 self.writeDTD(
46 '<!DOCTYPE UserProject SYSTEM "UserProject-{0}.dtd">'.format(
47 userProjectFileFormatVersion))
48
49 # add some generation comments
50 self.writeComment(
51 " eric user project file for project {0} ".format(self.name))
52 if Preferences.getProject("TimestampFile"):
53 self.writeComment(
54 " Saved: {0} ".format(time.strftime('%Y-%m-%d, %H:%M:%S')))
55 self.writeComment(" Copyright (C) {0} {1}, {2} ".format(
56 time.strftime('%Y'), self.pdata["AUTHOR"],
57 self.pdata["EMAIL"]))
58
59 # add the main tag
60 self.writeStartElement("UserProject")
61 self.writeAttribute("version", userProjectFileFormatVersion)
62
63 # do the vcs override stuff
64 if self.pudata["VCSOVERRIDE"]:
65 self.writeTextElement("VcsType", self.pudata["VCSOVERRIDE"])
66 if self.pudata["VCSSTATUSMONITORINTERVAL"]:
67 self.writeEmptyElement("VcsStatusMonitorInterval")
68 self.writeAttribute(
69 "value", str(self.pudata["VCSSTATUSMONITORINTERVAL"]))
70
71 self.writeEndElement()
72 self.writeEndDocument()

eric ide

mercurial