Show the user a specific message if a condition for an color/icon rule has been made invalid because of column type changes. This is related to http://www.mobileread.com/forums/showthread.php?p=3089981

This commit is contained in:
Charles Haley 2015-04-26 11:57:35 +02:00
parent 5f12139615
commit 19a780d385
2 changed files with 8 additions and 0 deletions

View File

@ -836,6 +836,10 @@ class RulesModel(QAbstractListModel): # {{{
else: else:
continue continue
break break
if action_name == Rule.INVALID_CONDITION:
return (
_('<li>The condition using column <b>%(col)s</b> is <b>invalid</b>')
% dict(col=c))
return ( return (
_('<li>If the <b>%(col)s</b> column <b>%(action)s</b> value: <b>%(val)s</b>') % dict( _('<li>If the <b>%(col)s</b> column <b>%(action)s</b> value: <b>%(val)s</b>') % dict(
col=c, action=action_name, val=prepare_string_for_xml(v))) col=c, action=action_name, val=prepare_string_for_xml(v)))

View File

@ -17,6 +17,8 @@ class Rule(object): # {{{
SIGNATURE = '# BasicColorRule():' SIGNATURE = '# BasicColorRule():'
INVALID_CONDITION = _('INVALID CONDITION')
def __init__(self, fm, color=None): def __init__(self, fm, color=None):
self.color = color self.color = color
self.fm = fm self.fm = fm
@ -28,6 +30,8 @@ class Rule(object): # {{{
v = self.validate_condition(col, action, val) v = self.validate_condition(col, action, val)
if v: if v:
raise ValueError(v) raise ValueError(v)
if self.apply_condition((col, action, val)) is None:
action = self.INVALID_CONDITION
self.conditions.append((col, action, val)) self.conditions.append((col, action, val))
def validate_condition(self, col, action, val): def validate_condition(self, col, action, val):