From f7414c034f3a06778101460e50cb7805eca34ec7 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 10 Feb 2014 16:13:57 +0530 Subject: [PATCH] Add a copy to clipboard button for the duplicates message when copying to another library. Fixes #1278305 [The Popup for duplicate records when using "copy to library xyz" does not have a "copy to clipboard" option that would be most useful](https://bugs.launchpad.net/calibre/+bug/1278305) --- src/calibre/gui2/actions/copy_to_library.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/calibre/gui2/actions/copy_to_library.py b/src/calibre/gui2/actions/copy_to_library.py index e4c2503d29..68bb8be986 100644 --- a/src/calibre/gui2/actions/copy_to_library.py +++ b/src/calibre/gui2/actions/copy_to_library.py @@ -12,7 +12,7 @@ from contextlib import closing from collections import defaultdict from PyQt4.Qt import ( - QToolButton, QDialog, QGridLayout, QIcon, QLabel, QDialogButtonBox, + QToolButton, QDialog, QGridLayout, QIcon, QLabel, QDialogButtonBox, QApplication, QFormLayout, QCheckBox, QWidget, QScrollArea, QVBoxLayout, Qt, QListWidgetItem, QListWidget) from calibre.gui2.actions import InterfaceAction @@ -284,9 +284,16 @@ class DuplicatesQuestion(QDialog): # {{{ b.clicked.connect(self.select_all) self.n = b = bb.addButton(_('Select &none'), bb.ActionRole) b.clicked.connect(self.select_none) + self.ctc = b = bb.addButton(_('&Copy to clipboard'), bb.ActionRole) + b.clicked.connect(self.copy_to_clipboard) l.addWidget(bb) self.resize(600, 400) + def copy_to_clipboard(self): + items = [('✓' if item.checkState() == Qt.Checked else '✗') + ' ' + unicode(item.text()) + for item in self.items] + QApplication.clipboard().setText('\n'.join(items)) + def select_all(self): for i in self.items: i.setCheckState(Qt.Checked)