removed append logic from DictListWidget, better use DictListItem directly, no need for factory anymore
This commit is contained in:
@ -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,15 +15,12 @@ class DictListWidget(QListWidget):
|
||||
self.add(k, v)
|
||||
|
||||
def add(self, key, value):
|
||||
self.prepend_item_if_missing(key, value)
|
||||
if key not in self.items:
|
||||
self._make_new_item(key, value)
|
||||
else:
|
||||
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:
|
||||
def _make_new_item(self, key, value):
|
||||
itm = DictListItem(key, value)
|
||||
self.items[key] = itm
|
||||
self.prependItem(itm)
|
||||
|
@ -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)
|
||||
|
||||
|
Reference in New Issue
Block a user