Duplicates dialog: Sort sub-list of matching books already in calibre by author for easier inspection. Fixes #1851386 [[enhancement] sort authors per title in duplicated window after import](https://bugs.launchpad.net/calibre/+bug/1851386)

This commit is contained in:
Kovid Goyal 2019-11-06 07:10:46 +05:30
parent f6a511e291
commit bcc9f16df2
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -14,6 +14,7 @@ from PyQt5.Qt import (
from calibre.gui2 import gprefs
from calibre.ebooks.metadata import authors_to_string
from calibre.utils.icu import primary_sort_key
from polyglot.builtins import unicode_type, range
@ -119,12 +120,18 @@ class DuplicatesQuestion(QDialog):
add_child(_('Already in calibre:')).setData(0, Qt.FontRole, itf)
author_text = {}
for book_id in matching_books:
aut = [a.replace('|', ',') for a in (db.authors(book_id,
index_is_id=True) or '').split(',')]
author_text[book_id] = authors_to_string([a.replace('|', ',') for a in (db.authors(book_id,
index_is_id=True) or '').split(',')])
def key(x):
return primary_sort_key(unicode_type(author_text[x]))
for book_id in sorted(matching_books, key=key):
add_child(ta%dict(
title=db.title(book_id, index_is_id=True),
author=authors_to_string(aut),
author=author_text[book_id],
formats=db.formats(book_id, index_is_id=True,
verify_formats=False)))
add_child('')