Fixes #1923504 [Enhancement request Edit column dialog: Load template currently saved in tester](https://bugs.launchpad.net/calibre/+bug/1923504)
This commit is contained in:
Kovid Goyal 2021-04-13 17:59:57 +05:30
commit fafcf3514e
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
2 changed files with 18 additions and 3 deletions

View File

@ -25,6 +25,9 @@ class ShowTemplateTesterAction(InterfaceAction):
self.first_time = True self.first_time = True
self.qaction.triggered.connect(self.show_template_editor) self.qaction.triggered.connect(self.show_template_editor)
def last_template_text(self):
return self.previous_text
def show_template_editor(self, *args): def show_template_editor(self, *args):
view = self.gui.current_view() view = self.gui.current_view()
if view is not self.gui.library_view: if view is not self.gui.library_view:

View File

@ -386,7 +386,7 @@ class TemplateDialog(QDialog, Ui_TemplateDialog):
self.remove_all_button.clicked.connect(self.remove_all_button_pressed) self.remove_all_button.clicked.connect(self.remove_all_button_pressed)
self.set_all_button.clicked.connect(self.set_all_button_pressed) self.set_all_button.clicked.connect(self.set_all_button_pressed)
self.load_button.clicked.connect(self.load_template) self.load_button.clicked.connect(self.load_template_from_file)
self.save_button.clicked.connect(self.save_template) self.save_button.clicked.connect(self.save_template)
self.textbox.setWordWrapMode(QTextOption.WordWrap) self.textbox.setWordWrapMode(QTextOption.WordWrap)
@ -475,13 +475,25 @@ class TemplateDialog(QDialog, Ui_TemplateDialog):
else QTextOption.WordWrap) else QTextOption.WordWrap)
ca.triggered.connect(lambda: self.textbox.setWordWrapMode(to_what)) ca.triggered.connect(lambda: self.textbox.setWordWrapMode(to_what))
m.addSeparator() m.addSeparator()
ca = m.addAction(_('Load template from the Template tester'))
ca.triggered.connect(self.load_last_template_text)
m.addSeparator()
ca = m.addAction(_('Load template from file')) ca = m.addAction(_('Load template from file'))
ca.triggered.connect(self.load_template) ca.triggered.connect(self.load_template_from_file)
ca = m.addAction(_('Save template to file')) ca = m.addAction(_('Save template to file'))
ca.triggered.connect(self.save_template) ca.triggered.connect(self.save_template)
m.exec_(self.textbox.mapToGlobal(point)) m.exec_(self.textbox.mapToGlobal(point))
def load_template(self): def load_last_template_text(self):
from calibre.customize.ui import find_plugin
tt = find_plugin('Template Tester')
if tt and tt.actual_plugin_:
self.textbox.setPlainText(tt.actual_plugin_.last_template_text())
else:
# I don't think we can get here, but just in case ...
self.textbox.setPlainText(_('No Template tester text is available'))
def load_template_from_file(self):
filename = choose_files(self, 'template_dialog_save_templates', filename = choose_files(self, 'template_dialog_save_templates',
_('Load template from file'), _('Load template from file'),
filters=[ filters=[