Fix multiple 'All column' coloring rules not being applied

This commit is contained in:
Kovid Goyal 2012-12-24 21:26:08 +05:30
parent a34799a284
commit c1fa9da1cf

View File

@ -52,10 +52,9 @@ class ColumnColor(object):
self.mi = None self.mi = None
def __call__(self, id_, key, fmt, db, formatter, color_cache, colors): def __call__(self, id_, key, fmt, db, formatter, color_cache, colors):
if id_ in color_cache: if id_ in color_cache and key in color_cache[id_]:
if key in color_cache[id_]: self.mi = None
self.mi = None return color_cache[id_][key]
return color_cache[id_][key]
try: try:
if self.mi is None: if self.mi is None:
self.mi = db.get_metadata(id_, index_is_id=True) self.mi = db.get_metadata(id_, index_is_id=True)
@ -763,9 +762,8 @@ class BooksModel(QAbstractTableModel): # {{{
self.column_color.mi = None self.column_color.mi = None
if self.color_row_fmt_cache is None: if self.color_row_fmt_cache is None:
d = dict(self.db.prefs['column_color_rules']) self.color_row_fmt_cache = tuple(fmt for key, fmt in
self.color_row_fmt_cache = d.get(color_row_key, '') self.db.prefs['column_color_rules'] if key == color_row_key)
for k, fmt in self.db.prefs['column_color_rules']: for k, fmt in self.db.prefs['column_color_rules']:
if k == key: if k == key:
@ -789,10 +787,9 @@ class BooksModel(QAbstractTableModel): # {{{
except: except:
pass pass
if self.color_row_fmt_cache: for fmt in self.color_row_fmt_cache:
key = color_row_key ccol = self.column_color(id_, color_row_key, fmt, self.db,
ccol = self.column_color(id_, key, self.color_row_fmt_cache, self.formatter, self.color_cache, self.colors)
self.db, self.formatter, self.color_cache, self.colors)
if ccol is not None: if ccol is not None:
return ccol return ccol