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