diff --git a/src/calibre/gui2/add.py b/src/calibre/gui2/add.py index d48e962f90..234c72abf4 100644 --- a/src/calibre/gui2/add.py +++ b/src/calibre/gui2/add.py @@ -11,7 +11,7 @@ from calibre.gui2.dialogs.progress import ProgressDialog from calibre.gui2 import (question_dialog, error_dialog, info_dialog, gprefs, warning_dialog, available_width) from calibre.ebooks.metadata.opf2 import OPF -from calibre.ebooks.metadata import MetaInformation +from calibre.ebooks.metadata import MetaInformation, authors_to_string from calibre.constants import preferred_encoding, filesystem_encoding, DEBUG from calibre.utils.config import prefs from calibre import prints, force_unicode, as_unicode @@ -382,12 +382,25 @@ class Adder(QObject): # {{{ if not duplicates: return self.duplicates_processed() self.pd.hide() - files = [_('%(title)s by %(author)s')%dict(title=x[0].title, - author=x[0].format_field('authors')[1]) for x in duplicates] + duplicate_message = [] + for x in duplicates: + duplicate_message.append(_('Already in calibre:')) + matching_books = self.db.books_with_same_title(x[0]) + for book_id in matching_books: + aut = [a.replace('|', ',') for a in (self.db.authors(book_id, + index_is_id=True) or '').split(',')] + duplicate_message.append('\t'+ _('%(title)s by %(author)s')% + dict(title=self.db.title(book_id, index_is_id=True), + author=authors_to_string(aut))) + duplicate_message.append(_('You are trying to add:')) + duplicate_message.append('\t'+_('%(title)s by %(author)s')% + dict(title=x[0].title, + author=x[0].format_field('authors')[1])) + duplicate_message.append('') if question_dialog(self._parent, _('Duplicates found!'), _('Books with the same title as the following already ' - 'exist in the database. Add them anyway?'), - '\n'.join(files)): + 'exist in calibre. Add them anyway?'), + '\n'.join(duplicate_message)): pd = QProgressDialog(_('Adding duplicates...'), '', 0, len(duplicates), self._parent) pd.setCancelButton(None)