From 9d66a4c61e8160dfd83bf79d8982369adb321406 Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Sun, 11 Jun 2017 09:42:11 +0200 Subject: [PATCH] Account for the other two ways a saved search reference can be written. Also change the text of the menu line. --- src/calibre/gui2/search_box.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/calibre/gui2/search_box.py b/src/calibre/gui2/search_box.py index 4561ee3516..3cf8bf6544 100644 --- a/src/calibre/gui2/search_box.py +++ b/src/calibre/gui2/search_box.py @@ -567,7 +567,7 @@ class SavedSearchBoxMixin(object): # {{{ m = self.add_saved_search_button.menu() m.clear() m.addAction(QIcon(I('plus.png')), _('Add Saved search'), self.add_saved_search) - m.addAction(QIcon(I("search_copy_saved.png")), _('Get Saved search text'), + m.addAction(QIcon(I("search_copy_saved.png")), _('Get Saved search expression'), self.get_saved_search_text) m.addActions(list(self.save_search_button.menu().actions())[-1:]) m.addSeparator() @@ -602,9 +602,11 @@ class SavedSearchBoxMixin(object): # {{{ db = self.current_db try: current_search = self.search.currentText() - if not current_search.startswith('search:"'): + if not current_search.startswith('search:'): raise ValueError() - current_search = current_search[8:-1].lstrip('=') + # This strange expression accounts for the four ways a search can be written: + # search:fff, search:"fff", search:"=fff". and search:="fff" + current_search = current_search[7:].lstrip('=').strip('"').lstrip('=') current_search = db.saved_search_lookup(current_search) if not current_search: raise ValueError()