From 6c0d3efca7a03d56a3e2d66763d0d862e980d33b Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 23 Sep 2020 14:37:54 +0530 Subject: [PATCH] When re-applying the current sort, preserve sub-sorts --- src/calibre/gui2/actions/sort.py | 8 +------- src/calibre/gui2/library/views.py | 4 ++++ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/calibre/gui2/actions/sort.py b/src/calibre/gui2/actions/sort.py index 9dc4ec2ad2..9cfc4c7c8c 100644 --- a/src/calibre/gui2/actions/sort.py +++ b/src/calibre/gui2/actions/sort.py @@ -57,13 +57,7 @@ class SortByAction(InterfaceAction): lv.sort_by_named_field(sort_col, not order) def reapply_sort(self): - lv = self.gui.library_view - m = lv.model() - try: - sort_col, order = m.sorted_on - except TypeError: - sort_col, order = 'date', True - lv.sort_by_named_field(sort_col, order) + self.gui.library_view.resort() def location_selected(self, loc): enabled = loc == 'library' diff --git a/src/calibre/gui2/library/views.py b/src/calibre/gui2/library/views.py index 592d93c1cb..48d345e03c 100644 --- a/src/calibre/gui2/library/views.py +++ b/src/calibre/gui2/library/views.py @@ -600,6 +600,10 @@ class BooksView(QTableView): # {{{ except Exception: idx = -1 self.set_sort_indicator(idx, ascending) + + def resort(self): + with self.preserve_state(preserve_vpos=False, require_selected_ids=False): + self._model.resort(reset=True) # }}} # Ondevice column {{{