diff --git a/grum/dictlist/dictlistwidget.py b/grum/dictlist/dictlistwidget.py index dabc018..17270f2 100644 --- a/grum/dictlist/dictlistwidget.py +++ b/grum/dictlist/dictlistwidget.py @@ -72,4 +72,27 @@ class DictListWidget(QListWidget): i.set_alarm(state) + def set_sort_key(self, sk): + for i in self.items.values(): + i.set_sort_key(sk) + + if sk is None: + self.setSortingEnabled(False) + else: + self.setSortingEnabled(True) + self.sortItems() + + + def disable_sorting(self): + # map order in dict to indices + mapping = enumerate(reversed(self.items.values())) + mapping = {item.text(): index for index, item in mapping} + + def unsort(x): + return mapping[x.text()] + + self.set_sort_key(unsort) + self.set_sort_key(None) + +