diff --git a/scam.py b/scam.py index 6719d6d..46336fe 100755 --- a/scam.py +++ b/scam.py @@ -98,25 +98,24 @@ class MainPanel(wx.Panel): cfg = pc.get_instance_config(instance) print(cfg) - self.orig_cfg = cfg self.camera = cfg["camera_name"] + self.orig_cfg = cfg + name_mapping = None + if not clargs.show_all_settings: + self.orig_cfg = filter_dict(cfg, SHOWN_SETTINGS, ENFORCED_SETTINGS) + name_mapping = SHOWN_SETTINGS + check_incoming_cfg(cfg) + cfg = filter_dict(cfg, SHOWN_SETTINGS) + + self.entries.update(cfg, name_mapping) self.eb_bkg.Enable() self.btn_print.Enable() self.btn_save.Enable() - if clargs.show_all_settings: - self.entries.update(cfg) - else: - filtered_cfg = {k: v for k, v in cfg.items() if k in SHOWN_SETTINGS} - for k in SHOWN_SETTINGS: - if k not in filtered_cfg: - filtered_cfg[k] = None - self.entries.update(filtered_cfg, SHOWN_SETTINGS) - self._adjust_size() @@ -136,15 +135,11 @@ class MainPanel(wx.Panel): def on_print(self, event): - new_cfg = self.make_cfg() - old_cfg = self.orig_cfg - if not clargs.show_all_settings: - old_cfg = {k: v for k, v in old_cfg.items() if k in list(SHOWN_SETTINGS) + ENFORCED_SETTINGS} - - print("old config:", old_cfg) - print("new config:", new_cfg) - print("unchanged" if old_cfg == new_cfg else "changed") + new_cfg = self.make_cfg() + print("\nold config:\n", old_cfg) + print("\nnew config:\n", new_cfg) + print("\nunchanged\n" if old_cfg == new_cfg else "changed") def on_save_cfg(self, event): @@ -183,6 +178,19 @@ def printable(val): return repr(val).replace("'", '"') +def filter_dict(d, *args): + allkeys = [] + for keys in args: + allkeys.extend(keys) + + res = {k: v for k, v in d.items() if k in allkeys} + for k in allkeys: + if k not in res: + res[k] = None + + return res + +