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)
This commit is contained in:
Kovid Goyal 2020-05-17 20:02:28 +05:30
parent 28d151a035
commit 7c47b223c0
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -370,16 +370,21 @@ class SearchRestrictionMixin(object):
a = m.addAction(_('Create Virtual library')) a = m.addAction(_('Create Virtual library'))
a.triggered.connect(partial(self.do_create_edit, name=None)) 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 a = self.edit_menu
self.build_virtual_library_list(a, self.do_create_edit) self.build_virtual_library_list(a, self.do_create_edit)
m.addMenu(a) if virt_libs:
m.addMenu(a)
a = self.rm_menu a = self.rm_menu
self.build_virtual_library_list(a, self.remove_vl_triggered) 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 add_tabs_action:
if gprefs['show_vl_tabs']: if gprefs['show_vl_tabs']:
@ -389,8 +394,6 @@ class SearchRestrictionMixin(object):
m.addSeparator() m.addSeparator()
db = self.library_view.model().db
a = self.ar_menu a = self.ar_menu
a.clear() a.clear()
a.setIcon(self.checked if db.data.get_search_restriction_name() else self.empty) a.setIcon(self.checked if db.data.get_search_restriction_name() else self.empty)
@ -418,7 +421,6 @@ class SearchRestrictionMixin(object):
m.addSeparator() m.addSeparator()
virt_libs = db.prefs.get('virtual_libraries', {})
for vl in sorted(virt_libs.keys(), key=sort_key): for vl in sorted(virt_libs.keys(), key=sort_key):
is_current = vl == current_lib is_current = vl == current_lib
a = m.addAction(self.checked if is_current else self.empty, vl.replace('&', '&&')) a = m.addAction(self.checked if is_current else self.empty, vl.replace('&', '&&'))