From 25f7d95fce7e3082f9951fc5403ac7047e62c087 Mon Sep 17 00:00:00 2001 From: Axel Spoerl Date: Fri, 7 Jul 2023 17:21:34 +0200 Subject: tst_QDialogButtonBox::hideAndShowButton: Wait for focus widget Spin the event loop with QTRY_VERIFY when checking the dialog box's focus widget, to stop flaking. Pick-to: 6.6 6.5 Change-Id: I24fab1264796e05645da4c12e4672daec9b06067 Reviewed-by: Volker Hilsheimer Reviewed-by: Qt CI Bot --- .../auto/widgets/widgets/qdialogbuttonbox/tst_qdialogbuttonbox.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'tests/auto/widgets/widgets') diff --git a/tests/auto/widgets/widgets/qdialogbuttonbox/tst_qdialogbuttonbox.cpp b/tests/auto/widgets/widgets/qdialogbuttonbox/tst_qdialogbuttonbox.cpp index c3f8fb0e30..b3f26e5dd8 100644 --- a/tests/auto/widgets/widgets/qdialogbuttonbox/tst_qdialogbuttonbox.cpp +++ b/tests/auto/widgets/widgets/qdialogbuttonbox/tst_qdialogbuttonbox.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -380,6 +381,9 @@ void tst_QDialogButtonBox::removeButton() #ifdef QT_BUILD_INTERNAL void tst_QDialogButtonBox::hideAndShowButton() { + if (QGuiApplication::styleHints()->tabFocusBehavior() == Qt::NoTabFocus) + QSKIP("Test skipped with Qt::NoTabFocus"); + QDialogButtonBox buttonBox; QDialogButtonBoxPrivate *d = static_cast(QObjectPrivate::get(&buttonBox)); auto *apply = buttonBox.addButton( "Apply", QDialogButtonBox::ApplyRole ); @@ -402,7 +406,7 @@ void tst_QDialogButtonBox::hideAndShowButton() hideButton->hide(); widget->show(); QVERIFY(QTest::qWaitForWindowExposed(widget)); - QVERIFY(buttonBox.focusWidget()); // QTBUG-114377: Without fixing, focusWidget() == nullptr + QTRY_VERIFY(buttonBox.focusWidget()); // QTBUG-114377: Without fixing, focusWidget() == nullptr QCOMPARE(d->visibleButtons().count(), 2); QCOMPARE(d->hiddenButtons.count(), 1); QVERIFY(d->hiddenButtons.contains(hideButton)); -- cgit v1.2.3