summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Akulich <akulichalexander@gmail.com>2018-03-12 22:26:49 +0300
committerAlexandr Akulich <akulichalexander@gmail.com>2018-04-03 07:09:17 +0000
commitf117568f33de7c0592c16d40932c1df8c2dd815b (patch)
tree8e1218fc5528db03ce359aebbc7c3881db4b7283
parenta0c7d5a154137b6bbf017adad331ea4811625d32 (diff)
downloadqttools-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.cpp17
-rw-r--r--src/qdbus/qdbusviewer/qdbusviewer.h1
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;