--- a/plugins/c_ext/c_ext.py Fri Dec 09 10:32:06 2011 +0100
+++ b/plugins/c_ext/c_ext.py Wed Dec 14 15:17:36 2011 +0100
@@ -31,7 +31,6 @@
self.Buffering = False
self.CFile = CFileClasses["CFile"]()
- self.CFileBuffer = UndoBuffer(self.Copy(self.CFile), False)
if os.path.isfile(filepath):
xmlfile = open(filepath, 'r')
tree = minidom.parse(xmlfile)
@@ -42,11 +41,9 @@
self.CFile.loadXMLTree(child, ["xmlns", "xmlns:xsi", "xsi:schemaLocation"])
self.CFileBuffer = UndoBuffer(self.Copy(self.CFile), True)
else:
+ self.CFileBuffer = UndoBuffer(self.Copy(self.CFile), False)
self.OnPlugSave()
- def GetIconPath(self, name):
- return opjimg(name)
-
def CFileName(self):
return os.path.join(self.PlugPath(), "cfile.xml")
@@ -174,7 +171,7 @@
xmlfile.write(text.encode("utf-8"))
xmlfile.close()
- self.CFileBuffer.CurrentSaved()
+ self.MarkCFileAsSaved()
return True
def PlugGenerate_C(self, buildpath, locations):
@@ -276,34 +273,41 @@
#-------------------------------------------------------------------------------
"""
- Return a copy of the project
+ Return a copy of the cfile model
"""
def Copy(self, model):
return cPickle.loads(cPickle.dumps(model))
+ def CreateConfigBuffer(self, saved):
+ self.CFileBuffer = UndoBuffer(cPickle.dumps(self.CFile), saved)
+
def BufferCFile(self):
- self.CFileBuffer.Buffering(self.Copy(self.CFile))
+ self.CFileBuffer.Buffering(cPickle.dumps(self.CFile))
def StartBuffering(self):
- self.CFileBuffer.Buffering(self.CFile)
self.Buffering = True
def EndBuffering(self):
if self.Buffering:
- self.CFile = self.Copy(self.CFile)
+ self.CFileBuffer.Buffering(cPickle.dumps(self.CFile))
self.Buffering = False
+ def MarkCFileAsSaved(self):
+ self.EndBuffering()
+ self.CFileBuffer.CurrentSaved()
+
def CFileIsSaved(self):
if self.CFileBuffer:
- return self.CFileBuffer.IsCurrentSaved()
+ return self.CFileBuffer.IsCurrentSaved() and not self.Buffering
else:
return True
def LoadPrevious(self):
- self.CFile = self.Copy(self.CFileBuffer.Previous())
+ self.EndBuffering()
+ self.CFile = cPickle.loads(self.CFileBuffer.Previous())
def LoadNext(self):
- self.CFile = self.Copy(self.CFileBuffer.Next())
+ self.CFile = cPickle.loads(self.CFileBuffer.Next())
def GetBufferState(self):
first = self.CFileBuffer.IsFirst()