From a42986964f0f3361a077e4b027a918990ede47ad Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Fri, 28 Apr 2023 12:45:22 +0100 Subject: [PATCH] Make the "Sort by" action play nice with the Favourites and Action Chains plugins. --- src/calibre/gui2/actions/sort.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/calibre/gui2/actions/sort.py b/src/calibre/gui2/actions/sort.py index dd5de380cd..5236301bb4 100644 --- a/src/calibre/gui2/actions/sort.py +++ b/src/calibre/gui2/actions/sort.py @@ -71,6 +71,12 @@ class SortByAction(InterfaceAction): def about_to_show(self): self.update_menu() + def library_changed(self, db): + self.update_menu() + + def initialization_complete(self): + self.update_menu() + def update_menu(self, menu=None): menu = self.qaction.menu() if menu is None else menu for action in menu.actions(): @@ -80,9 +86,8 @@ class SortByAction(InterfaceAction): action.toggled.disconnect() menu.clear() - lv = self.gui.library_view - m = lv.model() - db = m.db + m = self.gui.library_view.model() + db = self.gui.current_db # Add saved sorts to the menu saved_sorts = db.new_api.pref('saved_multisort_specs', {}) @@ -161,6 +166,7 @@ class SortByAction(InterfaceAction): d = ChooseMultiSort(self.gui.current_db, parent=self.gui, is_device_connected=self.gui.device_connected) if d.exec() == QDialog.DialogCode.Accepted: self.gui.library_view.multisort(d.current_sort_spec) + self.update_menu() def sort_requested(self, key, ascending): if ascending is None: