mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Automatic adding: When checking for duplicates is enabled, use the same duplicates found dialog as is used during manual adding. Fixes #1160914 ([Enhancement] Auto-adding: 'Check for duplicates' actions)
This commit is contained in:
parent
534ea3b390
commit
bfb434fb30
@ -15,7 +15,8 @@ from PyQt4.Qt import (QFileSystemWatcher, QObject, Qt, pyqtSignal, QTimer)
|
|||||||
from calibre import prints
|
from calibre import prints
|
||||||
from calibre.ptempfile import PersistentTemporaryDirectory
|
from calibre.ptempfile import PersistentTemporaryDirectory
|
||||||
from calibre.ebooks import BOOK_EXTENSIONS
|
from calibre.ebooks import BOOK_EXTENSIONS
|
||||||
from calibre.gui2 import question_dialog, gprefs
|
from calibre.gui2 import gprefs
|
||||||
|
from calibre.gui2.dialogs.duplicates import DuplicatesQuestion
|
||||||
|
|
||||||
AUTO_ADDED = frozenset(BOOK_EXTENSIONS) - {'pdr', 'mbp', 'tan'}
|
AUTO_ADDED = frozenset(BOOK_EXTENSIONS) - {'pdr', 'mbp', 'tan'}
|
||||||
|
|
||||||
@ -218,17 +219,20 @@ class AutoAdder(QObject):
|
|||||||
paths.extend(p)
|
paths.extend(p)
|
||||||
formats.extend(f)
|
formats.extend(f)
|
||||||
metadata.extend(mis)
|
metadata.extend(mis)
|
||||||
files = [_('%(title)s by %(author)s')%dict(title=mi.title,
|
dups = [(mi, mi.cover, [p]) for mi, p in zip(metadata, paths)]
|
||||||
author=mi.format_field('authors')[1]) for mi in metadata]
|
d = DuplicatesQuestion(m.db, dups, parent=gui)
|
||||||
if question_dialog(self.parent(), _('Duplicates found!'),
|
dups = tuple(d.duplicates)
|
||||||
_('Books with the same title as the following already '
|
if dups:
|
||||||
'exist in the database. Add them anyway?'),
|
paths, formats, metadata = [], [], []
|
||||||
'\n'.join(files)):
|
for mi, cover, book_paths in dups:
|
||||||
dups, ids = m.add_books(paths, formats, metadata,
|
paths.extend(book_paths)
|
||||||
add_duplicates=True, return_ids=True)
|
formats.extend([p.rpartition('.')[-1] for p in book_paths])
|
||||||
added_ids |= set(ids)
|
metadata.extend([mi for i in book_paths])
|
||||||
num = len(ids)
|
ids = m.add_books(paths, formats, metadata,
|
||||||
count += num
|
add_duplicates=True, return_ids=True)[1]
|
||||||
|
added_ids |= set(ids)
|
||||||
|
num = len(ids)
|
||||||
|
count += num
|
||||||
|
|
||||||
for tdir in data.itervalues():
|
for tdir in data.itervalues():
|
||||||
try:
|
try:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user