Fix merging books in the cover grid not respecting select order

This commit is contained in:
Kovid Goyal 2018-06-12 08:14:19 +05:30
parent 743ce97c9f
commit 5b024d3393
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
3 changed files with 10 additions and 2 deletions

View File

@ -485,9 +485,9 @@ class EditMetadataAction(InterfaceAction):
Merge selected books in library. Merge selected books in library.
''' '''
from calibre.gui2.dialogs.confirm_merge import confirm_merge from calibre.gui2.dialogs.confirm_merge import confirm_merge
if self.gui.stack.currentIndex() != 0: if self.gui.current_view() is not self.gui.library_view:
return return
rows = self.gui.library_view.selectionModel().selectedRows() rows = self.gui.library_view.indices_for_merge()
if not rows or len(rows) == 0: if not rows or len(rows) == 0:
return error_dialog(self.gui, _('Cannot merge books'), return error_dialog(self.gui, _('Cannot merge books'),
_('No books selected'), show=True) _('No books selected'), show=True)

View File

@ -1017,6 +1017,9 @@ class GridView(QListView):
else: else:
return QListView.mousePressEvent(self, ev) return QListView.mousePressEvent(self, ev)
def indices_for_merge(self, resolved=True):
return self.selectionModel().selectedIndexes()
def number_of_columns(self): def number_of_columns(self):
# Number of columns currently visible in the grid # Number of columns currently visible in the grid
if self._ncols is None: if self._ncols is None:

View File

@ -948,6 +948,11 @@ class BooksView(QTableView): # {{{
return True return True
return False return False
def indices_for_merge(self, resolved=False):
if not resolved:
return self.alternate_views.current_view.indices_for_merge(resolved=True)
return self.selectionModel().selectedRows()
def scrollContentsBy(self, dx, dy): def scrollContentsBy(self, dx, dy):
# Needed as Qt bug causes headerview to not always update when scrolling # Needed as Qt bug causes headerview to not always update when scrolling
QTableView.scrollContentsBy(self, dx, dy) QTableView.scrollContentsBy(self, dx, dy)