diff --git a/src/calibre/db/search.py b/src/calibre/db/search.py index 03c86b36c9..afbbe7de1e 100644 --- a/src/calibre/db/search.py +++ b/src/calibre/db/search.py @@ -472,6 +472,8 @@ class Parser(SearchQueryParser): # {{{ self.virtual_fields = virtual_fields or {} if 'marked' not in self.virtual_fields: self.virtual_fields['marked'] = self + if 'in_tag_browser' not in self.virtual_fields: + self.virtual_fields['in_tag_browser'] = self SearchQueryParser.__init__(self, locations, optimize=True, lookup_saved_search=lookup_saved_search, parse_cache=parse_cache) @property diff --git a/src/calibre/library/caches.py b/src/calibre/library/caches.py index be4b24cf89..2bfcb2c564 100644 --- a/src/calibre/library/caches.py +++ b/src/calibre/library/caches.py @@ -938,6 +938,10 @@ class ResultCache(SearchQueryParser): # {{{ except: pass + in_tag_browser_col = self.FIELD_MAP['in_tag_browser'] + for r in self.iterall(): + r[in_tag_browser_col] = None + def get_marked(self, idx, index_is_id=True, default_value=None): id_ = idx if index_is_id else self[idx][0] return self.marked_ids_dict.get(id_, default_value) @@ -1056,7 +1060,7 @@ class ResultCache(SearchQueryParser): # {{{ if item is not None: item.append(db.book_on_device_string(item[0])) # Temp mark and series_sort columns - item.extend((None, None)) + item.extend((None, None, None)) marked_col = self.FIELD_MAP['marked'] for id_,val in iteritems(self.marked_ids_dict): @@ -1065,6 +1069,10 @@ class ResultCache(SearchQueryParser): # {{{ except: pass + in_tag_browser_col = self.FIELD_MAP['in_tag_browser'] + for r in self.iterall(): + r[in_tag_browser_col] = None + self._map = [i[0] for i in self._data if i is not None] if field is not None: self.sort(field, ascending) diff --git a/src/calibre/library/database2.py b/src/calibre/library/database2.py index 233a3b2ab7..61a714cb4a 100644 --- a/src/calibre/library/database2.py +++ b/src/calibre/library/database2.py @@ -462,6 +462,8 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns): self.field_metadata.set_field_record_index('marked', base, prefer_custom=False) self.FIELD_MAP['series_sort'] = base = base+1 self.field_metadata.set_field_record_index('series_sort', base, prefer_custom=False) + self.FIELD_MAP['in_tag_browser'] = base = base+1 + self.field_metadata.set_field_record_index('in_tag_browser', base, prefer_custom=False) script = ''' DROP VIEW IF EXISTS meta2;