diff -r c37f8d379ab0 -r cf2a6a7c87e8 editors/CodeFileEditor.py --- a/editors/CodeFileEditor.py Tue May 14 18:43:52 2013 +0200 +++ b/editors/CodeFileEditor.py Tue May 14 20:16:07 2013 +0200 @@ -172,8 +172,21 @@ event.Skip() def OnDoDrop(self, event): - self.ResetBuffer() - wx.CallAfter(self.RefreshModel) + try: + values = eval(event.GetDragText()) + except: + values = event.GetDragText() + if isinstance(values, tuple): + message = None + if values[3] == self.Controler.GetCurrentLocation(): + self.ResetBuffer() + event.SetDragText(values[0]) + wx.CallAfter(self.RefreshModel) + else: + event.SetDragText("") + else: + self.ResetBuffer() + wx.CallAfter(self.RefreshModel) event.Skip() # Buffer the last model state @@ -731,9 +744,8 @@ row = event.GetRow() data_type = self.Table.GetValueByName(row, "Type") var_name = self.Table.GetValueByName(row, "Name") - location = "_".join(map(lambda x:str(x), self.Controler.GetCurrentLocation())) - data = wx.TextDataObject(str(("%s_%s" % (var_name, location), - "Global", data_type, ""))) + data = wx.TextDataObject(str((var_name, "Global", data_type, + self.Controler.GetCurrentLocation()))) dragSource = wx.DropSource(self.VariablesGrid) dragSource.SetData(data) dragSource.DoDragDrop() @@ -747,16 +759,31 @@ class CodeFileEditor(ConfTreeNodeEditor): - CONFNODEEDITOR_TABS = [ - (_("Variables"), "_create_VariablesPanel")] - - def _create_VariablesPanel(self, prnt): - self.VariablesPanel = VariablesEditor(prnt, self.ParentWindow, self.Controler) - - return self.VariablesPanel + CONFNODEEDITOR_TABS = [] + CODE_EDITOR = None + + def _create_CodePanel(self, prnt): + self.CodeEditorPanel = wx.SplitterWindow(prnt) + self.CodeEditorPanel.SetMinimumPaneSize(1) + + self.VariablesPanel = VariablesEditor(self.CodeEditorPanel, + self.ParentWindow, self.Controler) + + if self.CODE_EDITOR is not None: + self.CodeEditor = self.CODE_EDITOR(self.CodeEditorPanel, + self.ParentWindow, self.Controler) + + self.CodeEditorPanel.SplitHorizontally(self.VariablesPanel, + self.CodeEditor, 150) + else: + self.CodeEditorPanel.Initialize(self.VariablesPanel) + + return self.CodeEditorPanel def __init__(self, parent, controler, window): ConfTreeNodeEditor.__init__(self, parent, controler, window) + + wx.CallAfter(self.CodeEditorPanel.SetSashPosition, 150) def GetBufferState(self): return self.Controler.GetBufferState() @@ -773,4 +800,8 @@ ConfTreeNodeEditor.RefreshView(self) self.VariablesPanel.RefreshView() - \ No newline at end of file + self.CodeEditor.RefreshView() + + def Find(self, direction, search_params): + self.CodeEditor.Find(direction, search_params) + \ No newline at end of file