From 7e68e5a966380bb9221a68b640676738b8591292 Mon Sep 17 00:00:00 2001 From: Sven Augustin Date: Wed, 21 Dec 2022 18:00:16 +0100 Subject: [PATCH] removed append logic from DictListWidget, better use DictListItem directly, no need for factory anymore --- grum/dictlist/dictlistwidget.py | 22 +++++++++------------- grum/mainwin.py | 7 ++++--- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/grum/dictlist/dictlistwidget.py b/grum/dictlist/dictlistwidget.py index 7f680cf..a2d535d 100644 --- a/grum/dictlist/dictlistwidget.py +++ b/grum/dictlist/dictlistwidget.py @@ -6,9 +6,8 @@ from .dictlistitem import DictListItem class DictListWidget(QListWidget): - def __init__(self, *args, factory=list, **kwargs): + def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) - self.factory = factory self.items = {} def update(self, data): @@ -16,18 +15,15 @@ class DictListWidget(QListWidget): self.add(k, v) def add(self, key, value): - self.prepend_item_if_missing(key, value) - self.items[key].value = value - - def append(self, key, entry): - self.prepend_item_if_missing(key, self.factory()) - self.items[key].value.append(entry) - - def prepend_item_if_missing(self, key, value): if key not in self.items: - itm = DictListItem(key, value) - self.items[key] = itm - self.prependItem(itm) + self._make_new_item(key, value) + else: + self.items[key].value = value + + def _make_new_item(self, key, value): + itm = DictListItem(key, value) + self.items[key] = itm + self.prependItem(itm) def prependItem(self, itm): self.insertItem(0, itm) diff --git a/grum/mainwin.py b/grum/mainwin.py index e9e2add..e96bd7d 100644 --- a/grum/mainwin.py +++ b/grum/mainwin.py @@ -18,7 +18,7 @@ class MainWindow(QMainWindow): self.setWindowTitle(title) self.setWindowIcon(assets.icon()) - self.lst = lst = DictListWidget(factory=PlotDescription) + self.lst = lst = DictListWidget() lst.update(exampledata) lst.setAlternatingRowColors(True) lst.itemDoubleClicked.connect(self.on_select_list_item) @@ -49,11 +49,12 @@ class MainWindow(QMainWindow): def append_data(self, name, point): - self.lst.append(name, point) item = self.lst.get(name) + desc = item.value + desc.append(point) sub = self.mdi.findSubWindow(name) if sub: - sub.plot.setData(*item.value.data) + sub.plot.setData(*desc.data) else: item.set_alarm(True)