From ff7b34bf204100ce9c58751c1e0cf9c7ce9b80e4 Mon Sep 17 00:00:00 2001 From: gac-maloja Date: Wed, 29 Sep 2021 20:26:48 +0200 Subject: [PATCH] added distinction between label and name of setting, read mapping from dict --- settings.py | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) 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()