plugins/c_ext/c_ext.py
changeset 658 94417ab25510
parent 656 c1792dfc8c7e
child 659 71a824446673
equal deleted inserted replaced
657:340c0b9caeca 658:94417ab25510
    29     EditorType = CFileEditor
    29     EditorType = CFileEditor
    30     
    30     
    31     def __init__(self):
    31     def __init__(self):
    32         filepath = self.CFileName()
    32         filepath = self.CFileName()
    33         
    33         
    34         self._View = None
       
    35         
       
    36         self.Buffering = False
       
    37         self.CFile = CFileClasses["CFile"]()
    34         self.CFile = CFileClasses["CFile"]()
    38         if os.path.isfile(filepath):
    35         if os.path.isfile(filepath):
    39             xmlfile = open(filepath, 'r')
    36             xmlfile = open(filepath, 'r')
    40             tree = minidom.parse(xmlfile)
    37             tree = minidom.parse(xmlfile)
    41             xmlfile.close()
    38             xmlfile.close()
    42             
    39             
    43             for child in tree.childNodes:
    40             for child in tree.childNodes:
    44                 if child.nodeType == tree.ELEMENT_NODE and child.nodeName == "CFile":
    41                 if child.nodeType == tree.ELEMENT_NODE and child.nodeName == "CFile":
    45                     self.CFile.loadXMLTree(child, ["xmlns", "xmlns:xsi", "xsi:schemaLocation"])
    42                     self.CFile.loadXMLTree(child, ["xmlns", "xmlns:xsi", "xsi:schemaLocation"])
    46                     self.CFileBuffer = UndoBuffer(self.Copy(self.CFile), True)
    43                     self.CreateCFileBuffer(True)
    47         else:
    44         else:
    48             self.CFileBuffer = UndoBuffer(self.Copy(self.CFile), False)
    45             self.CreateCFileBuffer(False)
    49             self.OnPlugSave()
    46             self.OnPlugSave()
    50 
    47 
    51     def CFileName(self):
    48     def CFileName(self):
    52         return os.path.join(self.PlugPath(), "cfile.xml")
    49         return os.path.join(self.PlugPath(), "cfile.xml")
    53 
    50 
   274     Return a copy of the cfile model
   271     Return a copy of the cfile model
   275     """
   272     """
   276     def Copy(self, model):
   273     def Copy(self, model):
   277         return cPickle.loads(cPickle.dumps(model))
   274         return cPickle.loads(cPickle.dumps(model))
   278 
   275 
   279     def CreateConfigBuffer(self, saved):
   276     def CreateCFileBuffer(self, saved):
       
   277         self.Buffering = False
   280         self.CFileBuffer = UndoBuffer(cPickle.dumps(self.CFile), saved)
   278         self.CFileBuffer = UndoBuffer(cPickle.dumps(self.CFile), saved)
   281 
   279 
   282     def BufferCFile(self):
   280     def BufferCFile(self):
   283         self.CFileBuffer.Buffering(cPickle.dumps(self.CFile))
   281         self.CFileBuffer.Buffering(cPickle.dumps(self.CFile))
   284     
   282     
   293     def MarkCFileAsSaved(self):
   291     def MarkCFileAsSaved(self):
   294         self.EndBuffering()
   292         self.EndBuffering()
   295         self.CFileBuffer.CurrentSaved()
   293         self.CFileBuffer.CurrentSaved()
   296     
   294     
   297     def CFileIsSaved(self):
   295     def CFileIsSaved(self):
   298         if self.CFileBuffer:
   296         return self.CFileBuffer.IsCurrentSaved() and not self.Buffering
   299             return self.CFileBuffer.IsCurrentSaved() and not self.Buffering
   297         
   300         else:
       
   301             return True
       
   302 
       
   303     def LoadPrevious(self):
   298     def LoadPrevious(self):
   304         self.EndBuffering()
   299         self.EndBuffering()
   305         self.CFile = cPickle.loads(self.CFileBuffer.Previous())
   300         self.CFile = cPickle.loads(self.CFileBuffer.Previous())
   306     
   301     
   307     def LoadNext(self):
   302     def LoadNext(self):
   308         self.CFile = cPickle.loads(self.CFileBuffer.Next())
   303         self.CFile = cPickle.loads(self.CFileBuffer.Next())
   309     
   304     
   310     def GetBufferState(self):
   305     def GetBufferState(self):
   311         first = self.CFileBuffer.IsFirst()
   306         first = self.CFileBuffer.IsFirst() and not self.Buffering
   312         last = self.CFileBuffer.IsLast()
   307         last = self.CFileBuffer.IsLast()
   313         return not first, not last
   308         return not first, not last
   314 
   309 
   315 class RootClass:
   310 class RootClass:
   316 
   311