E5XML/SessionHandler.py

changeset 599
ee87fe94bf96
parent 598
76c36b6ebbdb
child 600
ed2589a25982
--- a/E5XML/SessionHandler.py	Sun Sep 12 18:20:15 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,406 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2003 - 2010 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the handler class for reading an XML project session file.
-"""
-
-from E5Gui.E5Application import e5App
-
-from .Config import sessionFileFormatVersion
-from .XMLHandlerBase import XMLHandlerBase
-
-class SessionHandler(XMLHandlerBase):
-    """
-    Class implementing a sax handler to read an XML project session file.
-    """
-    def __init__(self, project):
-        """
-        Constructor
-        
-        @param project Reference to the project object to store the
-                information into.
-        """
-        XMLHandlerBase.__init__(self)
-        
-        self.startDocumentSpecific = self.startDocumentSession
-        
-        self.elements.update({
-            'Session' : (self.startSession, self.defaultEndElement),
-            'MultiProject' : (self.defaultStartElement, self.endMultiProject),
-            'Project' : (self.defaultStartElement, self.endProject),
-            'Filename' : (self.startFilename, self.endFilename),
-            'ActiveWindow' : (self.startFilename, self.endFilename),
-            'Breakpoint' : (self.startBreakpoint, self.endBreakpoint),
-            'BpFilename' : (self.defaultStartElement, self.endBFilename),
-            'Linenumber' : (self.startLinenumber, self.defaultEndElement),
-            'Condition' : (self.defaultStartElement, self.endCondition),
-            'Enabled' : (self.startEnabled, self.defaultEndElement),
-            'Temporary' : (self.startTemporary, self.defaultEndElement),
-            'Count' : (self.startCount, self.defaultEndElement),
-            'Watchexpression' : (self.startWatchexpression, self.endWatchexpression),
-            'Special' : (self.defaultStartElement, self.endSpecial),
-            'CommandLine' : (self.defaultStartElement, self.endCommandLine),
-            'WorkingDirectory' : (self.defaultStartElement, self.endWorkingDirectory),
-            'Environment' : (self.defaultStartElement, self.endEnvironment),
-            'ReportExceptions' : (self.startReportExceptions, self.defaultEndElement),
-            'Exceptions' : (self.startExceptions, self.endExceptions),
-            'Exception' : (self.defaultStartElement, self.endException),
-            'IgnoredExceptions' : (self.startIgnoredExceptions, self.endIgnoredExceptions),
-            'IgnoredException' : (self.defaultStartElement, self.endIgnoredException),
-            'AutoClearShell' : (self.startAutoClearShell, self.defaultEndElement),
-            'TracePython' : (self.startTracePython, self.defaultEndElement),
-            'AutoContinue' : (self.startAutoContinue, self.defaultEndElement),
-            'Bookmark' : (self.startBookmark, self.endBookmark),
-            'BmFilename' : (self.defaultStartElement, self.endBFilename),
-            
-            ####################################################################
-            ## backward compatibility
-            ####################################################################
-            'Watchpoint' : (self.startWatchexpression, self.endWatchexpression),    # 4.0
-            'CovexcPattern' : (self.defaultStartElement, self.defaultEndElement),   # 4.3
-        })
-    
-        self.project = project
-        self.isGlobal = project is None
-        
-        self.project = e5App().getObject("Project")
-        self.multiProject = e5App().getObject("MultiProject")
-        self.vm = e5App().getObject("ViewManager")
-        self.dbg = e5App().getObject("DebugUI")
-        self.dbs = e5App().getObject("DebugServer")
-        
-    def startDocumentSession(self):
-        """
-        Handler called, when the document parsing is started.
-        """
-        if not self.isGlobal:
-            # clear all breakpoints and bookmarks first
-            # (in case we are rereading a session file)
-            files = self.project.getSources(True)
-            for file in files:
-                editor = self.vm.getOpenEditor(file)
-                if editor is not None:
-                    editor.clearBookmarks()
-            self.dbs.getBreakPointModel().deleteAll()
-        self.version = ''
-    
-    ###################################################
-    ## below follow the individual handler functions
-    ###################################################
-    
-    def endMultiProject(self):
-        """
-        Handler method for the "MultiProject" end tag.
-        """
-        self.multiProject.openMultiProject(self.buffer, False)
-        
-    def endProject(self):
-        """
-        Handler method for the "Project" end tag.
-        """
-        self.project.openProject(self.buffer, False)
-        
-    def startFilename(self, attrs):
-        """
-        Handler method for the "Filename" start tag.
-        
-        @param attrs list of tag attributes
-        """
-        self.buffer = ""
-        self.cline = int(attrs.get("cline", "0"))
-        self.cindex = int(attrs.get("cindex", "0"))
-        self.zoom = int(attrs.get("zoom", "-9999"))
-        
-        folds = attrs.get("folds", "")
-        if folds:
-            self.folds = [int(f) for f in folds.split(',')]
-        else:
-            self.folds = []
-        
-    def endFilename(self):
-        """
-        Handler method for the "Filename" end tag.
-        """
-        self.vm.openFiles(self.buffer)
-        ed = self.vm.getOpenEditor(self.buffer)
-        if ed is not None:
-            if self.zoom > -9999:
-                ed.zoomTo(self.zoom)
-            if self.folds:
-                ed.recolor()
-                for line in self.folds:
-                    ed.foldLine(line - 1)
-            ed.setCursorPosition(self.cline, self.cindex)
-            ed.ensureCursorVisible()
-        
-    def startBreakpoint(self, attrs):
-        """
-        Handler method for the "Breakpoint" start tag.
-        
-        @param attrs list of tag attributes
-        """
-        self.filename = ""
-        self.lineno = 0
-        self.bpCond = ""
-        self.bpTemp = False
-        self.bpEnabled = True
-        self.bpCount = 0
-        
-    def endBreakpoint(self):
-        """
-        Handler method for the "Breakpoint" end tag.
-        """
-        self.dbs.getBreakPointModel().addBreakPoint(self.filename, self.lineno,
-            (self.bpCond, self.bpTemp, self.bpEnabled, self.bpCount))
-        
-    def startWatchexpression(self, attrs):
-        """
-        Handler method for the "Watchexpression" start tag.
-        
-        @param attrs list of tag attributes
-        """
-        self.bpCond = ""
-        self.bpTemp = False
-        self.bpEnabled = True
-        self.bpCount = 0
-        self.wpSpecialCond = ""
-        
-    def endWatchexpression(self):
-        """
-        Handler method for the "Watchexpression" end tag.
-        """
-        self.dbs.getWatchPointModel().addWatchPoint(self.bpCond, 
-            (self.bpTemp, self.bpEnabled, self.bpCount, self.wpSpecialCond))
-        
-    def endBFilename(self):
-        """
-        Handler method for the "BFilename" end tag.
-        """
-        self.filename = self.buffer
-        
-    def startLinenumber(self, attrs):
-        """
-        Handler method for the "Linenumber" start tag.
-        
-        @param attrs list of tag attributes
-        """
-        self.lineno = int(attrs["value"])
-        
-    def endCondition(self):
-        """
-        Handler method for the "Condition" end tag.
-        """
-        cond = self.unescape(self.buffer)
-        if cond == 'None':
-            self.bpCond = ''
-        else:
-            self.bpCond = cond
-            
-    def startEnabled(self, attrs):
-        """
-        Handler method for the "Enabled" start tag.
-        
-        @param attrs list of tag attributes
-        """
-        self.bpEnabled = attrs["value"]
-        if self.bpEnabled in ["True", "False"]:
-            self.bpEnabled = self.bpEnabled == "True"
-        else:
-            self.bpEnabled = bool(int(self.bpEnabled))
-        
-    def startTemporary(self, attrs):
-        """
-        Handler method for the "Temporary" start tag.
-        
-        @param attrs list of tag attributes
-        """
-        self.bpTemp = attrs["value"]
-        if self.bpTemp in ["True", "False"]:
-            self.bpTemp = self.bpTemp == "True"
-        else:
-            self.bpTemp = bool(int(self.bpTemp))
-        
-    def startCount(self, attrs):
-        """
-        Handler method for the "Count" start tag.
-        
-        @param attrs list of tag attributes
-        """
-        self.bpCount = int(attrs["value"])
-        
-    def endSpecial(self):
-        """
-        Handler method for the "Special" end tag.
-        """
-        self.wpSpecialCond = self.buffer
-        
-    def endCommandLine(self):
-        """
-        Handler method for the "CommandLine" end tag.
-        """
-        self.buffer = self.unescape(self.buffer)
-        self.dbg.setArgvHistory(self.buffer)
-        if not self.isGlobal:
-            self.project.dbgCmdline = self.buffer
-        
-    def endWorkingDirectory(self):
-        """
-        Handler method for the "WorkinDirectory" end tag.
-        """
-        self.dbg.setWdHistory(self.buffer)
-        if not self.isGlobal:
-            self.project.dbgWd = self.buffer
-        
-    def endEnvironment(self):
-        """
-        Handler method for the "Environment" end tag.
-        """
-        self.dbg.setEnvHistory(self.buffer)
-        if not self.isGlobal:
-            self.project.dbgEnv = self.buffer
-    
-    def startReportExceptions(self, attrs):
-        """
-        Handler method for the "ReportExceptions" start tag.
-        
-        @param attrs list of tag attributes
-        """
-        exc = attrs.get("value", "False")
-        if exc in ["True", "False"]:
-            if exc == "True":
-                exc = True
-            else:
-                exc = False
-        else:
-            exc = bool(int(exc))
-        self.dbg.setExceptionReporting(exc)
-        if not self.isGlobal:
-            self.project.dbgReportExceptions = exc
-        
-    def startExceptions(self, attrs):
-        """
-        Handler method for the "Exceptions" start tag.
-        
-        @param attrs list of tag attributes
-        """
-        self.dbgExcList = []
-        
-    def endExceptions(self):
-        """
-        Handler method for the "Exceptions" end tag.
-        """
-        self.dbg.setExcList(self.dbgExcList)
-        if not self.isGlobal:
-            self.project.dbgExcList = self.dbgExcList[:] # keep a copy
-        
-    def endException(self):
-        """
-        Handler method for the "Exception" end tag.
-        """
-        self.dbgExcList.append(self.buffer)
-        
-    def startIgnoredExceptions(self, attrs):
-        """
-        Handler method for the "IgnoredExceptions" start tag.
-        
-        @param attrs list of tag attributes
-        """
-        self.dbgExcIgnoreList = []
-        
-    def endIgnoredExceptions(self):
-        """
-        Handler method for the "IgnoredExceptions" end tag.
-        """
-        self.dbg.setExcIgnoreList(self.dbgExcIgnoreList)
-        if not self.isGlobal:
-            self.project.dbgExcIgnoreList = self.dbgExcIgnoreList[:] # keep a copy
-        
-    def endIgnoredException(self):
-        """
-        Handler method for the "IgnoredException" end tag.
-        """
-        self.dbgExcIgnoreList.append(self.buffer)
-        
-    def startAutoClearShell(self, attrs):
-        """
-        Handler method for the "AutoClearShell" start tag.
-        
-        @param attrs list of tag attributes
-        """
-        autoClearShell = attrs.get("value", "False")
-        if autoClearShell == "True":
-            autoClearShell = True
-        else:
-            autoClearShell = False
-        self.dbg.setAutoClearShell(autoClearShell)
-        if not self.isGlobal:
-            self.project.dbgAutoClearShell = autoClearShell
-        
-    def startTracePython(self, attrs):
-        """
-        Handler method for the "TracePython" start tag.
-        
-        @param attrs list of tag attributes
-        """
-        tracePython = attrs.get("value", "False")
-        if tracePython in ["True", "False"]:
-            if tracePython == "True":
-                tracePython = True
-            else:
-                tracePython = False
-        else:
-            tracePython = bool(int(tracePython))
-        self.dbg.setTracePython(tracePython)
-        if not self.isGlobal:
-            self.project.dbgTracePython = tracePython
-        
-    def startAutoContinue(self, attrs):
-        """
-        Handler method for the "AutoContinue" start tag.
-        
-        @param attrs list of tag attributes
-        """
-        autoContinue = attrs.get("value", "False")
-        if autoContinue == "True":
-            autoContinue = True
-        else:
-            autoContinue = False
-        self.dbg.setAutoContinue(autoContinue)
-        if not self.isGlobal:
-            self.project.dbgAutoContinue = autoContinue
-        
-    def startBookmark(self, attrs):
-        """
-        Handler method for the "Bookmark" start tag.
-        
-        @param attrs list of tag attributes
-        """
-        self.filename = ""
-        self.lineno = 0
-        
-    def endBookmark(self):
-        """
-        Handler method for the "Bookmark" end tag.
-        """
-        editor = self.vm.getOpenEditor(self.filename)
-        if editor is not None:
-            editor.toggleBookmark(self.lineno)
-        
-    def startSession(self, attrs):
-        """
-        Handler method for the "Session" start tag.
-        
-        @param attrs list of tag attributes
-        """
-        self.version = attrs.get('version', sessionFileFormatVersion)
-        
-    def getVersion(self):
-        """
-        Public method to retrieve the version of the session.
-        
-        @return String containing the version number.
-        """
-        return self.version

eric ide

mercurial