diff options
author | Noah Davis <noahadvs@gmail.com> | 2022-02-09 10:32:53 -0500 |
---|---|---|
committer | Noah Davis <noahadvs@gmail.com> | 2022-03-09 19:13:41 -0500 |
commit | 64ffe0aacb6bba4875a9ccdeea96b5858c7d01e6 (patch) | |
tree | e8dec0ddae7d27915f32821ac4b07bd3a15ea146 /tests/auto/widgets/widgets/qgroupbox | |
parent | 2de667a6ff1d4b0706a9b6063d6b62a416fb50f1 (diff) |
Widgets: use QPlatformTheme::ButtonPressKeys for pressing buttons
QComboBox is included because it works like a button when it is not
editable. QGroupBox is included because it has a checkbox and QCheckBox
is a subclass of QAbstractButton.
Change-Id: Iad89259314e77f78c915dce83ec601df94c88941
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Diffstat (limited to 'tests/auto/widgets/widgets/qgroupbox')
-rw-r--r-- | tests/auto/widgets/widgets/qgroupbox/CMakeLists.txt | 1 | ||||
-rw-r--r-- | tests/auto/widgets/widgets/qgroupbox/tst_qgroupbox.cpp | 18 |
2 files changed, 19 insertions, 0 deletions
diff --git a/tests/auto/widgets/widgets/qgroupbox/CMakeLists.txt b/tests/auto/widgets/widgets/qgroupbox/CMakeLists.txt index ed08cce5f2..56079857a8 100644 --- a/tests/auto/widgets/widgets/qgroupbox/CMakeLists.txt +++ b/tests/auto/widgets/widgets/qgroupbox/CMakeLists.txt @@ -9,5 +9,6 @@ qt_internal_add_test(tst_qgroupbox tst_qgroupbox.cpp PUBLIC_LIBRARIES Qt::Gui + Qt::GuiPrivate Qt::Widgets ) diff --git a/tests/auto/widgets/widgets/qgroupbox/tst_qgroupbox.cpp b/tests/auto/widgets/widgets/qgroupbox/tst_qgroupbox.cpp index c57cd619fa..127dc15575 100644 --- a/tests/auto/widgets/widgets/qgroupbox/tst_qgroupbox.cpp +++ b/tests/auto/widgets/widgets/qgroupbox/tst_qgroupbox.cpp @@ -36,6 +36,9 @@ #include <QDialog> #include <QSignalSpy> +#include <private/qguiapplication_p.h> +#include <qpa/qplatformtheme.h> + #include "qgroupbox.h" class tst_QGroupBox : public QObject @@ -70,6 +73,7 @@ private slots: void propagateFocus(); void task_QTBUG_19170_ignoreMouseReleaseEvent(); void task_QTBUG_15519_propagateMouseEvents(); + void buttonPressKeys(); private: bool checked; @@ -611,6 +615,20 @@ void tst_QGroupBox::task_QTBUG_15519_propagateMouseEvents() QCOMPARE(parent.mouseMoved, true); } +void tst_QGroupBox::buttonPressKeys() +{ + QGroupBox groupBox; + groupBox.setCheckable(true); + QSignalSpy clickedSpy(&groupBox, &QGroupBox::clicked); + const auto buttonPressKeys = QGuiApplicationPrivate::platformTheme() + ->themeHint(QPlatformTheme::ButtonPressKeys) + .value<QList<Qt::Key>>(); + for (int i = 0; i < buttonPressKeys.length(); ++i) { + QTest::keyClick(&groupBox, buttonPressKeys[i]); + QCOMPARE(clickedSpy.length(), i + 1); + } +} + void tst_QGroupBox::sendMouseMoveEvent(QWidget *widget, const QPoint &localPos) { // Send a MouseMove event without actually moving the pointer |