From 88b73af7270f9a7708ee103058e8c600a0f7cb46 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 18 Apr 2025 07:28:55 +0530 Subject: [PATCH] Metadata review dialog: Add merge comments action --- src/calibre/gui2/metadata/diff.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/calibre/gui2/metadata/diff.py b/src/calibre/gui2/metadata/diff.py index 39ea189c10..008c38a438 100644 --- a/src/calibre/gui2/metadata/diff.py +++ b/src/calibre/gui2/metadata/diff.py @@ -508,6 +508,14 @@ class CompareSingle(QWidget): m.actions()[0].setIcon(button.icon()) m.addAction(_('Merge tags')).triggered.connect(self.merge_tags) m.actions()[1].setIcon(QIcon.ic('merge.png')) + elif field == 'comments': + button.m = m = QMenu(button) + button.setMenu(m) + button.setPopupMode(QToolButton.ToolButtonPopupMode.DelayedPopup) + m.addAction(button.toolTip()).triggered.connect(button.click) + m.actions()[0].setIcon(button.icon()) + m.addAction(_('Merge Comments')).triggered.connect(self.merge_comments) + m.actions()[1].setIcon(QIcon.ic('merge.png')) if cls is CoverView: neww.zoom_requested.connect(self.zoom_requested) @@ -560,6 +568,12 @@ class CompareSingle(QWidget): if extra: neww.value = val + extra + def merge_comments(self): + widgets = self.widgets['comments'] + neww, oldw = widgets[:2] + val = oldw.current_val + neww.current_val = (neww.current_val or '') + '\n\n' + (val or '') + def __call__(self, oldmi, newmi): self.current_mi = newmi self.initial_vals = {}