mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Restore selections and update book details after using manage authors.
This commit is contained in:
parent
06a7d3a383
commit
24f25f5f2a
@ -290,21 +290,27 @@ class TagBrowserMixin(object): # {{{
|
|||||||
self.library_view.select_rows(ids)
|
self.library_view.select_rows(ids)
|
||||||
# refreshing the tags view happens at the emit()/call() site
|
# refreshing the tags view happens at the emit()/call() site
|
||||||
|
|
||||||
def do_author_sort_edit(self, parent, id, select_sort=True, select_link=False):
|
def do_author_sort_edit(self, parent, id_, select_sort=True, select_link=False):
|
||||||
'''
|
'''
|
||||||
Open the manage authors dialog
|
Open the manage authors dialog
|
||||||
'''
|
'''
|
||||||
|
|
||||||
db = self.library_view.model().db
|
db = self.library_view.model().db
|
||||||
editor = EditAuthorsDialog(parent, db, id, select_sort, select_link)
|
editor = EditAuthorsDialog(parent, db, id_, select_sort, select_link)
|
||||||
d = editor.exec_()
|
d = editor.exec_()
|
||||||
if d:
|
if d:
|
||||||
for (id, old_author, new_author, new_sort, new_link) in editor.result:
|
# Save and restore the current selections. Note that some changes
|
||||||
|
# will cause sort orders to change, so don't bother with attempting
|
||||||
|
# to restore the position. Restoring the state has the side effect
|
||||||
|
# of refreshing book details.
|
||||||
|
with self.library_view.preserve_state(preserve_hpos=False, preserve_vpos=False):
|
||||||
|
for (id2, old_author, new_author, new_sort, new_link) in editor.result:
|
||||||
if old_author != new_author:
|
if old_author != new_author:
|
||||||
# The id might change if the new author already exists
|
# The id might change if the new author already exists
|
||||||
id = db.rename_author(id, new_author)
|
id2 = db.rename_author(id2, new_author)
|
||||||
db.set_sort_field_for_author(id, unicode(new_sort),
|
db.set_sort_field_for_author(id2, unicode(new_sort),
|
||||||
commit=False, notify=False)
|
commit=False, notify=False)
|
||||||
db.set_link_field_for_author(id, unicode(new_link),
|
db.set_link_field_for_author(id2, unicode(new_link),
|
||||||
commit=False, notify=False)
|
commit=False, notify=False)
|
||||||
db.commit()
|
db.commit()
|
||||||
self.library_view.model().refresh()
|
self.library_view.model().refresh()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user