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'
'%(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):