diff -r 1b4b335e19ea -r b98d9e08231f etherlab/ConfigEditor.py --- a/etherlab/ConfigEditor.py Wed Nov 13 11:21:04 2019 +0100 +++ b/etherlab/ConfigEditor.py Mon Nov 25 08:10:45 2019 +0100 @@ -149,6 +149,9 @@ self.VariablesGrid.SetItemText(item, str(idx), 0) else: value = entry.get(colname, "") + # add jblee + if value is None: + value = "" if colname == "Access": value = GetAccessValue(value, entry.get("PDOMapping", "")) self.VariablesGrid.SetItemText(item, value, col) @@ -617,9 +620,7 @@ self.MasterStateEditor = wx.ScrolledWindow(prnt, style=wx.TAB_TRAVERSAL | wx.HSCROLL | wx.VSCROLL) self.MasterStateEditor.Bind(wx.EVT_SIZE, self.OnResize) - self.MasterStateEditor_Panel_Main_Sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5) - self.MasterStateEditor_Panel_Main_Sizer.AddGrowableCol(0) - self.MasterStateEditor_Panel_Main_Sizer.AddGrowableRow(0) + self.MasterStateEditor_Panel_Main_Sizer = wx.BoxSizer(wx.VERTICAL) self.MasterStateEditor_Panel = MasterStatePanelClass(self.MasterStateEditor, self.Controler) @@ -628,6 +629,18 @@ self.MasterStateEditor.SetSizer(self.MasterStateEditor_Panel_Main_Sizer) return self.MasterStateEditor + def OnResize2(self, event): + self.MasterStateEditor.GetBestSize() + xstart, ystart = self.MasterStateEditor.GetViewStart() + window_size = self.MasterStateEditor.GetClientSize() + maxx, maxy = self.MasterStateEditor.GetMinSize() + posx = max(0, min(xstart, (maxx - window_size[0]) / SCROLLBAR_UNIT)) + posy = max(0, min(ystart, (maxy - window_size[1]) / SCROLLBAR_UNIT)) + self.MasterStateEditor.Scroll(posx, posy) + self.MasterStateEditor.SetScrollbars(SCROLLBAR_UNIT, SCROLLBAR_UNIT, + maxx / SCROLLBAR_UNIT, maxy / SCROLLBAR_UNIT, posx, posy) + event.Skip() + def _create_EthercatMasterEditor(self, prnt): self.EthercatMasterEditor = wx.ScrolledWindow(prnt, style=wx.TAB_TRAVERSAL | wx.HSCROLL | wx.VSCROLL)