beremiz

Bug on set values fixed

2008-01-31, lbessard
c7fac98c9351
Parents d53a02609e5f
Children 646a44a12e2a
Bug on set values fixed
  • +17 -22
    Beremiz.py
  • --- a/Beremiz.py Tue Jan 29 19:12:13 2008 +0100
    +++ b/Beremiz.py Thu Jan 31 16:42:50 2008 +0100
    @@ -516,7 +516,7 @@
    plugin_infos = plugin.GetParamsAttributes()
    psizer = wx.BoxSizer(wx.HORIZONTAL)
    - self.RefreshSizerElement(window, psizer, plugin_infos, None, True, root)
    + self.RefreshSizerElement(window, psizer, plugin, plugin_infos, None, True, root)
    msizer = wx.BoxSizer(wx.VERTICAL)
    msizer.AddSizer(bsizer, 0, border=0, flag=wx.GROW)
    @@ -600,7 +600,6 @@
    item, root_cookie = self.PluginTree.GetNextChild(root, root_cookie)
    return res
    -
    def GetSelectedPluginName(self, selected = None):
    if selected is None:
    selected = self.PluginTree.GetSelection()
    @@ -789,7 +788,7 @@
    self.ClearSizer(self.MenuSizer.GetChildren()[1].GetSizer())
    self.MenuSizer.Remove(1)
    self.ClearSizer(self.ParamsPanelMainSizer)
    - self.RefreshSizerElement(self.ParamsPanel, self.ParamsPanelMainSizer, infos, None, False)
    + self.RefreshSizerElement(self.ParamsPanel, self.ParamsPanelMainSizer, plugin, infos, None, False)
    if plugin != self.PluginRoot and len(plugin.PluginMethods) > 0:
    boxsizer = wx.BoxSizer(wx.HORIZONTAL)
    self.MenuSizer.AddSizer(boxsizer, 0, border=5, flag=wx.GROW|wx.ALL)
    @@ -830,9 +829,8 @@
    event.Skip()
    return OnButtonClick
    - def GetChoiceCallBackFunction(self, choicectrl, path, selected=None):
    + def GetChoiceCallBackFunction(self, choicectrl, plugin, path, selected=None):
    def OnChoiceChanged(event):
    - plugin = self.GetSelectedPlugin(selected)
    if plugin:
    res, StructChanged = plugin.SetParamsAttribute(path, choicectrl.GetStringSelection(), self.Log)
    if StructChanged: wx.CallAfter(self.RefreshPluginTree)
    @@ -840,9 +838,8 @@
    event.Skip()
    return OnChoiceChanged
    - def GetChoiceContentCallBackFunction(self, choicectrl, staticboxsizer, path, selected=None):
    + def GetChoiceContentCallBackFunction(self, choicectrl, staticboxsizer, plugin, path, selected=None):
    def OnChoiceContentChanged(event):
    - plugin = self.GetSelectedPlugin(selected)
    if plugin:
    res, StructChanged = plugin.SetParamsAttribute(path, choicectrl.GetStringSelection(), self.Log)
    if StructChanged: wx.CallAfter(self.RefreshPluginTree)
    @@ -852,7 +849,7 @@
    staticbox.SetLabel("%(name)s - %(value)s"%infos)
    if wx.VERSION < (2, 8, 0):
    self.ParamsPanel.Freeze()
    - self.RefreshSizerElement(self.ParamsPanel, staticboxsizer, infos["children"], "%s.%s"%(path, infos["name"]), selected=selected)
    + self.RefreshSizerElement(self.ParamsPanel, staticboxsizer, plugin, infos["children"], "%s.%s"%(path, infos["name"]), selected=selected)
    self.ParamsPanelMainSizer.Layout()
    self.ParamsPanel.Thaw()
    self.ParamsPanel.Refresh()
    @@ -861,9 +858,8 @@
    event.Skip()
    return OnChoiceContentChanged
    - def GetTextCtrlCallBackFunction(self, textctrl, path, selected=None):
    + def GetTextCtrlCallBackFunction(self, textctrl, plugin, path, selected=None):
    def OnTextCtrlChanged(event):
    - plugin = self.GetSelectedPlugin(selected)
    if plugin:
    res, StructChanged = plugin.SetParamsAttribute(path, textctrl.GetValue(), self.Log)
    if StructChanged: wx.CallAfter(self.RefreshPluginTree)
    @@ -871,9 +867,8 @@
    event.Skip()
    return OnTextCtrlChanged
    - def GetCheckBoxCallBackFunction(self, chkbx, path, selected=None):
    + def GetCheckBoxCallBackFunction(self, chkbx, plugin, path, selected=None):
    def OnCheckBoxChanged(event):
    - plugin = self.GetSelectedPlugin(selected)
    if plugin:
    res, StructChanged = plugin.SetParamsAttribute(path, chkbx.IsChecked(), self.Log)
    if StructChanged: wx.CallAfter(self.RefreshPluginTree)
    @@ -893,7 +888,7 @@
    for staticbox in staticboxes:
    staticbox.Destroy()
    - def RefreshSizerElement(self, parent, sizer, elements, path, clean = True, selected = None):
    + def RefreshSizerElement(self, parent, sizer, plugin, elements, path, clean = True, selected = None):
    if clean:
    sizer.Clear(True)
    first = True
    @@ -931,12 +926,12 @@
    pos=wx.Point(0, 0), size=wx.Size(0, 0), style=0)
    staticboxsizer = wx.StaticBoxSizer(staticbox, wx.VERTICAL)
    sizer.AddSizer(staticboxsizer, 0, border=5, flag=wx.GROW|wx.BOTTOM)
    - self.RefreshSizerElement(parent, staticboxsizer, element_infos["children"], element_path, selected)
    - callback = self.GetChoiceContentCallBackFunction(choicectrl, staticboxsizer, element_path, selected)
    + self.RefreshSizerElement(parent, staticboxsizer, plugin, element_infos["children"], element_path, selected)
    + callback = self.GetChoiceContentCallBackFunction(choicectrl, staticboxsizer, plugin, element_path, selected)
    else:
    for choice in element_infos["type"]:
    choicectrl.Append(choice)
    - callback = self.GetChoiceCallBackFunction(choicectrl, element_path, selected)
    + callback = self.GetChoiceCallBackFunction(choicectrl, plugin, element_path, selected)
    if element_infos["value"]:
    choicectrl.SetStringSelection(element_infos["value"])
    choicectrl.Bind(wx.EVT_CHOICE, callback, id=id)
    @@ -968,7 +963,7 @@
    spinctrl.SetRange(scmin,scmax)
    boxsizer.AddWindow(spinctrl, 0, border=0, flag=0)
    spinctrl.SetValue(element_infos["value"])
    - spinctrl.Bind(wx.EVT_SPINCTRL, self.GetTextCtrlCallBackFunction(spinctrl, element_path, selected), id=id)
    + spinctrl.Bind(wx.EVT_SPINCTRL, self.GetTextCtrlCallBackFunction(spinctrl, plugin, element_path, selected), id=id)
    elif element_infos["type"] == "element":
    staticbox = wx.StaticBox(id=-1, label=element_infos["name"],
    name='%s_staticbox'%element_infos["name"], parent=parent,
    @@ -978,7 +973,7 @@
    sizer.AddSizer(staticboxsizer, 0, border=0, flag=wx.GROW|wx.TOP)
    else:
    sizer.AddSizer(staticboxsizer, 0, border=0, flag=wx.GROW)
    - self.RefreshSizerElement(parent, staticboxsizer, element_infos["children"], element_path, selected)
    + self.RefreshSizerElement(parent, staticboxsizer, plugin, element_infos["children"], element_path, False, selected)
    else:
    boxsizer = wx.BoxSizer(wx.HORIZONTAL)
    if first:
    @@ -1001,7 +996,7 @@
    pos=wx.Point(0, 0), size=wx.Size(17, 25), style=0)
    boxsizer.AddWindow(checkbox, 0, border=0, flag=0)
    checkbox.SetValue(element_infos["value"])
    - checkbox.Bind(wx.EVT_CHECKBOX, self.GetCheckBoxCallBackFunction(checkbox, element_path, selected), id=id)
    + checkbox.Bind(wx.EVT_CHECKBOX, self.GetCheckBoxCallBackFunction(checkbox, plugin, element_path, selected), id=id)
    elif element_infos["type"] in ["unsignedLong", "long","integer"]:
    if element_infos["type"].startswith("unsigned"):
    scmin = 0
    @@ -1013,14 +1008,14 @@
    spinctrl.SetRange(scmin, scmax)
    boxsizer.AddWindow(spinctrl, 0, border=0, flag=0)
    spinctrl.SetValue(element_infos["value"])
    - spinctrl.Bind(wx.EVT_SPINCTRL, self.GetTextCtrlCallBackFunction(spinctrl, element_path, selected), id=id)
    + spinctrl.Bind(wx.EVT_SPINCTRL, self.GetTextCtrlCallBackFunction(spinctrl, plugin, element_path, selected), id=id)
    else:
    textctrl = wx.TextCtrl(id=id, name=element_infos["name"], parent=parent,
    pos=wx.Point(0, 0), size=wx.Size(150, 25), style=wx.TE_PROCESS_ENTER)
    boxsizer.AddWindow(textctrl, 0, border=0, flag=0)
    textctrl.SetValue(str(element_infos["value"]))
    - textctrl.Bind(wx.EVT_TEXT_ENTER, self.GetTextCtrlCallBackFunction(textctrl, element_path, selected), id=id)
    - textctrl.Bind(wx.EVT_KILL_FOCUS, self.GetTextCtrlCallBackFunction(textctrl, element_path, selected))
    + textctrl.Bind(wx.EVT_TEXT_ENTER, self.GetTextCtrlCallBackFunction(textctrl, plugin, element_path, selected), id=id)
    + textctrl.Bind(wx.EVT_KILL_FOCUS, self.GetTextCtrlCallBackFunction(textctrl, plugin, element_path, selected))
    first = False
    def OnNewProjectMenu(self, event):