Advanced Rule for column %(col)s: -
%(rule)s- ''')%dict(col=col, rule=prepare_string_for_xml(rule)) + if kind == 'color': + return _(''' +
Advanced Rule for column %(col)s: +
%(rule)s+ ''')%dict(col=col, rule=prepare_string_for_xml(rule)) + else: + return _(''' +
Advanced Rule: set %(typ)s for column %(col)s: +
%(rule)s+ ''')%dict(col=col, + typ=icon_rule_kinds[0][0] + if kind == icon_rule_kinds[0][1] else icon_rule_kinds[1][0], + rule=prepare_string_for_xml(rule)) + conditions = [self.condition_to_html(c) for c in rule.conditions] trans_kind = 'not found' @@ -761,7 +771,7 @@ class EditRules(QWidget): # {{{ ' what icon to use. Click the Add Rule button below' ' to get started.
You can change an existing rule by' ' double clicking it.')) - self.add_advanced_button.setVisible(False) +# self.add_advanced_button.setVisible(False) def add_rule(self): d = RuleEditor(self.model.fm, self.pref_name) @@ -774,13 +784,23 @@ class EditRules(QWidget): # {{{ self.changed.emit() def add_advanced(self): - td = TemplateDialog(self, '', mi=self.mi, fm=self.fm, color_field='') - if td.exec_() == td.Accepted: - col, r = td.rule - if r and col: - idx = self.model.add_rule('color', col, r) - self.rules_view.scrollTo(idx) - self.changed.emit() + if self.pref_name == 'column_color_rules': + td = TemplateDialog(self, '', mi=self.mi, fm=self.fm, color_field='') + if td.exec_() == td.Accepted: + col, r = td.rule + if r and col: + idx = self.model.add_rule('color', col, r) + self.rules_view.scrollTo(idx) + self.changed.emit() + else: + td = TemplateDialog(self, '', mi=self.mi, fm=self.fm, icon_file='') + if td.exec_() == td.Accepted: + print(td.rule) + typ, col, r = td.rule + if typ and r and col: + idx = self.model.add_rule(typ, col, r) + self.rules_view.scrollTo(idx) + self.changed.emit() def edit_rule(self, index): try: @@ -790,8 +810,12 @@ class EditRules(QWidget): # {{{ if isinstance(rule, Rule): d = RuleEditor(self.model.fm, self.pref_name) d.apply_rule(kind, col, rule) - else: + elif self.pref_name == 'column_color_rules': d = TemplateDialog(self, rule, mi=self.mi, fm=self.fm, color_field=col) + else: + d = TemplateDialog(self, rule, mi=self.mi, fm=self.fm, icon_file=col, + icon_rule_kind=kind) + if d.exec_() == d.Accepted: if len(d.rule) == 2: # Convert template dialog rules to a triple d.rule = ('color', d.rule[0], d.rule[1]) diff --git a/src/calibre/library/server/browse.py b/src/calibre/library/server/browse.py index d25c34d52b..959248fdf8 100644 --- a/src/calibre/library/server/browse.py +++ b/src/calibre/library/server/browse.py @@ -749,6 +749,7 @@ class BrowseServer(object): @Endpoint(mimetype='application/json; charset=utf-8') def browse_booklist_page(self, ids=None, sort=None): + print('here') if sort == 'null': sort = None if ids is None: