Skip to content

Commit a880718

Browse files
committed
2 parents a41c4f6 + 4c31bef commit a880718

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

src/calibre/gui2/dialogs/template_dialog.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -612,6 +612,8 @@ def __init__(self, parent, text, mi=None, fm=None, color_field=None,
612612
self.documentation.setOpenLinks(False)
613613
self.documentation.anchorClicked.connect(self.url_clicked)
614614
self.source_code.setReadOnly(True)
615+
self.source_code.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu)
616+
self.source_code.customContextMenuRequested.connect(self.show_code_context_menu)
615617
self.doc_button.clicked.connect(self.open_documentation_viewer)
616618
self.general_info_button.clicked.connect(self.open_general_info_dialog)
617619

@@ -822,6 +824,24 @@ def set_waiting_message(self):
822824
self.template_value.cellWidget(0, 2).setText(
823825
_("*** Breakpoints are enabled. Waiting for the 'Go' button to be pressed"))
824826

827+
def show_code_context_menu(self, point):
828+
m = self.source_code.createStandardContextMenu()
829+
name = self.current_function_name
830+
if (name and self.all_functions[name].object_type in
831+
(StoredObjectType.StoredPythonTemplate, StoredObjectType.StoredGPMTemplate)):
832+
m.addSeparator()
833+
ca = m.addAction(_('Copy stored template source to editor'))
834+
ca.triggered.connect(self.copy_source_code_to_editor)
835+
m.exec(self.source_code.mapToGlobal(point))
836+
837+
def copy_source_code_to_editor(self):
838+
if self.textbox.toPlainText():
839+
r = question_dialog(self, _('Discard existing text?'),
840+
_('The editor contains text. Do you want to overwrite that text?'))
841+
if not r:
842+
return
843+
self.textbox.setPlainText(self.source_code.toPlainText())
844+
825845
def show_context_menu(self, point):
826846
m = self.textbox.createStandardContextMenu()
827847
m.addSeparator()

0 commit comments

Comments
 (0)