diff --git a/src/calibre/gui2/search_restriction_mixin.py b/src/calibre/gui2/search_restriction_mixin.py index ce805558d5..c9936a07d3 100644 --- a/src/calibre/gui2/search_restriction_mixin.py +++ b/src/calibre/gui2/search_restriction_mixin.py @@ -404,7 +404,7 @@ class SearchRestrictionMixin(object): current_lib = db.data.get_base_restriction_name() - if current_lib == '': + if not current_lib: a = m.addAction(self.checked, self.no_restriction) else: a = m.addAction(self.empty, self.no_restriction) @@ -576,7 +576,7 @@ class SearchRestrictionMixin(object): self.search_restriction.setCurrentIndex(index) self.apply_search_restriction(index) - def apply_named_search_restriction(self, name): + def apply_named_search_restriction(self, name=None): if not self.search_restriction_list_built: self.build_search_restriction_list() if not name: diff --git a/src/calibre/gui2/ui.py b/src/calibre/gui2/ui.py index f6b7330343..66038e8ade 100644 --- a/src/calibre/gui2/ui.py +++ b/src/calibre/gui2/ui.py @@ -671,7 +671,12 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, EmailMixin, # {{{ return def doit(): - self.library_view.select_rows((book_id,)) + rows = self.library_view.select_rows((book_id,)) + db = self.current_db + if not rows and (db.data.get_base_restriction_name() or db.data.get_search_restriction_name()): + self.apply_virtual_library() + self.apply_named_search_restriction() + self.library_view.select_rows((book_id,)) self.perform_url_action(library_id, library_path, doit) elif action == 'view-book':