From cd5425165059bb2a310f5dfba531106ed710f7d3 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 30 Jan 2018 10:06:46 +0530 Subject: [PATCH] Sync selection between split book lists --- src/calibre/gui2/library/views.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/calibre/gui2/library/views.py b/src/calibre/gui2/library/views.py index 00744e2a72..dcea80cacd 100644 --- a/src/calibre/gui2/library/views.py +++ b/src/calibre/gui2/library/views.py @@ -305,11 +305,20 @@ class BooksView(QTableView): # {{{ self.set_pin_view_visibility(gprefs['book_list_split']) self.pin_view.verticalScrollBar().valueChanged.connect(self.verticalScrollBar().setValue) self.verticalScrollBar().valueChanged.connect(self.pin_view.verticalScrollBar().setValue) + for wv in self, self.pin_view: + wv.selectionModel().currentRowChanged.connect(self.mirror_selection_between_views) + wv.selectionModel().selectionChanged.connect(self.mirror_selection_between_views) def set_pin_view_visibility(self, visible=False): self.pin_view.setVisible(visible) self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff if visible else Qt.ScrollBarAsNeeded) + def mirror_selection_between_views(self): + src = self if self.hasFocus() else self.pin_view + dest = self.pin_view if self.hasFocus() else self + dest.selectionModel().select(src.selectionModel().selection(), QItemSelectionModel.ClearAndSelect) + dest.selectionModel().setCurrentIndex(src.selectionModel().currentIndex(), QItemSelectionModel.NoUpdate) + # Column Header Context Menu {{{ def column_header_context_handler(self, action=None, column=None): if not action or not column: