eric7/E5XML/DebuggerPropertiesWriter.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) 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()

eric ide

mercurial