From 55cd41444e34343aec0352a5327f9ba05cf9012d Mon Sep 17 00:00:00 2001 From: Sebastien Bourdeauducq Date: Tue, 14 Jul 2015 17:30:55 +0200 Subject: [PATCH] gui/DictSync: better support of nested structs --- artiq/gui/tools.py | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/artiq/gui/tools.py b/artiq/gui/tools.py index f38ebcc09..c8308718f 100644 --- a/artiq/gui/tools.py +++ b/artiq/gui/tools.py @@ -6,13 +6,29 @@ class _DictSyncSubstruct: self.update_cb = update_cb self.ref = ref - def __getitem__(self, key): - return _DictSyncSubstruct(self.update_cb, self.ref[key]) + def append(self, x): + self.ref.append(x) + self.update_cb() + + def insert(self, i, x): + self.ref.insert(i, x) + self.update_cb() + + def pop(self, i=-1): + self.ref.pop(i) + self.update_cb() def __setitem__(self, key, value): self.ref[key] = value self.update_cb() + def __delitem__(self, key): + self.ref.__delitem__(key) + self.update_cb() + + def __getitem__(self, key): + return _DictSyncSubstruct(self.update_cb, self.ref[key]) + class DictSyncModel(QtCore.QAbstractTableModel): def __init__(self, headers, parent, init):