mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Fix over-aggressive caching causing multiple cover grid emblem rules to not work. Fixes #1352005 [Emblems in cover grid don't work with multiple rules](https://bugs.launchpad.net/calibre/+bug/1352005)
This commit is contained in:
parent
5134d7568c
commit
8b6aae9068
@ -399,14 +399,14 @@ class CoverDelegate(QStyledItemDelegate):
|
||||
traceback.print_exc()
|
||||
return ''
|
||||
|
||||
def render_emblem(self, book_id, rule, cache, mi, db, formatter, template_cache):
|
||||
def render_emblem(self, book_id, rule, rule_index, cache, mi, db, formatter, template_cache):
|
||||
ans = cache[book_id].get(rule, False)
|
||||
if ans is not False:
|
||||
return ans, mi
|
||||
ans = None
|
||||
if mi is None:
|
||||
mi = db.get_proxy_metadata(book_id)
|
||||
ans = formatter.safe_format(rule, mi, '', mi, column_name='cover_grid', template_cache=template_cache) or None
|
||||
ans = formatter.safe_format(rule, mi, '', mi, column_name='cover_grid%d' % rule_index, template_cache=template_cache) or None
|
||||
cache[book_id][rule] = ans
|
||||
return ans, mi
|
||||
|
||||
@ -453,8 +453,8 @@ class CoverDelegate(QStyledItemDelegate):
|
||||
emblems = []
|
||||
if self.emblem_size > 0:
|
||||
mi = None
|
||||
for kind, column, rule in emblem_rules:
|
||||
icon_name, mi = self.render_emblem(book_id, rule, m.cover_grid_emblem_cache, mi, db, m.formatter, m.cover_grid_template_cache)
|
||||
for i, (kind, column, rule) in enumerate(emblem_rules):
|
||||
icon_name, mi = self.render_emblem(book_id, rule, i, m.cover_grid_emblem_cache, mi, db, m.formatter, m.cover_grid_template_cache)
|
||||
if icon_name is not None:
|
||||
pixmap = self.cached_emblem(m.cover_grid_bitmap_cache, icon_name)
|
||||
if pixmap is not None:
|
||||
|
Loading…
x
Reference in New Issue
Block a user