summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/widgets/kernel')
-rw-r--r--tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
index ebdb3b83c4..191ae2c5e1 100644
--- a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
+++ b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
@@ -194,6 +194,7 @@ private slots:
void appFocusWidgetWithFocusProxyLater();
void appFocusWidgetWhenLosingFocusProxy();
void explicitTabOrderWithComplexWidget();
+ void explicitTabOrderWithSpinBox_QTBUG81097();
#if defined(Q_OS_WIN)
void activation();
#endif
@@ -2331,6 +2332,37 @@ void tst_QWidget::explicitTabOrderWithComplexWidget()
QTRY_COMPARE(QApplication::focusWidget(), lineEditOne);
}
+void tst_QWidget::explicitTabOrderWithSpinBox_QTBUG81097()
+{
+ // Check the special case of QAbstractSpinBox-like widgets, that have a
+ // child widget with a focusPolicy() set to its parent.
+ Container window;
+ auto spinBoxOne = new QDoubleSpinBox;
+ auto spinBoxTwo = new QDoubleSpinBox;
+ auto lineEdit = new QLineEdit;
+ window.box->addWidget(spinBoxOne);
+ window.box->addWidget(spinBoxTwo);
+ window.box->addWidget(lineEdit);
+ QWidget::setTabOrder(spinBoxOne, spinBoxTwo);
+ QWidget::setTabOrder(spinBoxTwo, lineEdit);
+ spinBoxOne->setFocus();
+ window.show();
+ QApplication::setActiveWindow(&window);
+ QVERIFY(QTest::qWaitForWindowActive(&window));
+ QTRY_COMPARE(QApplication::focusWidget(), spinBoxOne);
+
+ window.tab();
+ QTRY_COMPARE(QApplication::focusWidget(), spinBoxTwo);
+ window.tab();
+ QTRY_COMPARE(QApplication::focusWidget(), lineEdit);
+ window.backTab();
+ QTRY_COMPARE(QApplication::focusWidget(), spinBoxTwo);
+ window.backTab();
+ QTRY_COMPARE(QApplication::focusWidget(), spinBoxOne);
+ window.backTab();
+ QTRY_COMPARE(QApplication::focusWidget(), lineEdit);
+}
+
#if defined(Q_OS_WIN)
void tst_QWidget::activation()
{