From 230ef564eef44b81bc004f1cd21016c3c012adc5 Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Tue, 25 Jun 2013 08:20:07 +0200 Subject: [PATCH] Fix bug #1193763 - Save to device template generates exception for custom column names. --- src/calibre/gui2/dialogs/template_dialog.py | 2 ++ src/calibre/gui2/preferences/save_template.py | 5 +++-- src/calibre/gui2/preferences/saving.py | 3 ++- src/calibre/gui2/preferences/sending.py | 3 ++- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/calibre/gui2/dialogs/template_dialog.py b/src/calibre/gui2/dialogs/template_dialog.py index 2bafc2812a..3db6e37eb0 100644 --- a/src/calibre/gui2/dialogs/template_dialog.py +++ b/src/calibre/gui2/dialogs/template_dialog.py @@ -262,6 +262,8 @@ class TemplateDialog(QDialog, Ui_TemplateDialog): self.mi.rating = 4.0 self.mi.tags = [_('Tag 1'), _('Tag 2')] self.mi.languages = ['eng'] + if fm is not None: + self.mi.set_all_user_metadata(fm.custom_field_metadata()) # Remove help icon on title bar icon = self.windowIcon() diff --git a/src/calibre/gui2/preferences/save_template.py b/src/calibre/gui2/preferences/save_template.py index 627c4c7fa9..145e014800 100644 --- a/src/calibre/gui2/preferences/save_template.py +++ b/src/calibre/gui2/preferences/save_template.py @@ -24,7 +24,7 @@ class SaveTemplate(QWidget, Ui_Form): Ui_Form.__init__(self) self.setupUi(self) - def initialize(self, name, default, help): + def initialize(self, name, default, help, field_metadata): variables = sorted(FORMAT_ARG_DESCS.keys()) rows = [] for var in variables: @@ -36,6 +36,7 @@ class SaveTemplate(QWidget, Ui_Form): table = u'%s
'%(u'\n'.join(rows)) self.template_variables.setText(table) + self.field_metadata = field_metadata self.opt_template.initialize(name+'_template_history', default, help) self.opt_template.editTextChanged.connect(self.changed) @@ -44,7 +45,7 @@ class SaveTemplate(QWidget, Ui_Form): self.open_editor.clicked.connect(self.do_open_editor) def do_open_editor(self): - t = TemplateDialog(self, self.opt_template.text()) + t = TemplateDialog(self, self.opt_template.text(), fm=self.field_metadata) t.setWindowTitle(_('Edit template')) if t.exec_(): self.opt_template.set_value(t.rule[1]) diff --git a/src/calibre/gui2/preferences/saving.py b/src/calibre/gui2/preferences/saving.py index bd5fcbb078..e1a235803d 100644 --- a/src/calibre/gui2/preferences/saving.py +++ b/src/calibre/gui2/preferences/saving.py @@ -34,7 +34,8 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): ConfigWidgetBase.initialize(self) self.save_template.blockSignals(True) self.save_template.initialize('save_to_disk', self.proxy['template'], - self.proxy.help('template')) + self.proxy.help('template'), + self.gui.library_view.model().db.field_metadata) self.save_template.blockSignals(False) def restore_defaults(self): diff --git a/src/calibre/gui2/preferences/sending.py b/src/calibre/gui2/preferences/sending.py index 3fce5cb072..bc46ac500b 100644 --- a/src/calibre/gui2/preferences/sending.py +++ b/src/calibre/gui2/preferences/sending.py @@ -44,7 +44,8 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): ConfigWidgetBase.initialize(self) self.send_template.blockSignals(True) self.send_template.initialize('send_to_device', self.proxy['send_template'], - self.proxy.help('send_template')) + self.proxy.help('send_template'), + self.gui.library_view.model().db.field_metadata) self.send_template.blockSignals(False) def restore_defaults(self):