
commit 6b4d1e8ff8d7872bb1cb4bf88bf17f31e61fee1e Author: Kamran Riaz Khan <krkhan@inspirated.com> Date: Sun Jul 24 03:57:47 2011 +0500 Support += operations for list-model wrapper. --- src/gui/configPanel.py | 11 ++++------- src/util/gtkTools.py | 14 +++++++++++++- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/gui/configPanel.py b/src/gui/configPanel.py index e0fb8dc..a8d7f02 100644 --- a/src/gui/configPanel.py +++ b/src/gui/configPanel.py @@ -32,26 +32,23 @@ class ConfigPanel(object, CliConfigPanel): listStore = self.builder.get_object('liststore_config') self._confImportantContents = ConfContents(self.confImportantContents, listStore) - self.confImportantContents = self.confImportantContents[-5:] + self.confImportantContents += self.confImportantContents[-5:] @property def confImportantContents(self): if hasattr(self, '_confImportantContents'): - return self._confImportantContents + return self._confImportantContents.container else: return [] @confImportantContents.setter def confImportantContents(self, value): if hasattr(self, '_confImportantContents'): - try: - self._confImportantContents.empty() - except AttributeError: - pass + self._confImportantContents.empty() for entry in value: self._confImportantContents.append(entry) else: - self._confImportantContents = value + self._confImportantContents = ConfContents(value) def pack_widgets(self): treeView = self.builder.get_object('treeview_config') diff --git a/src/util/gtkTools.py b/src/util/gtkTools.py index 5ad321e..b60a829 100644 --- a/src/util/gtkTools.py +++ b/src/util/gtkTools.py @@ -21,7 +21,7 @@ class Theme: self.colors[key] = getattr(widget.style, prop)[state] class ListWrapper(object): - def __init__(self, container, model): + def __init__(self, container, model=None): self.container = [] self.model = model @@ -63,17 +63,29 @@ class ListWrapper(object): gobject.idle_add(self.__model_set, key, entry) def __model_append(self, entry): + if not self.model: + return + row = self._create_row_from_entry(entry) self.model.append(row) def __model_clear(self): + if not self.model: + return + self.model.clear() def __model_del(self, key): + if not self.model: + return + treeIter = self.model.get_iter(key) self.model.remove(treeIter) def __model_set(self, key, entry): + if not self.model: + return + row = self._create_row_from_entry(entry) self.model[key] = row