# HG changeset patch # User laurent # Date 1324493020 -3600 # Node ID 94417ab25510a49c1ec0401f291fb73c398920a6 # Parent 340c0b9caeca90c1c0e4e22bec06924a95dcd4b6 Fixing some issues in c_ext plugin diff -r 340c0b9caeca -r 94417ab25510 plugins/c_ext/CFileEditor.py --- a/plugins/c_ext/CFileEditor.py Wed Dec 21 19:42:49 2011 +0100 +++ b/plugins/c_ext/CFileEditor.py Wed Dec 21 19:43:40 2011 +0100 @@ -210,6 +210,7 @@ self.Controler.EndBuffering() self.StartBuffering() self.CurrentAction = ("Add", event.GetPosition()) + wx.CallAfter(self.RefreshModel) elif mod_type&wx.stc.STC_MOD_BEFOREDELETE: if self.CurrentAction == None: self.StartBuffering() @@ -217,6 +218,7 @@ self.Controler.EndBuffering() self.StartBuffering() self.CurrentAction = ("Delete", event.GetPosition()) + wx.CallAfter(self.RefreshModel) event.Skip() def OnDoDrop(self, event): @@ -224,13 +226,10 @@ wx.CallAfter(self.RefreshModel) event.Skip() - def IsViewing(self, name): - return self.Name == name - # Buffer the last model state def RefreshBuffer(self): self.Controler.BufferCFile() - if self.ParentWindow: + if self.ParentWindow is not None: self.ParentWindow.RefreshTitle() self.ParentWindow.RefreshFileMenu() self.ParentWindow.RefreshEditMenu() @@ -238,7 +237,7 @@ def StartBuffering(self): self.Controler.StartBuffering() - if self.ParentWindow: + if self.ParentWindow is not None: self.ParentWindow.RefreshTitle() self.ParentWindow.RefreshFileMenu() self.ParentWindow.RefreshEditMenu() @@ -295,7 +294,6 @@ # Images are specified with a appended "?type" self.AutoCompShow(0, " ".join([word + "?1" for word in CPP_KEYWORDS])) else: - wx.CallAfter(self.RefreshModel) event.Skip() def OnKillFocus(self, event): @@ -617,19 +615,10 @@ self.VariablesGrid.SetColSize(col, self.ColSizes[col]) self.Table.ResetView(self.VariablesGrid) - def __del__(self): - self.Controler.OnCloseEditor() - - def IsViewing(self, name): - return name == "Variables" - def RefreshModel(self): self.Controler.SetVariables(self.Table.GetData()) self.RefreshBuffer() - def ResetBuffer(self): - pass - # Buffer the last model state def RefreshBuffer(self): self.Controler.BufferCFile() @@ -853,7 +842,7 @@ class CFileEditor(EditorPanel): def _init_Editor(self, prnt): - self.Editor = wx.Panel(id=-1, parent=prnt, pos=wx.Point(0, 0), + self.Editor = wx.Panel(id=ID_CFILEEDITOR, parent=prnt, pos=wx.Point(0, 0), size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL) self.Panels = {} @@ -892,6 +881,9 @@ img = wx.Bitmap(self.Controler.GetIconPath("Cfile.png"), wx.BITMAP_TYPE_PNG).ConvertToImage() self.SetIcon(wx.BitmapFromImage(img.Rescale(16, 16))) + def __del__(self): + self.Controler.OnCloseEditor() + def GetTitle(self): fullname = self.Controler.PlugFullName() if not self.Controler.CFileIsSaved(): diff -r 340c0b9caeca -r 94417ab25510 plugins/c_ext/c_ext.py --- a/plugins/c_ext/c_ext.py Wed Dec 21 19:42:49 2011 +0100 +++ b/plugins/c_ext/c_ext.py Wed Dec 21 19:43:40 2011 +0100 @@ -31,9 +31,6 @@ def __init__(self): filepath = self.CFileName() - self._View = None - - self.Buffering = False self.CFile = CFileClasses["CFile"]() if os.path.isfile(filepath): xmlfile = open(filepath, 'r') @@ -43,9 +40,9 @@ for child in tree.childNodes: if child.nodeType == tree.ELEMENT_NODE and child.nodeName == "CFile": self.CFile.loadXMLTree(child, ["xmlns", "xmlns:xsi", "xsi:schemaLocation"]) - self.CFileBuffer = UndoBuffer(self.Copy(self.CFile), True) + self.CreateCFileBuffer(True) else: - self.CFileBuffer = UndoBuffer(self.Copy(self.CFile), False) + self.CreateCFileBuffer(False) self.OnPlugSave() def CFileName(self): @@ -276,7 +273,8 @@ def Copy(self, model): return cPickle.loads(cPickle.dumps(model)) - def CreateConfigBuffer(self, saved): + def CreateCFileBuffer(self, saved): + self.Buffering = False self.CFileBuffer = UndoBuffer(cPickle.dumps(self.CFile), saved) def BufferCFile(self): @@ -295,11 +293,8 @@ self.CFileBuffer.CurrentSaved() def CFileIsSaved(self): - if self.CFileBuffer: - return self.CFileBuffer.IsCurrentSaved() and not self.Buffering - else: - return True - + return self.CFileBuffer.IsCurrentSaved() and not self.Buffering + def LoadPrevious(self): self.EndBuffering() self.CFile = cPickle.loads(self.CFileBuffer.Previous()) @@ -308,7 +303,7 @@ self.CFile = cPickle.loads(self.CFileBuffer.Next()) def GetBufferState(self): - first = self.CFileBuffer.IsFirst() + first = self.CFileBuffer.IsFirst() and not self.Buffering last = self.CFileBuffer.IsLast() return not first, not last