added distinction between label and name of setting, read mapping from dict

This commit is contained in:
gac-maloja
2021-09-29 20:26:48 +02:00
parent 83de90b1a7
commit ff7b34bf20

View File

@ -10,24 +10,30 @@ class SettingsList(wx.GridSizer):
self.parent = parent self.parent = parent
self.children = {} self.children = {}
def update(self, cfg):
def update(self, cfg, names=None):
if names is None:
names = {}
self.clear() self.clear()
for k, v in sorted(cfg.items()): for k, v in sorted(cfg.items()):
self.add(k, v) n = names.get(k, k)
self.add(k, n, v)
def clear(self): def clear(self):
self.Clear(True) self.Clear(True)
def add(self, *args): def add(self, name, label, value):
new = Setting(self.parent, *args) new = Setting(self.parent, name, label, value)
self.children[new.get_name()] = new self.children[name] = new
self.Add(new.state) self.Add(new.state)
self.Add(new.text, 0, wx.EXPAND|wx.ALL) self.Add(new.text, 0, wx.EXPAND|wx.ALL)
def get(self): def get(self):
res = {} res = {}
for i in self.children.values(): for i in self.children.values():
name = i.get_name() name = i.name
if i.get_state(): if i.get_state():
value = i.get_value() value = i.get_value()
else: else:
@ -42,7 +48,8 @@ class SettingsList(wx.GridSizer):
class Setting: class Setting:
def __init__(self, parent, label, value): def __init__(self, parent, name, label, value):
self.name = name
self.state = state = wx.CheckBox(parent, label=label) self.state = state = wx.CheckBox(parent, label=label)
if isinstance(value, list): if isinstance(value, list):
@ -60,9 +67,6 @@ class Setting:
text.SetValue(value) text.SetValue(value)
def get_name(self):
return self.state.GetLabel()
def get_state(self): def get_state(self):
return self.state.GetValue() return self.state.GetValue()