removed append logic from DictListWidget, better use DictListItem directly, no need for factory anymore

This commit is contained in:
2022-12-21 18:00:16 +01:00
parent 00875bd209
commit 7e68e5a966
2 changed files with 13 additions and 16 deletions

View File

@ -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)

View File

@ -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)