|
1 # -*- coding: utf-8 -*- |
|
2 |
|
3 # Copyright (c) 2006 - 2009 Detlev Offenbach <detlev@die-offenbachs.de> |
|
4 # |
|
5 |
|
6 """ |
|
7 Module implementing the writer class for writing an XML user project properties file. |
|
8 """ |
|
9 |
|
10 import time |
|
11 |
|
12 from E4Gui.E4Application import e4App |
|
13 |
|
14 from XMLWriterBase import XMLWriterBase |
|
15 from Config import userProjectFileFormatVersion |
|
16 |
|
17 import Preferences |
|
18 |
|
19 class UserProjectWriter(XMLWriterBase): |
|
20 """ |
|
21 Class implementing the writer class for writing an XML user project properties file. |
|
22 """ |
|
23 def __init__(self, file, projectName): |
|
24 """ |
|
25 Constructor |
|
26 |
|
27 @param file open file (like) object for writing |
|
28 @param projectName name of the project (string) |
|
29 """ |
|
30 XMLWriterBase.__init__(self, file) |
|
31 |
|
32 self.pudata = e4App().getObject("Project").pudata |
|
33 self.pdata = e4App().getObject("Project").pdata |
|
34 self.name = projectName |
|
35 |
|
36 def writeXML(self): |
|
37 """ |
|
38 Public method to write the XML to the file. |
|
39 """ |
|
40 XMLWriterBase.writeXML(self) |
|
41 |
|
42 self._write('<!DOCTYPE UserProject SYSTEM "UserProject-%s.dtd">' % \ |
|
43 userProjectFileFormatVersion) |
|
44 |
|
45 # add some generation comments |
|
46 self._write("<!-- eric4 user project file for project %s -->" % self.name) |
|
47 if Preferences.getProject("XMLTimestamp"): |
|
48 self._write("<!-- Saved: %s -->" % time.strftime('%Y-%m-%d, %H:%M:%S')) |
|
49 self._write("<!-- Copyright (C) %s %s, %s -->" % \ |
|
50 (time.strftime('%Y'), |
|
51 self.escape(self.pdata["AUTHOR"][0]), |
|
52 self.escape(self.pdata["EMAIL"][0]))) |
|
53 |
|
54 # add the main tag |
|
55 self._write('<UserProject version="%s">' % userProjectFileFormatVersion) |
|
56 |
|
57 # do the vcs override stuff |
|
58 if self.pudata["VCSOVERRIDE"]: |
|
59 self._write(" <VcsType>%s</VcsType>" % self.pudata["VCSOVERRIDE"][0]) |
|
60 if self.pudata["VCSSTATUSMONITORINTERVAL"]: |
|
61 self._write(' <VcsStatusMonitorInterval value="%d" />' % \ |
|
62 self.pudata["VCSSTATUSMONITORINTERVAL"][0]) |
|
63 |
|
64 self._write("</UserProject>", newline = False) |