Fix bug in Debug refresh lock that, with too much data to debug, flooded GUI and blocked it
import wx
from controls import ProjectPropertiesPanel
from EditorPanel import EditorPanel
from ConfTreeNodeEditor import ConfTreeNodeEditor, WINDOW_COLOUR
class ProjectNodeEditor(ConfTreeNodeEditor):
VARIABLE_PANEL_TYPE = "config"
ENABLE_REQUIRED = True
def _init_Editor(self, prnt):
self.Editor = wx.ScrolledWindow(prnt, -1, size=wx.Size(-1, -1),
style=wx.TAB_TRAVERSAL|wx.SUNKEN_BORDER|wx.HSCROLL|wx.VSCROLL)
self.Editor.SetBackgroundColour(WINDOW_COLOUR)
self.Editor.Bind(wx.EVT_SIZE, self.OnWindowResize)
self.Editor.Bind(wx.EVT_MOUSEWHEEL, self.OnMouseWheel)
self.ParamsEditor = self.Editor
# Variable allowing disabling of Editor scroll when Popup shown
self.ScrollingEnabled = True
self.ParamsEditorSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5)
self.ParamsEditorSizer.AddGrowableCol(0)
self.ParamsEditorSizer.AddGrowableRow(1)
self.Editor.SetSizer(self.ParamsEditorSizer)
buttons_sizer = self.GenerateMethodButtonSizer()
self.ParamsEditorSizer.AddSizer(buttons_sizer, 0, border=5,
flag=wx.GROW|wx.LEFT|wx.RIGHT|wx.TOP)
projectproperties_sizer = wx.BoxSizer(wx.HORIZONTAL)
self.ParamsEditorSizer.AddSizer(projectproperties_sizer, 0, border=5,
flag=wx.LEFT|wx.RIGHT|wx.BOTTOM)
if self.SHOW_PARAMS:
self.ConfNodeParamsSizer = wx.BoxSizer(wx.VERTICAL)
projectproperties_sizer.AddSizer(self.ConfNodeParamsSizer, 0, border=5,
flag=wx.RIGHT)
else:
self.ConfNodeParamsSizer = None
self.ProjectProperties = ProjectPropertiesPanel(self.Editor, self.Controler, self.ParentWindow, self.ENABLE_REQUIRED)
projectproperties_sizer.AddWindow(self.ProjectProperties, 0, border=0, flag=0)
def __init__(self, parent, controler, window):
configuration = controler.GetProjectMainConfigurationName()
if configuration is not None:
tagname = controler.ComputeConfigurationName(configuration)
else:
tagname = ""
ConfTreeNodeEditor.__init__(self, parent, controler, window, tagname)
def GetTagName(self):
return self.Controler.CTNName()
def GetTitle(self):
fullname = _(self.Controler.CTNName())
if self.Controler.CTNTestModified():
return "~%s~" % fullname
return fullname
def RefreshView(self, variablepanel=True):
EditorPanel.RefreshView(self, variablepanel)
if self.ConfNodeParamsSizer is not None:
self.RefreshConfNodeParamsSizer()
self.ProjectProperties.RefreshView()
def GetBufferState(self):
return self.Controler.GetBufferState()
def Undo(self):
self.Controler.LoadPrevious()
self.ParentWindow.CloseTabsWithoutModel()
def Redo(self):
self.Controler.LoadNext()
self.ParentWindow.CloseTabsWithoutModel()