From b6f0ff41bf654e1a78a8f8162f8f13ba53e89e67 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 9 Jun 2022 10:14:55 +0530 Subject: [PATCH] Switch focus to results view when a search starts --- src/calibre/gui2/fts/search.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/calibre/gui2/fts/search.py b/src/calibre/gui2/fts/search.py index 98ade9af9c..6892ae8313 100644 --- a/src/calibre/gui2/fts/search.py +++ b/src/calibre/gui2/fts/search.py @@ -236,7 +236,7 @@ class ResultsModel(QAbstractItemModel): if item is None: return 0 if isinstance(item, Results): - return Qt.ItemFlag.ItemIsEnabled + return Qt.ItemFlag.ItemIsEnabled | Qt.ItemFlag.ItemIsSelectable return Qt.ItemFlag.ItemIsSelectable | Qt.ItemFlag.ItemIsEnabled | Qt.ItemFlag.ItemNeverHasChildren def data_for_book(self, item, role): @@ -265,12 +265,16 @@ class ResultsView(QTreeView): self.m = ResultsModel(self) self.m.search_complete.connect(self.search_complete) self.m.search_started.connect(self.search_started) + self.m.search_started.connect(self.focus_self) self.m.query_failed.connect(self.query_failed, type=Qt.ConnectionType.QueuedConnection) self.m.matches_found.connect(self.matches_found) self.setModel(self.m) self.delegate = SearchDelegate(self) self.setItemDelegate(self.delegate) + def focus_self(self): + self.setFocus(Qt.FocusReason.OtherFocusReason) + def query_failed(self, query, err_msg): error_dialog(self, _('Invalid search query'), _( 'The search query: {query} was not understood. See here for details on the'