From 9c68e1d14624d6fc3c5eb7f331cbfad79d4a18ca Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 13 Jun 2017 08:33:13 +0530 Subject: [PATCH] Fix up/down arrow keys not working in Find in Tag browser box --- src/calibre/gui2/tag_browser/ui.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/calibre/gui2/tag_browser/ui.py b/src/calibre/gui2/tag_browser/ui.py index b25c45e7a1..5443f41a10 100644 --- a/src/calibre/gui2/tag_browser/ui.py +++ b/src/calibre/gui2/tag_browser/ui.py @@ -341,6 +341,22 @@ class TagBrowserMixin(object): # {{{ # }}} +class FindBox(HistoryLineEdit): # {{{ + + def keyPressEvent(self, event): + k = event.key() + if k not in (Qt.Key_Up, Qt.Key_Down): + return HistoryLineEdit.keyPressEvent(self, event) + self.blockSignals(True) + if k == Qt.Key_Down and self.currentIndex() == 0 and not self.lineEdit().text(): + self.setCurrentIndex(1), self.setCurrentIndex(0) + event.accept() + else: + HistoryLineEdit.keyPressEvent(self, event) + self.blockSignals(False) +# }}} + + class TagBrowserBar(QWidget): # {{{ def __init__(self, parent): @@ -365,7 +381,7 @@ class TagBrowserBar(QWidget): # {{{ self.label = la = QLabel(self) la.setText(_('Tag browser')) - self.item_search = HistoryLineEdit(parent) + self.item_search = FindBox(parent) self.item_search.setMinimumContentsLength(5) self.item_search.setSizeAdjustPolicy(self.item_search.AdjustToMinimumContentsLengthWithIcon) self.item_search.initialize('tag_browser_search')