summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@qt.io>2019-04-16 11:11:32 +0200
committerJarek Kobus <jaroslaw.kobus@qt.io>2019-08-21 17:04:16 +0200
commit689d6dbf9f302c7379af447668ac113d4f19230d (patch)
treee36d10ffb9576ac93e8490f342897f1d88c9ebd1
parent7e234aca2783f089ba2401b84ee2226f5de153b6 (diff)
Assistant/Topic chooser: Fix PageUp/PageDown key handling
Pass the keypress event to the listwidget in case of PageUp/PageDown. Don't pass the event in case of Home/End keys, since they are handled by the lineedit itself. Fixes: QTBUG-36068 Change-Id: Ia67904d4755fbda40a3338a848a158bb7b1791de Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
-rw-r--r--src/assistant/assistant/topicchooser.cpp25
1 files changed, 8 insertions, 17 deletions
diff --git a/src/assistant/assistant/topicchooser.cpp b/src/assistant/assistant/topicchooser.cpp
index 478ca65ed..d058646c5 100644
--- a/src/assistant/assistant/topicchooser.cpp
+++ b/src/assistant/assistant/topicchooser.cpp
@@ -120,23 +120,14 @@ bool TopicChooser::eventFilter(QObject *object, QEvent *event)
{
TRACE_OBJ
if (object == ui.lineEdit && event->type() == QEvent::KeyPress) {
- QModelIndex idx = ui.listWidget->currentIndex();
- switch ((static_cast<QKeyEvent*>(event)->key())) {
- case Qt::Key_Up:
- idx = m_filterModel->index(idx.row() - 1, idx.column(),
- idx.parent());
- if (idx.isValid())
- ui.listWidget->setCurrentIndex(idx);
- break;
-
- case Qt::Key_Down:
- idx = m_filterModel->index(idx.row() + 1, idx.column(),
- idx.parent());
- if (idx.isValid())
- ui.listWidget->setCurrentIndex(idx);
- break;
-
- default: ;
+ QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
+ switch (keyEvent->key()) {
+ case Qt::Key_Up:
+ case Qt::Key_Down:
+ case Qt::Key_PageUp:
+ case Qt::Key_PageDown:
+ QCoreApplication::sendEvent(ui.listWidget, event);
+ break;
}
} else if (ui.lineEdit && event->type() == QEvent::FocusIn
&& static_cast<QFocusEvent *>(event)->reason() != Qt::MouseFocusReason) {