diff --git a/src/calibre/gui2/preferences/coloring.py b/src/calibre/gui2/preferences/coloring.py index ca30563703..defadf71c7 100644 --- a/src/calibre/gui2/preferences/coloring.py +++ b/src/calibre/gui2/preferences/coloring.py @@ -836,6 +836,10 @@ class RulesModel(QAbstractListModel): # {{{ else: continue break + if action_name == Rule.INVALID_CONDITION: + return ( + _('
  • The condition using column %(col)s is invalid') + % dict(col=c)) return ( _('
  • If the %(col)s column %(action)s value: %(val)s') % dict( col=c, action=action_name, val=prepare_string_for_xml(v))) diff --git a/src/calibre/library/coloring.py b/src/calibre/library/coloring.py index ab8551b0d7..ef48508233 100644 --- a/src/calibre/library/coloring.py +++ b/src/calibre/library/coloring.py @@ -17,6 +17,8 @@ class Rule(object): # {{{ SIGNATURE = '# BasicColorRule():' + INVALID_CONDITION = _('INVALID CONDITION') + def __init__(self, fm, color=None): self.color = color self.fm = fm @@ -28,6 +30,8 @@ class Rule(object): # {{{ v = self.validate_condition(col, action, val) if v: raise ValueError(v) + if self.apply_condition((col, action, val)) is None: + action = self.INVALID_CONDITION self.conditions.append((col, action, val)) def validate_condition(self, col, action, val):