From fa5f6d12202658d1cbfd2ae2cb79a3acaae570c3 Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Tue, 26 Aug 2014 11:19:05 +0200 Subject: [PATCH] Change the "emblem" preference stuff so that the template editor does not show the icon type fields. --- src/calibre/gui2/dialogs/template_dialog.py | 32 ++++++++++++++------- src/calibre/gui2/dialogs/template_dialog.ui | 2 +- src/calibre/gui2/preferences/coloring.py | 14 +++++++-- 3 files changed, 34 insertions(+), 14 deletions(-) diff --git a/src/calibre/gui2/dialogs/template_dialog.py b/src/calibre/gui2/dialogs/template_dialog.py index 235b98e727..ddf744382b 100644 --- a/src/calibre/gui2/dialogs/template_dialog.py +++ b/src/calibre/gui2/dialogs/template_dialog.py @@ -202,13 +202,14 @@ class TemplateHighlighter(QSyntaxHighlighter): class TemplateDialog(QDialog, Ui_TemplateDialog): def __init__(self, parent, text, mi=None, fm=None, color_field=None, - icon_field_key=None, icon_rule_kind=None): + icon_field_key=None, icon_rule_kind=None, doing_emblem=False): QDialog.__init__(self, parent) Ui_TemplateDialog.__init__(self) self.setupUi(self) self.coloring = color_field is not None self.iconing = icon_field_key is not None + self.embleming = doing_emblem cols = [] if fm is not None: @@ -229,8 +230,14 @@ class TemplateDialog(QDialog, Ui_TemplateDialog): for n1, k1 in cols: self.colored_field.addItem(n1, k1) self.colored_field.setCurrentIndex(self.colored_field.findData(color_field)) - elif self.iconing: + elif self.iconing or self.embleming: self.icon_layout.setVisible(True) + if self.embleming: + self.icon_kind_label.setVisible(False) + self.icon_kind.setVisible(False) + self.icon_chooser_label.setVisible(False) + self.icon_field.setVisible(False) + for n1, k1 in cols: self.icon_field.addItem(n1, k1) self.icon_file_names = [] @@ -244,15 +251,16 @@ class TemplateDialog(QDialog, Ui_TemplateDialog): self.icon_file_names.sort(key=sort_key) self.update_filename_box() - dex = 0 - from calibre.gui2.preferences.coloring import icon_rule_kinds - for i,tup in enumerate(icon_rule_kinds): - txt,val = tup - self.icon_kind.addItem(txt, userData=(val)) - if val == icon_rule_kind: - dex = i - self.icon_kind.setCurrentIndex(dex) - self.icon_field.setCurrentIndex(self.icon_field.findData(icon_field_key)) + if self.iconing: + dex = 0 + from calibre.gui2.preferences.coloring import icon_rule_kinds + for i,tup in enumerate(icon_rule_kinds): + txt,val = tup + self.icon_kind.addItem(txt, userData=(val)) + if val == icon_rule_kind: + dex = i + self.icon_kind.setCurrentIndex(dex) + self.icon_field.setCurrentIndex(self.icon_field.findData(icon_field_key)) if mi: self.mi = mi @@ -433,6 +441,8 @@ class TemplateDialog(QDialog, Ui_TemplateDialog): unicode(self.icon_field.itemData( self.icon_field.currentIndex()) or ''), txt) + elif self.embleming: + self.rule = ('icon', 'title', txt) else: self.rule = ('', txt) QDialog.accept(self) diff --git a/src/calibre/gui2/dialogs/template_dialog.ui b/src/calibre/gui2/dialogs/template_dialog.ui index 26d29e4cfe..7364af8fdd 100644 --- a/src/calibre/gui2/dialogs/template_dialog.ui +++ b/src/calibre/gui2/dialogs/template_dialog.ui @@ -71,7 +71,7 @@ - + Kind: diff --git a/src/calibre/gui2/preferences/coloring.py b/src/calibre/gui2/preferences/coloring.py index d480f9b04b..f8844dee96 100644 --- a/src/calibre/gui2/preferences/coloring.py +++ b/src/calibre/gui2/preferences/coloring.py @@ -683,7 +683,7 @@ class RulesModel(QAbstractListModel): # {{{ rule = template self.rules.append(('color', col, rule)) else: - self.rule_kind = 'icon' + self.rule_kind = 'icon' if pref_name == 'column_icon_rules' else 'emblem' rules = list(prefs[pref_name]) self.rules = [] for kind, col, template in rules: @@ -772,6 +772,11 @@ class RulesModel(QAbstractListModel): # {{{

Advanced Rule for column %(col)s:

%(rule)s
''')%dict(col=col, rule=prepare_string_for_xml(rule)) + elif self.rule_kind == 'emblem': + return _(''' +

Advanced Rule: +

%(rule)s
+ ''')%dict(rule=prepare_string_for_xml(rule)) else: return _('''

Advanced Rule: set %(typ)s for column %(col)s: @@ -946,7 +951,10 @@ class EditRules(QWidget): # {{{ self.rules_view.scrollTo(idx) self.changed.emit() else: - td = TemplateDialog(self, '', mi=self.mi, fm=self.fm, icon_field_key='') + if self.pref_name == 'cover_grid_icon_rules': + td = TemplateDialog(self, '', mi=self.mi, fm=self.fm, doing_emblem=True) + else: + td = TemplateDialog(self, '', mi=self.mi, fm=self.fm, icon_field_key='') if td.exec_() == td.Accepted: print(td.rule) typ, col, r = td.rule @@ -965,6 +973,8 @@ class EditRules(QWidget): # {{{ d.apply_rule(kind, col, rule) elif self.pref_name == 'column_color_rules': d = TemplateDialog(self, rule, mi=self.mi, fm=self.fm, color_field=col) + elif self.pref_name == 'cover_grid_icon_rules': + d = TemplateDialog(self, rule, mi=self.mi, fm=self.fm, doing_emblem=True) else: d = TemplateDialog(self, rule, mi=self.mi, fm=self.fm, icon_field_key=col, icon_rule_kind=kind)