1 # -*- coding: utf-8 -*- |
|
2 |
|
3 # Copyright (c) 2005 - 2021 Detlev Offenbach <detlev@die-offenbachs.de> |
|
4 # |
|
5 |
|
6 """ |
|
7 Module implementing the writer class for writing an XML project debugger |
|
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 debuggerPropertiesFileFormatVersion |
|
17 |
|
18 import Preferences |
|
19 |
|
20 |
|
21 class DebuggerPropertiesWriter(XMLStreamWriterBase): |
|
22 """ |
|
23 Class implementing the writer class for writing an XML project debugger |
|
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.name = projectName |
|
36 self.project = e5App().getObject("Project") |
|
37 |
|
38 def writeXML(self): |
|
39 """ |
|
40 Public method to write the XML to the file. |
|
41 """ |
|
42 XMLStreamWriterBase.writeXML(self) |
|
43 |
|
44 self.writeDTD( |
|
45 '<!DOCTYPE DebuggerProperties SYSTEM' |
|
46 ' "DebuggerProperties-{0}.dtd">'.format( |
|
47 debuggerPropertiesFileFormatVersion)) |
|
48 |
|
49 # add some generation comments |
|
50 self.writeComment( |
|
51 " eric debugger properties file for project {0} ".format( |
|
52 self.name)) |
|
53 self.writeComment( |
|
54 " This file was generated automatically, do not edit. ") |
|
55 if Preferences.getProject("TimestampFile"): |
|
56 self.writeComment( |
|
57 " Saved: {0} ".format(time.strftime('%Y-%m-%d, %H:%M:%S'))) |
|
58 |
|
59 # add the main tag |
|
60 self.writeStartElement("DebuggerProperties") |
|
61 self.writeAttribute("version", debuggerPropertiesFileFormatVersion) |
|
62 |
|
63 self.writeTextElement( |
|
64 "VirtualEnv", self.project.debugProperties["VIRTUALENV"]) |
|
65 |
|
66 self.writeTextElement( |
|
67 "DebugClient", self.project.debugProperties["DEBUGCLIENT"]) |
|
68 |
|
69 self.writeStartElement("Environment") |
|
70 self.writeAttribute( |
|
71 "override", |
|
72 str(int(self.project.debugProperties["ENVIRONMENTOVERRIDE"]))) |
|
73 self.writeCharacters(self.project.debugProperties["ENVIRONMENTSTRING"]) |
|
74 self.writeEndElement() |
|
75 |
|
76 self.writeStartElement("RemoteDebugger") |
|
77 self.writeAttribute( |
|
78 "on", str(int(self.project.debugProperties["REMOTEDEBUGGER"]))) |
|
79 self.writeTextElement( |
|
80 "RemoteHost", self.project.debugProperties["REMOTEHOST"]) |
|
81 self.writeTextElement( |
|
82 "RemoteCommand", self.project.debugProperties["REMOTECOMMAND"]) |
|
83 self.writeEndElement() |
|
84 |
|
85 self.writeStartElement("PathTranslation") |
|
86 self.writeAttribute( |
|
87 "on", str(int(self.project.debugProperties["PATHTRANSLATION"]))) |
|
88 self.writeTextElement( |
|
89 "RemotePath", self.project.debugProperties["REMOTEPATH"]) |
|
90 self.writeTextElement( |
|
91 "LocalPath", self.project.debugProperties["LOCALPATH"]) |
|
92 self.writeEndElement() |
|
93 |
|
94 self.writeStartElement("ConsoleDebugger") |
|
95 self.writeAttribute( |
|
96 "on", str(int(self.project.debugProperties["CONSOLEDEBUGGER"]))) |
|
97 self.writeCharacters(self.project.debugProperties["CONSOLECOMMAND"]) |
|
98 self.writeEndElement() |
|
99 |
|
100 self.writeEmptyElement("Redirect") |
|
101 self.writeAttribute( |
|
102 "on", str(int(self.project.debugProperties["REDIRECT"]))) |
|
103 |
|
104 self.writeEmptyElement("Noencoding") |
|
105 self.writeAttribute( |
|
106 "on", str(int(self.project.debugProperties["NOENCODING"]))) |
|
107 |
|
108 self.writeEndElement() |
|
109 self.writeEndDocument() |
|