17 |
17 |
18 class SessionReader(XMLStreamReaderBase): |
18 class SessionReader(XMLStreamReaderBase): |
19 """ |
19 """ |
20 Class for reading an XML session file. |
20 Class for reading an XML session file. |
21 """ |
21 """ |
22 supportedVersions = ["4.3", "4.4"] |
22 supportedVersions = ["4.3", "4.4", "5.0"] |
23 |
23 |
24 def __init__(self, device, isGlobal): |
24 def __init__(self, device, isGlobal): |
25 """ |
25 """ |
26 Constructor |
26 Constructor |
27 |
27 |
32 |
32 |
33 self.version = "" |
33 self.version = "" |
34 self.isGlobal = isGlobal |
34 self.isGlobal = isGlobal |
35 |
35 |
36 self.project = e5App().getObject("Project") |
36 self.project = e5App().getObject("Project") |
|
37 self.projectBrowser = e5App().getObject("ProjectBrowser") |
37 self.multiProject = e5App().getObject("MultiProject") |
38 self.multiProject = e5App().getObject("MultiProject") |
38 self.vm = e5App().getObject("ViewManager") |
39 self.vm = e5App().getObject("ViewManager") |
39 self.dbg = e5App().getObject("DebugUI") |
40 self.dbg = e5App().getObject("DebugUI") |
40 self.dbs = e5App().getObject("DebugServer") |
41 self.dbs = e5App().getObject("DebugServer") |
41 |
42 |
87 self.__readWatchexpressions() |
88 self.__readWatchexpressions() |
88 elif self.name() == "DebugInfo": |
89 elif self.name() == "DebugInfo": |
89 self.__readDebugInfo() |
90 self.__readDebugInfo() |
90 elif self.name() == "Bookmarks": |
91 elif self.name() == "Bookmarks": |
91 self.__readBookmarks() |
92 self.__readBookmarks() |
|
93 elif self.name() == "ProjectBrowserStates": |
|
94 self.__readProjectBrowserStates() |
92 else: |
95 else: |
93 self.raiseUnexpectedStartTag(self.name()) |
96 self.raiseUnexpectedStartTag(self.name()) |
94 |
97 |
95 if not quiet: |
98 if not quiet: |
96 self.showErrorMessage() |
99 self.showErrorMessage() |
333 filename = self.readElementText() |
336 filename = self.readElementText() |
334 elif self.name() == "Linenumber": |
337 elif self.name() == "Linenumber": |
335 lineno = int(self.attribute("value", "0")) |
338 lineno = int(self.attribute("value", "0")) |
336 else: |
339 else: |
337 self.raiseUnexpectedStartTag(self.name()) |
340 self.raiseUnexpectedStartTag(self.name()) |
|
341 |
|
342 def __readProjectBrowserStates(self): |
|
343 """ |
|
344 Private method to read the project browser state infos. |
|
345 """ |
|
346 while not self.atEnd(): |
|
347 self.readNext() |
|
348 if self.isEndElement() and self.name() == "ProjectBrowserStates": |
|
349 break |
|
350 |
|
351 if self.isStartElement(): |
|
352 if self.name() == "ProjectBrowserState": |
|
353 browserName = self.attribute("name", "") |
|
354 if not browserName: |
|
355 self.raiseBadValue("ProjectBrowserState.name") |
|
356 self.__readProjectBrowserState(browserName) |
|
357 else: |
|
358 self.raiseUnexpectedStartTag(self.name()) |
|
359 |
|
360 def __readProjectBrowserState(self, browserName): |
|
361 """ |
|
362 Private method to read the project browser state info. |
|
363 |
|
364 @param browserName name of the project browser (string) |
|
365 """ |
|
366 expandedNames = [] |
|
367 |
|
368 while not self.atEnd(): |
|
369 self.readNext() |
|
370 if self.isEndElement() and self.name() == "ProjectBrowserState": |
|
371 # TODO: implement the expand logic |
|
372 print(browserName) |
|
373 print(expandedNames) |
|
374 break |
|
375 |
|
376 if self.isStartElement(): |
|
377 if self.name() == "ExpandedItemName": |
|
378 itemName = self.readElementText() |
|
379 if itemName: |
|
380 expandedNames.append(itemName) |
|
381 else: |
|
382 self.raiseUnexpectedStartTag(self.name()) |