From 63d23e71024889f3abeb669623cbd1f5849d6fbc Mon Sep 17 00:00:00 2001 From: Charles Haley <> Date: Fri, 6 Jul 2012 18:15:29 +0200 Subject: [PATCH] Make the use_primary_find option work correctly in code that calls _match directly. --- src/calibre/gui2/preferences/search.py | 2 ++ src/calibre/library/caches.py | 12 ++++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/calibre/gui2/preferences/search.py b/src/calibre/gui2/preferences/search.py index 936d1a2e9e..7542f4afdd 100644 --- a/src/calibre/gui2/preferences/search.py +++ b/src/calibre/gui2/preferences/search.py @@ -13,6 +13,7 @@ from calibre.gui2.preferences.search_ui import Ui_Form from calibre.gui2 import config, error_dialog from calibre.utils.config import prefs from calibre.utils.icu import sort_key +from calibre.library.caches import set_use_primary_find_in_search class ConfigWidget(ConfigWidgetBase, Ui_Form): @@ -223,6 +224,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): return ConfigWidgetBase.commit(self) def refresh_gui(self, gui): + set_use_primary_find_in_search(prefs['use_primary_find_in_search']) gui.set_highlight_only_button_icon() if self.muc_changed: gui.tags_view.recount() diff --git a/src/calibre/library/caches.py b/src/calibre/library/caches.py index 50af29bb70..aa286f4735 100644 --- a/src/calibre/library/caches.py +++ b/src/calibre/library/caches.py @@ -118,9 +118,13 @@ class MetadataBackup(Thread): # {{{ # }}} +### Global utility function for get_match here and in gui2/library.py pref_use_primary_find_in_search = False -### Global utility function for get_match here and in gui2/library.py +def set_use_primary_find_in_search(toWhat): + global pref_use_primary_find_in_search + pref_use_primary_find_in_search = toWhat + CONTAINS_MATCH = 0 EQUALS_MATCH = 1 REGEXP_MATCH = 2 @@ -251,6 +255,9 @@ class ResultCache(SearchQueryParser): # {{{ SearchQueryParser.__init__(self, self.all_search_locations, optimize=True) self.build_date_relop_dict() self.build_numeric_relop_dict() + # Do this here so the var get updated when a library changes + global pref_use_primary_find_in_search + pref_use_primary_find_in_search = prefs['use_primary_find_in_search'] def break_cycles(self): self._data = self.field_metadata = self.FIELD_MAP = \ @@ -616,9 +623,6 @@ class ResultCache(SearchQueryParser): # {{{ def get_matches(self, location, query, candidates=None, allow_recursion=True): - global pref_use_primary_find_in_search - pref_use_primary_find_in_search = prefs['use_primary_find_in_search'] - matches = set([]) if candidates is None: candidates = self.universal_set()