This commit is contained in:
Kovid Goyal 2014-08-26 17:21:38 +05:30
commit 84ff9d957c
3 changed files with 34 additions and 14 deletions

View File

@ -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)

View File

@ -71,7 +71,7 @@
<item row="0" column="0" colspan="2">
<layout class="QHBoxLayout">
<item>
<widget class="QLabel">
<widget class="QLabel" name="icon_kind_label">
<property name="text">
<string>Kind:</string>
</property>

View File

@ -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): # {{{
<p>Advanced Rule for column <b>%(col)s</b>:
<pre>%(rule)s</pre>
''')%dict(col=col, rule=prepare_string_for_xml(rule))
elif self.rule_kind == 'emblem':
return _('''
<p>Advanced Rule:
<pre>%(rule)s</pre>
''')%dict(rule=prepare_string_for_xml(rule))
else:
return _('''
<p>Advanced Rule: set <b>%(typ)s</b> for column <b>%(col)s</b>:
@ -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)