Sun, 17 Feb 2013 19:07:15 +0100
Updated to Pygments 1.6.
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
2302
f29e9405c851
Updated copyright for 2013.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
3 | # Copyright (c) 2004 - 2013 Detlev Offenbach <detlev@die-offenbachs.de> |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
599
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
7 | Module implementing the writer class for writing an XML session file. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | import time |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | |
55
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
53
diff
changeset
|
12 | from E5Gui.E5Application import e5App |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | |
599
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
14 | from .XMLStreamWriterBase import XMLStreamWriterBase |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6
diff
changeset
|
15 | from .Config import sessionFileFormatVersion |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | import Preferences |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
938
diff
changeset
|
19 | |
599
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
20 | class SessionWriter(XMLStreamWriterBase): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | """ |
599
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
22 | Class implementing the writer class for writing an XML session file. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | """ |
599
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
24 | def __init__(self, device, projectName): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | Constructor |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | |
599
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
28 | @param device reference to the I/O device to write to (QIODevice) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | @param projectName name of the project (string) or None for the |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | global session |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | """ |
599
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
32 | XMLStreamWriterBase.__init__(self, device) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | self.name = projectName |
53
c3eb7cc1ff8b
Renamed e5App to e5App.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
50
diff
changeset
|
35 | self.project = e5App().getObject("Project") |
c3eb7cc1ff8b
Renamed e5App to e5App.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
50
diff
changeset
|
36 | self.multiProject = e5App().getObject("MultiProject") |
c3eb7cc1ff8b
Renamed e5App to e5App.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
50
diff
changeset
|
37 | self.vm = e5App().getObject("ViewManager") |
c3eb7cc1ff8b
Renamed e5App to e5App.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
50
diff
changeset
|
38 | self.dbg = e5App().getObject("DebugUI") |
c3eb7cc1ff8b
Renamed e5App to e5App.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
50
diff
changeset
|
39 | self.dbs = e5App().getObject("DebugServer") |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | def writeXML(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | Public method to write the XML to the file. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | isGlobal = self.name is None |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | |
599
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
47 | XMLStreamWriterBase.writeXML(self) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | |
599
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
49 | self.writeDTD('<!DOCTYPE Session SYSTEM "Session-{0}.dtd">'.format( |
411
99409cddaaa9
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
229
diff
changeset
|
50 | sessionFileFormatVersion)) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | # add some generation comments |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | if not isGlobal: |
599
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
54 | self.writeComment(" eric5 session file for project {0} ".format(self.name)) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
55 | self.writeComment(" This file was generated automatically, do not edit. ") |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | if Preferences.getProject("XMLTimestamp") or isGlobal: |
599
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
57 | self.writeComment(" Saved: {0} ".format(time.strftime('%Y-%m-%d, %H:%M:%S'))) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | # add the main tag |
599
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
60 | self.writeStartElement("Session") |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
61 | self.writeAttribute("version", sessionFileFormatVersion) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | # step 0: save open multi project and project for the global session |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | if isGlobal: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | if self.multiProject.isOpen(): |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
938
diff
changeset
|
66 | self.writeTextElement("MultiProject", |
599
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
67 | self.multiProject.getMultiProjectFile()) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | if self.project.isOpen(): |
599
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
69 | self.writeTextElement("Project", self.project.getProjectFile()) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | # step 1: save all open (project) filenames and the active window |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | allOpenFiles = self.vm.getOpenFilenames() |
599
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
73 | self.writeStartElement("Filenames") |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | for of in allOpenFiles: |
6
52e8c820d0dd
Removed some superfluous unicode() calls.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
75 | if isGlobal or of.startswith(self.project.ppath): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | ed = self.vm.getOpenEditor(of) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | if ed is not None: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | line, index = ed.getCursorPosition() |
938
f421f2138c0f
Adjusted code to use the QScintilla contractedFolds() and setContractedFolds() methods (as of QScintilla 2.5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
79 | folds = ','.join( |
f421f2138c0f
Adjusted code to use the QScintilla contractedFolds() and setContractedFolds() methods (as of QScintilla 2.5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
80 | [str(i + 1) for i in ed.contractedFolds()]) |
228
1cce8982e636
Added code to save the editor zoom factor in the session file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
96
diff
changeset
|
81 | zoom = ed.getZoom() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | line, index = 0, 0 |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | folds = '' |
229
fa7024a3cd58
Fixed a bug introduced by the last change.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
228
diff
changeset
|
85 | zoom = -9999 |
599
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
86 | self.writeStartElement("Filename") |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
87 | self.writeAttribute("cline", str(line)) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
88 | self.writeAttribute("cindex", str(index)) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
89 | self.writeAttribute("folds", folds) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
90 | self.writeAttribute("zoom", str(zoom)) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
91 | self.writeCharacters(of) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
92 | self.writeEndElement() |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
93 | self.writeEndElement() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | aw = self.vm.getActiveName() |
6
52e8c820d0dd
Removed some superfluous unicode() calls.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
96 | if aw and aw.startswith(self.project.ppath): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | ed = self.vm.getOpenEditor(aw) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | if ed is not None: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | line, index = ed.getCursorPosition() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | line, index = 0, 0 |
599
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
102 | self.writeStartElement("ActiveWindow") |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
103 | self.writeAttribute("cline", str(line)) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
104 | self.writeAttribute("cindex", str(index)) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
105 | self.writeCharacters(aw) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
106 | self.writeEndElement() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | # step 2a: save all breakpoints |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | allBreaks = Preferences.getProject("SessionAllBreakpoints") |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | projectFiles = self.project.getSources(True) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111 | bpModel = self.dbs.getBreakPointModel() |
599
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
112 | self.writeStartElement("Breakpoints") |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | for row in range(bpModel.rowCount()): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
114 | index = bpModel.index(row, 0) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
115 | fname, lineno, cond, temp, enabled, count = \ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
116 | bpModel.getBreakPointByIndex(index)[:6] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | if isGlobal or allBreaks or fname in projectFiles: |
599
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
118 | self.writeStartElement("Breakpoint") |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
119 | self.writeTextElement("BpFilename", fname) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
120 | self.writeEmptyElement("Linenumber") |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
121 | self.writeAttribute("value", str(lineno)) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
122 | self.writeTextElement("Condition", str(cond)) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
123 | self.writeEmptyElement("Temporary") |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
124 | self.writeAttribute("value", str(temp)) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
125 | self.writeEmptyElement("Enabled") |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
126 | self.writeAttribute("value", str(enabled)) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
127 | self.writeEmptyElement("Count") |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
128 | self.writeAttribute("value", str(count)) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
129 | self.writeEndElement() |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
130 | self.writeEndElement() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | # step 2b: save all watch expressions |
599
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
133 | self.writeStartElement("Watchexpressions") |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | wpModel = self.dbs.getWatchPointModel() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
135 | for row in range(wpModel.rowCount()): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | index = wpModel.index(row, 0) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
137 | cond, temp, enabled, count, special = wpModel.getWatchPointByIndex(index)[:5] |
599
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
138 | self.writeStartElement("Watchexpression") |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
139 | self.writeTextElement("Condition", str(cond)) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
140 | self.writeEmptyElement("Temporary") |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
141 | self.writeAttribute("value", str(temp)) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
142 | self.writeEmptyElement("Enabled") |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
143 | self.writeAttribute("value", str(enabled)) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
144 | self.writeEmptyElement("Count") |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
145 | self.writeAttribute("value", str(count)) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
146 | self.writeTextElement("Special", special) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
147 | self.writeEndElement() |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
148 | self.writeEndElement() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
149 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
150 | # step 3: save the debug info |
599
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
151 | self.writeStartElement("DebugInfo") |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152 | if isGlobal: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
153 | if len(self.dbg.argvHistory): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154 | dbgCmdline = str(self.dbg.argvHistory[0]) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
155 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
156 | dbgCmdline = "" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
157 | if len(self.dbg.wdHistory): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
158 | dbgWd = self.dbg.wdHistory[0] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
159 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
160 | dbgWd = "" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
161 | if len(self.dbg.envHistory): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
162 | dbgEnv = self.dbg.envHistory[0] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
163 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
164 | dbgEnv = "" |
599
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
165 | self.writeTextElement("CommandLine", dbgCmdline) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
166 | self.writeTextElement("WorkingDirectory", dbgWd) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
167 | self.writeTextElement("Environment", dbgEnv) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
168 | self.writeEmptyElement("ReportExceptions") |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
169 | self.writeAttribute("value", str(self.dbg.exceptions)) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
170 | self.writeStartElement("Exceptions") |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
171 | for exc in self.dbg.excList: |
599
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
172 | self.writeTextElement("Exception", exc) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
173 | self.writeEndElement() |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
174 | self.writeStartElement("IgnoredExceptions") |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
175 | for iexc in self.dbg.excIgnoreList: |
599
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
176 | self.writeTextElement("IgnoredException", iexc) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
177 | self.writeEndElement() |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
178 | self.writeEmptyElement("AutoClearShell") |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
179 | self.writeAttribute("value", str(self.dbg.autoClearShell)) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
180 | self.writeEmptyElement("TracePython") |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
181 | self.writeAttribute("value", str(self.dbg.tracePython)) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
182 | self.writeEmptyElement("AutoContinue") |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
183 | self.writeAttribute("value", str(self.dbg.autoContinue)) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
184 | self.writeEmptyElement("CovexcPattern") # kept for compatibility |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
185 | else: |
599
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
186 | self.writeTextElement("CommandLine", self.project.dbgCmdline) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
187 | self.writeTextElement("WorkingDirectory", self.project.dbgWd) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
188 | self.writeTextElement("Environment", self.project.dbgEnv) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
189 | self.writeEmptyElement("ReportExceptions") |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
190 | self.writeAttribute("value", str(self.project.dbgReportExceptions)) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
191 | self.writeStartElement("Exceptions") |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
192 | for exc in self.project.dbgExcList: |
599
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
193 | self.writeTextElement("Exception", exc) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
194 | self.writeEndElement() |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
195 | self.writeStartElement("IgnoredExceptions") |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
196 | for iexc in self.project.dbgExcIgnoreList: |
599
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
197 | self.writeTextElement("IgnoredException", iexc) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
198 | self.writeEndElement() |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
199 | self.writeEmptyElement("AutoClearShell") |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
200 | self.writeAttribute("value", str(self.project.dbgAutoClearShell)) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
201 | self.writeEmptyElement("TracePython") |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
202 | self.writeAttribute("value", str(self.project.dbgTracePython)) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
203 | self.writeEmptyElement("AutoContinue") |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
204 | self.writeAttribute("value", str(self.project.dbgAutoContinue)) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
205 | self.writeEmptyElement("CovexcPattern") # kept for compatibility |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
206 | self.writeEndElement() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
207 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
208 | # step 4: save bookmarks of all open (project) files |
599
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
209 | self.writeStartElement("Bookmarks") |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
210 | for of in allOpenFiles: |
6
52e8c820d0dd
Removed some superfluous unicode() calls.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
211 | if isGlobal or of.startswith(self.project.ppath): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
212 | editor = self.vm.getOpenEditor(of) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
213 | for bookmark in editor.getBookmarks(): |
599
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
214 | self.writeStartElement("Bookmark") |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
215 | self.writeTextElement("BmFilename", of) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
216 | self.writeEmptyElement("Linenumber") |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
217 | self.writeAttribute("value", str(bookmark)) |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
218 | self.writeEndElement() |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
219 | self.writeEndElement() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
220 | |
599
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
221 | # add the main end tag |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
222 | self.writeEndElement() |
ee87fe94bf96
Migrated the session handler to session reader.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
411
diff
changeset
|
223 | self.writeEndDocument() |