mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-08 02:34:06 -04:00
For the virtual library column stuff: avoid using refresh when invalidating libraries.
This commit is contained in:
parent
b3dbda5492
commit
090eed4153
@ -332,7 +332,7 @@ class SearchRestrictionMixin(object):
|
|||||||
virt_libs = db.prefs.get('virtual_libraries', {})
|
virt_libs = db.prefs.get('virtual_libraries', {})
|
||||||
virt_libs[name] = search
|
virt_libs[name] = search
|
||||||
db.prefs.set('virtual_libraries', virt_libs)
|
db.prefs.set('virtual_libraries', virt_libs)
|
||||||
db.data.invalidate_virtual_libraries_caches(db)
|
db.data.invalidate_virtual_libraries_caches()
|
||||||
|
|
||||||
def do_create_edit(self, name=None):
|
def do_create_edit(self, name=None):
|
||||||
db = self.library_view.model().db
|
db = self.library_view.model().db
|
||||||
@ -342,7 +342,7 @@ class SearchRestrictionMixin(object):
|
|||||||
if name:
|
if name:
|
||||||
self._remove_vl(name, reapply=False)
|
self._remove_vl(name, reapply=False)
|
||||||
self.add_virtual_library(db, cd.library_name, cd.library_search)
|
self.add_virtual_library(db, cd.library_name, cd.library_search)
|
||||||
db.data.invalidate_virtual_libraries_caches(db)
|
db.data.invalidate_virtual_libraries_caches()
|
||||||
if not name or name == db.data.get_base_restriction_name():
|
if not name or name == db.data.get_base_restriction_name():
|
||||||
self.apply_virtual_library(cd.library_name)
|
self.apply_virtual_library(cd.library_name)
|
||||||
else:
|
else:
|
||||||
@ -467,7 +467,7 @@ class SearchRestrictionMixin(object):
|
|||||||
return
|
return
|
||||||
self._remove_vl(name, reapply=True)
|
self._remove_vl(name, reapply=True)
|
||||||
db = self.library_view.model().db
|
db = self.library_view.model().db
|
||||||
db.data.invalidate_virtual_libraries_caches(db)
|
db.data.invalidate_virtual_libraries_caches()
|
||||||
self.tags_view.recount()
|
self.tags_view.recount()
|
||||||
|
|
||||||
def _remove_vl(self, name, reapply=True):
|
def _remove_vl(self, name, reapply=True):
|
||||||
|
@ -212,6 +212,8 @@ class CacheRow(list): # {{{
|
|||||||
self[c] = None
|
self[c] = None
|
||||||
self._must_do = True
|
self._must_do = True
|
||||||
|
|
||||||
|
def refresh_virtual_libraries(self):
|
||||||
|
self._virt_libs = None
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
class ResultCache(SearchQueryParser): # {{{
|
class ResultCache(SearchQueryParser): # {{{
|
||||||
@ -247,6 +249,8 @@ class ResultCache(SearchQueryParser): # {{{
|
|||||||
pref_use_primary_find_in_search = prefs['use_primary_find_in_search']
|
pref_use_primary_find_in_search = prefs['use_primary_find_in_search']
|
||||||
self._uuid_column_index = self.FIELD_MAP['uuid']
|
self._uuid_column_index = self.FIELD_MAP['uuid']
|
||||||
self._uuid_map = {}
|
self._uuid_map = {}
|
||||||
|
self._virt_libs_computed = False
|
||||||
|
self._ids_in_virt_libs = {}
|
||||||
|
|
||||||
def break_cycles(self):
|
def break_cycles(self):
|
||||||
self._data = self.field_metadata = self.FIELD_MAP = \
|
self._data = self.field_metadata = self.FIELD_MAP = \
|
||||||
@ -840,8 +844,14 @@ class ResultCache(SearchQueryParser): # {{{
|
|||||||
current_candidates -= matches
|
current_candidates -= matches
|
||||||
return matches
|
return matches
|
||||||
|
|
||||||
def invalidate_virtual_libraries_caches(self, db):
|
def invalidate_virtual_libraries_caches(self):
|
||||||
self.refresh(db)
|
self._virt_libs_computed = False
|
||||||
|
self._ids_in_virt_libs = {}
|
||||||
|
|
||||||
|
for row in self._data:
|
||||||
|
if row is not None:
|
||||||
|
row.refresh_virtual_libraries()
|
||||||
|
row.refresh_composites()
|
||||||
|
|
||||||
def search_raw(self, query):
|
def search_raw(self, query):
|
||||||
matches = self.parse(query)
|
matches = self.parse(query)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user