Tag browser: Fix position not bing preserved when deleting books. Fixes #1740387 [[Enhancement] Working with lists](https://bugs.launchpad.net/calibre/+bug/1740387)

This commit is contained in:
Kovid Goyal 2018-01-04 11:19:37 +05:30
parent b40d65c578
commit 19638bffd1
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
2 changed files with 7 additions and 8 deletions

View File

@ -73,8 +73,7 @@ class MultiDeleter(QObject): # {{{
self.pd = None
self.model.db.commit()
self.model.db.clean()
self.model.books_deleted()
self.gui.tags_view.recount()
self.model.books_deleted() # calls recount on the tag browser
self.callback(self.deleted_ids)
if self.failures:
msg = ['==> '+x[1]+'\n'+x[2] for x in self.failures]
@ -182,14 +181,14 @@ class DeleteAction(InterfaceAction):
self.gui.library_view.model().refresh_ids([book_id])
self.gui.library_view.model().current_changed(self.gui.library_view.currentIndex(),
self.gui.library_view.currentIndex())
self.gui.tags_view.recount()
self.gui.tags_view.recount_with_position_based_index()
def restore_format(self, book_id, original_fmt):
self.gui.current_db.restore_original_format(book_id, original_fmt)
self.gui.library_view.model().refresh_ids([book_id])
self.gui.library_view.model().current_changed(self.gui.library_view.currentIndex(),
self.gui.library_view.currentIndex())
self.gui.tags_view.recount()
self.gui.tags_view.recount_with_position_based_index()
def delete_selected_formats(self, *args):
ids = self._get_selected_ids()
@ -205,7 +204,7 @@ class DeleteAction(InterfaceAction):
m.current_changed(self.gui.library_view.currentIndex(),
self.gui.library_view.currentIndex())
if ids:
self.gui.tags_view.recount()
self.gui.tags_view.recount_with_position_based_index()
def delete_all_but_selected_formats(self, *args):
ids = self._get_selected_ids()
@ -235,7 +234,7 @@ class DeleteAction(InterfaceAction):
m.current_changed(self.gui.library_view.currentIndex(),
self.gui.library_view.currentIndex())
if ids:
self.gui.tags_view.recount()
self.gui.tags_view.recount_with_position_based_index()
def delete_all_formats(self, *args):
ids = self._get_selected_ids()
@ -258,7 +257,7 @@ class DeleteAction(InterfaceAction):
self.gui.library_view.model().current_changed(self.gui.library_view.currentIndex(),
self.gui.library_view.currentIndex())
if ids:
self.gui.tags_view.recount()
self.gui.tags_view.recount_with_position_based_index()
def remove_matching_books_from_device(self, *args):
if not self.gui.device_manager.is_device_present:

View File

@ -69,7 +69,7 @@ class TagBrowserMixin(object): # {{{
m.addAction(name, partial(self.do_tags_list_edit, None, cat))
def init_tag_browser_mixin(self, db):
self.library_view.model().count_changed_signal.connect(self.tags_view.recount)
self.library_view.model().count_changed_signal.connect(self.tags_view.recount_with_position_based_index)
self.tags_view.set_database(db, self.alter_tb)
self.tags_view.tags_marked.connect(self.search.set_search_string)
self.tags_view.tags_list_edit.connect(self.do_tags_list_edit)