mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Merge branch 'master' of https://github.com/cbhaley/calibre
This commit is contained in:
commit
124d946cfb
@ -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)))
|
||||||
@ -864,7 +868,7 @@ class EditRules(QWidget): # {{{
|
|||||||
self.add_button = QPushButton(QIcon(I('plus.png')), _('Add Rule'),
|
self.add_button = QPushButton(QIcon(I('plus.png')), _('Add Rule'),
|
||||||
self)
|
self)
|
||||||
self.remove_button = QPushButton(QIcon(I('minus.png')),
|
self.remove_button = QPushButton(QIcon(I('minus.png')),
|
||||||
_('Remove Rule'), self)
|
_('Remove Rule(s)'), self)
|
||||||
self.add_button.clicked.connect(self.add_rule)
|
self.add_button.clicked.connect(self.add_rule)
|
||||||
self.remove_button.clicked.connect(self.remove_rule)
|
self.remove_button.clicked.connect(self.remove_rule)
|
||||||
l.addWidget(self.add_button, l.rowCount(), 0)
|
l.addWidget(self.add_button, l.rowCount(), 0)
|
||||||
@ -873,7 +877,7 @@ class EditRules(QWidget): # {{{
|
|||||||
self.g = g = QGridLayout()
|
self.g = g = QGridLayout()
|
||||||
self.rules_view = QListView(self)
|
self.rules_view = QListView(self)
|
||||||
self.rules_view.doubleClicked.connect(self.edit_rule)
|
self.rules_view.doubleClicked.connect(self.edit_rule)
|
||||||
self.rules_view.setSelectionMode(self.rules_view.SingleSelection)
|
self.rules_view.setSelectionMode(self.rules_view.ExtendedSelection)
|
||||||
self.rules_view.setAlternatingRowColors(True)
|
self.rules_view.setAlternatingRowColors(True)
|
||||||
self.rtfd = RichTextDelegate(parent=self.rules_view, max_width=400)
|
self.rtfd = RichTextDelegate(parent=self.rules_view, max_width=400)
|
||||||
self.rules_view.setItemDelegate(self.rtfd)
|
self.rules_view.setItemDelegate(self.rtfd)
|
||||||
@ -1003,11 +1007,12 @@ class EditRules(QWidget): # {{{
|
|||||||
error_dialog(self, _('No rule selected'),
|
error_dialog(self, _('No rule selected'),
|
||||||
_('No rule selected for %s.')%txt, show=True)
|
_('No rule selected for %s.')%txt, show=True)
|
||||||
return None
|
return None
|
||||||
return rows[0]
|
return sorted(rows, reverse=True)
|
||||||
|
|
||||||
def remove_rule(self):
|
def remove_rule(self):
|
||||||
row = self.get_selected_row(_('removal'))
|
rows = self.get_selected_row(_('removal'))
|
||||||
if row is not None:
|
if rows is not None:
|
||||||
|
for row in rows:
|
||||||
self.model.remove_rule(row)
|
self.model.remove_rule(row)
|
||||||
self.changed.emit()
|
self.changed.emit()
|
||||||
|
|
||||||
|
@ -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):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user