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 |