added distinction between label and name of setting, read mapping from dict
This commit is contained in:
24
settings.py
24
settings.py
@ -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()
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user