From 7c47b223c0c93951d6e81ac56f8ccba1e794948c Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 17 May 2020 20:02:28 +0530 Subject: [PATCH] Simplify Virtual libraries menu when no virtual libraries are present Fixes #1879143 [[Enhancement] Make entries in the Virtual library menu unclickable if no Virtual library exists](https://bugs.launchpad.net/calibre/+bug/1879143) --- src/calibre/gui2/search_restriction_mixin.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/calibre/gui2/search_restriction_mixin.py b/src/calibre/gui2/search_restriction_mixin.py index e102023f02..401fc016d6 100644 --- a/src/calibre/gui2/search_restriction_mixin.py +++ b/src/calibre/gui2/search_restriction_mixin.py @@ -370,16 +370,21 @@ class SearchRestrictionMixin(object): a = m.addAction(_('Create Virtual library')) a.triggered.connect(partial(self.do_create_edit, name=None)) + db = self.current_db + virt_libs = db.prefs.get('virtual_libraries', {}) a = self.edit_menu self.build_virtual_library_list(a, self.do_create_edit) - m.addMenu(a) + if virt_libs: + m.addMenu(a) a = self.rm_menu self.build_virtual_library_list(a, self.remove_vl_triggered) - m.addMenu(a) + if virt_libs: + m.addMenu(a) - m.addAction(_('Quick select Virtual library'), self.choose_vl_triggerred) + if virt_libs: + m.addAction(_('Quick select Virtual library'), self.choose_vl_triggerred) if add_tabs_action: if gprefs['show_vl_tabs']: @@ -389,8 +394,6 @@ class SearchRestrictionMixin(object): m.addSeparator() - db = self.library_view.model().db - a = self.ar_menu a.clear() a.setIcon(self.checked if db.data.get_search_restriction_name() else self.empty) @@ -418,7 +421,6 @@ class SearchRestrictionMixin(object): m.addSeparator() - virt_libs = db.prefs.get('virtual_libraries', {}) for vl in sorted(virt_libs.keys(), key=sort_key): is_current = vl == current_lib a = m.addAction(self.checked if is_current else self.empty, vl.replace('&', '&&'))