diff --git a/src/calibre/gui2/actions/show_template_tester.py b/src/calibre/gui2/actions/show_template_tester.py index 85cdc25403..e55bd3aef6 100644 --- a/src/calibre/gui2/actions/show_template_tester.py +++ b/src/calibre/gui2/actions/show_template_tester.py @@ -18,6 +18,8 @@ class ShowTemplateTesterAction(InterfaceAction): action_type = 'current' def genesis(self): + self.previous_text = _('Enter a template to test using data from the selected book') + self.first_time = True self.qaction.triggered.connect(self.show_template_editor) def show_template_editor(self, *args): @@ -38,8 +40,10 @@ class ShowTemplateTesterAction(InterfaceAction): index = rows[0] if index.isValid(): db = view.model().db - t = TemplateDialog(self.gui, - _('Enter a template to test using data from the selected book'), - mi=db.get_metadata(index.row(), index_is_id=False, get_cover=False)) + t = TemplateDialog(self.gui, self.previous_text, + mi=db.get_metadata(index.row(), index_is_id=False, get_cover=False), + text_is_placeholder=self.first_time) t.setWindowTitle(_('Template tester')) - t.exec_() \ No newline at end of file + if t.exec_() == t.Accepted: + self.previous_text = t.rule[1] + self.first_time = False \ No newline at end of file diff --git a/src/calibre/gui2/dialogs/template_dialog.py b/src/calibre/gui2/dialogs/template_dialog.py index ddf744382b..59d29c0b16 100644 --- a/src/calibre/gui2/dialogs/template_dialog.py +++ b/src/calibre/gui2/dialogs/template_dialog.py @@ -202,7 +202,8 @@ 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, doing_emblem=False): + icon_field_key=None, icon_rule_kind=None, doing_emblem=False, + text_is_placeholder=False): QDialog.__init__(self, parent) Ui_TemplateDialog.__init__(self) self.setupUi(self) @@ -299,7 +300,10 @@ class TemplateDialog(QDialog, Ui_TemplateDialog): self.source_code.setReadOnly(True) if text is not None: - self.textbox.setPlainText(text) + if text_is_placeholder: + self.textbox.setPlaceholderText(text) + else: + self.textbox.setPlainText(text) self.buttonBox.button(QDialogButtonBox.Ok).setText(_('&OK')) self.buttonBox.button(QDialogButtonBox.Cancel).setText(_('&Cancel')) self.color_copy_button.clicked.connect(self.color_to_clipboard)