E5XML/SessionReader.py

changeset 3600
7d17c492ab95
parent 3178
f25fc1364c88
child 3601
236578b22511
equal deleted inserted replaced
3598:37fdb72a2388 3600:7d17c492ab95
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())

eric ide

mercurial