introduced "Sort by insertion order" (the default) / "Sorting disabled" keeps current order
This commit is contained in:
@ -82,7 +82,7 @@ class DictListWidget(QListWidget):
|
||||
self.sortItems()
|
||||
|
||||
|
||||
def disable_sorting(self):
|
||||
def enable_sort_by_insertion_order(self):
|
||||
# map order in dict to indices
|
||||
mapping = enumerate(reversed(self.items.values()))
|
||||
mapping = {item.text(): index for index, item in mapping}
|
||||
@ -91,6 +91,14 @@ class DictListWidget(QListWidget):
|
||||
return mapping[x.text()]
|
||||
|
||||
self.set_sort_key(unsort)
|
||||
self.disable_sorting()
|
||||
|
||||
|
||||
def enable_sort_by_text(self):
|
||||
self.set_sort_key(lambda x: x.text())
|
||||
|
||||
|
||||
def disable_sorting(self):
|
||||
self.set_sort_key(None)
|
||||
|
||||
|
||||
|
@ -45,8 +45,9 @@ class MainWindow(QMainWindow):
|
||||
lst_menu.addAction("Mark selected as not seen", self.on_mark_selected_as_not_seen)
|
||||
lst_menu.addSeparator()
|
||||
sort_group = lst_menu.addGroup()
|
||||
sort_group.addCheckbox("Sorting disabled", triggered=self.on_sorting_disabled, state=True)
|
||||
sort_group.addCheckbox("Sort by insertion order", triggered=self.on_sort_by_insertion_order, state=True)
|
||||
sort_group.addCheckbox("Sort by name", triggered=self.on_sort_by_name)
|
||||
sort_group.addCheckbox("Sorting disabled", triggered=self.on_sorting_disabled)
|
||||
|
||||
shortcut(self, "Ctrl+P", self.on_plot_selected)
|
||||
|
||||
@ -140,8 +141,11 @@ class MainWindow(QMainWindow):
|
||||
self.lst.set_alarm_for_selected(True)
|
||||
|
||||
|
||||
def on_sort_by_insertion_order(self):
|
||||
self.lst.enable_sort_by_insertion_order()
|
||||
|
||||
def on_sort_by_name(self):
|
||||
self.lst.set_sort_key(lambda x: x.value.name)
|
||||
self.lst.enable_sort_by_text()
|
||||
|
||||
def on_sorting_disabled(self):
|
||||
self.lst.disable_sorting()
|
||||
|
Reference in New Issue
Block a user