This commit is contained in:
2022-12-18 15:00:32 +01:00
parent 010871b820
commit 24e1b109b4

View File

@ -1,11 +1,12 @@
from collections import defaultdict
from PyQt5.QtWidgets import QListWidget, QListWidgetItem
class DictList(QListWidget):
def __init__(self, data, *args, **kwargs):
def __init__(self, data, *args, factory=list, **kwargs):
super().__init__(*args, **kwargs)
self.data = {}
self.data = defaultdict(factory)
self.update(data)
def update(self, data):
@ -13,17 +14,17 @@ class DictList(QListWidget):
self.add(k, v)
def add(self, key, value):
if key not in self.data:
itm = QListWidgetItem(key)
self.prependItem(itm)
self.prepend_item_if_missing(key)
self.data[key] = value
def append(self, key, value):
self.prepend_item_if_missing(key)
self.data[key].append(value)
def prepend_item_if_missing(self, key):
if key not in self.data:
itm = QListWidgetItem(key)
self.prependItem(itm)
self.data[key] = [] #TODO: this should be a factory
self.data[key].append(value)
def prependItem(self, itm):
self.insertItem(0, itm)