From 26b1282b2b33112febcbb023829b81379097cc33 Mon Sep 17 00:00:00 2001 From: Sebastien Bourdeauducq Date: Thu, 29 Jan 2015 19:58:25 +0800 Subject: [PATCH] gui/tools/DictSyncer: keep original data --- artiq/gui/tools.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/artiq/gui/tools.py b/artiq/gui/tools.py index 4adc1be39..d199498e8 100644 --- a/artiq/gui/tools.py +++ b/artiq/gui/tools.py @@ -79,7 +79,9 @@ class ListSyncer: class DictSyncer: - def __init__(self, store, init): + def __init__(self, store, init, keep_data=False): + if keep_data: + self.data = init self.store = store self.store.clear() self.order = [] @@ -94,6 +96,8 @@ class DictSyncer: raise KeyError def __setitem__(self, key, value): + if hasattr(self, "data"): + data[key] = value try: i = self._find_index(key) except KeyError: @@ -111,6 +115,8 @@ class DictSyncer: self.order.insert(j, (key, ord_el)) def __delitem__(self, key): + if hasattr(self, "data"): + del self.data[key] i = self._find_index(key) del self.store[i] del self.order[i]