diff options
author | Alexander Akulich <akulichalexander@gmail.com> | 2018-03-12 22:26:49 +0300 |
---|---|---|
committer | Alexandr Akulich <akulichalexander@gmail.com> | 2018-04-03 07:09:17 +0000 |
commit | f117568f33de7c0592c16d40932c1df8c2dd815b (patch) | |
tree | 8e1218fc5528db03ce359aebbc7c3881db4b7283 | |
parent | a0c7d5a154137b6bbf017adad331ea4811625d32 (diff) | |
download | qttools-f117568f33de7c0592c16d40932c1df8c2dd815b.tar.gz |
qdbusviewer: Focus on service tree view on service list return pressed
Change-Id: I901fb3da48fe77d7cc3edc7bad4f0f9033f2c85a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
-rw-r--r-- | src/qdbus/qdbusviewer/qdbusviewer.cpp | 17 | ||||
-rw-r--r-- | src/qdbus/qdbusviewer/qdbusviewer.h | 1 |
2 files changed, 18 insertions, 0 deletions
diff --git a/src/qdbus/qdbusviewer/qdbusviewer.cpp b/src/qdbus/qdbusviewer/qdbusviewer.cpp index c96df0730..806cbc8ae 100644 --- a/src/qdbus/qdbusviewer/qdbusviewer.cpp +++ b/src/qdbus/qdbusviewer/qdbusviewer.cpp @@ -36,6 +36,7 @@ #include <QtCore/QStringListModel> #include <QtCore/QMetaProperty> #include <QtCore/QSettings> +#include <QtGui/QKeyEvent> #include <QtWidgets/QLineEdit> #include <QtWidgets/QAction> #include <QtWidgets/QShortcut> @@ -87,6 +88,7 @@ QDBusViewer::QDBusViewer(const QDBusConnection &connection, QWidget *parent) : servicesProxyModel->setFilterCaseSensitivity(Qt::CaseInsensitive); servicesView = new QTableView(this); + servicesView->installEventFilter(this); servicesView->setModel(servicesProxyModel); // Make services grid view behave like a list view with headers servicesView->verticalHeader()->hide(); @@ -176,6 +178,21 @@ void QDBusViewer::showEvent(QShowEvent *) serviceFilterLine->setFocus(); } +bool QDBusViewer::eventFilter(QObject *obj, QEvent *event) +{ + if (obj == servicesView) { + if (event->type() == QEvent::KeyPress) { + QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event); + if (keyEvent->modifiers() == Qt::NoModifier) { + if (keyEvent->key() == Qt::Key_Enter || keyEvent->key() == Qt::Key_Return) { + tree->setFocus(); + } + } + } + } + return false; +} + void QDBusViewer::logError(const QString &msg) { log->append(QLatin1String("<font color=\"red\">Error: </font>") + msg.toHtmlEscaped() + QLatin1String("<br>")); diff --git a/src/qdbus/qdbusviewer/qdbusviewer.h b/src/qdbus/qdbusviewer/qdbusviewer.h index 4ca9c7cbb..34002f8ff 100644 --- a/src/qdbus/qdbusviewer/qdbusviewer.h +++ b/src/qdbus/qdbusviewer/qdbusviewer.h @@ -87,6 +87,7 @@ private slots: private: void logMessage(const QString &msg); void showEvent(QShowEvent *) override; + bool eventFilter(QObject *obj, QEvent *event) override; QDBusConnection c; QString currentService; |