From 31cbe8ac33ca6ec69616035e0d3505d1d08664ae Mon Sep 17 00:00:00 2001 From: Sven Augustin Date: Wed, 1 Feb 2023 15:26:17 +0100 Subject: [PATCH] added possibility to enabling/disabling sorting for the list --- grum/dictlist/dictlistwidget.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) 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) + +