eric6/E5XML/UserProjectWriter.py

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

eric ide

mercurial