aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorVolker Hilsheimer <volker.hilsheimer@qt.io>2021-07-22 22:32:41 +0200
committerVolker Hilsheimer <volker.hilsheimer@qt.io>2021-12-04 22:13:52 +0100
commit61ee61d8c977ecf876ce1d364cff634467b562a9 (patch)
tree2fde3d6b2405f5129e7456700951364fb0f699f3 /tests/auto
parentb7b5127747e3be2b12a70bf9c460e96d7a711496 (diff)
Fix setting the focus reason in Qt Quick Controls
Focus might go to the content item, which is a QQuickItem that has no concept of either focusPolicy or focusReason. For Qt Quick Controls to update the focusReason property when an item in it's item tree receives or loses focus, it has to install itself as a notification listener on the item. However, QQuickItemChangeListener didn't have any notification type for focus changes. Add the new change type, and notify listeners whenever the an item's focus changes. Focus scoping might mean that an item never loses focus, but nevertheless loses active focus. To be able to update items recursively with the correct focusReason, add the reason parameter to the QQuickDeliveryAgent helper function. Fixes: QTBUG-75862 Pick-to: 6.2 Change-Id: I3d19b722bb07b55416b8cfbb4a9cdb0edd0da3ec Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/quickcontrols2/focus/tst_focus.cpp10
1 files changed, 0 insertions, 10 deletions
diff --git a/tests/auto/quickcontrols2/focus/tst_focus.cpp b/tests/auto/quickcontrols2/focus/tst_focus.cpp
index c256d0036e..6f1bacee6a 100644
--- a/tests/auto/quickcontrols2/focus/tst_focus.cpp
+++ b/tests/auto/quickcontrols2/focus/tst_focus.cpp
@@ -321,7 +321,6 @@ void tst_focus::reason()
QVERIFY(spinbox->hasFocus());
QVERIFY(spinbox->hasActiveFocus());
QCOMPARE(qApp->focusObject(), spinbox->contentItem());
- QEXPECT_FAIL("", "Events on content item not filtered - QTBUG-75862", Continue);
QCOMPARE(editcombo->focusReason(), Qt::TabFocusReason);
QCOMPARE(spinbox->focusReason(), Qt::TabFocusReason);
spinbox->setFocusReason(Qt::NoFocusReason);
@@ -330,7 +329,6 @@ void tst_focus::reason()
QVERIFY(customText->hasFocus());
QVERIFY(customText->hasActiveFocus());
QCOMPARE(qApp->focusObject(), customText);
- QEXPECT_FAIL("", "Events on content item not filtered - QTBUG-75862", Continue);
QCOMPARE(spinbox->focusReason(), Qt::TabFocusReason);
QCOMPARE(customText->focusReason(), Qt::TabFocusReason);
customText->setFocusReason(Qt::NoFocusReason);
@@ -369,12 +367,10 @@ void tst_focus::reason()
QTest::keyClick(&view, Qt::Key_Tab, Qt::ShiftModifier);
QVERIFY(spinbox->hasFocus());
- QEXPECT_FAIL("", "Events on content item not filtered - QTBUG-75862", Continue);
QCOMPARE(spinbox->focusReason(), Qt::BacktabFocusReason);
QTest::keyClick(&view, Qt::Key_Tab, Qt::ShiftModifier);
QVERIFY(editcombo->hasFocus());
- QEXPECT_FAIL("", "Events on content item not filtered - QTBUG-75862", Continue);
QCOMPARE(editcombo->focusReason(), Qt::BacktabFocusReason);
QTest::keyClick(&view, Qt::Key_Tab, Qt::ShiftModifier);
@@ -387,7 +383,6 @@ void tst_focus::reason()
QVERIFY(editcombo->contentItem()->hasFocus());
QVERIFY(editcombo->hasActiveFocus());
QVERIFY(editcombo->contentItem()->hasActiveFocus());
- QEXPECT_FAIL("", "Events on content item not filtered - QTBUG-75862", Continue);
QCOMPARE(editcombo->focusReason(), Qt::MouseFocusReason);
editcombo->setFocusReason(Qt::NoFocusReason);
@@ -396,7 +391,6 @@ void tst_focus::reason()
QVERIFY(combobox->hasFocus());
QVERIFY(combobox->hasActiveFocus());
- QEXPECT_FAIL("", "Events on content item not filtered - QTBUG-75862", Continue);
QCOMPARE(editcombo->focusReason(), Qt::MouseFocusReason);
QCOMPARE(combobox->focusReason(), Qt::MouseFocusReason);
combobox->setFocusReason(Qt::NoFocusReason);
@@ -405,23 +399,19 @@ void tst_focus::reason()
QVERIFY(spinbox->hasFocus());
QVERIFY(spinbox->hasActiveFocus());
QCOMPARE(combobox->focusReason(), Qt::MouseFocusReason);
- QEXPECT_FAIL("", "Events on content item not filtered - QTBUG-75862", Continue);
QCOMPARE(spinbox->focusReason(), Qt::MouseFocusReason);
spinbox->setFocusReason(Qt::NoFocusReason);
QTest::mouseClick(&view, Qt::LeftButton, {}, itemCenter(customText));
QTRY_VERIFY2(customText->contentItem()->hasFocus(), qPrintable(qApp->focusObject()->objectName()));
QVERIFY(customText->contentItem()->hasActiveFocus());
- QEXPECT_FAIL("", "Events on content item not filtered - QTBUG-75862", Continue);
QCOMPARE(spinbox->focusReason(), Qt::MouseFocusReason);
- QEXPECT_FAIL("", "Events on content item not filtered - QTBUG-75862", Continue);
QCOMPARE(customText->focusReason(), Qt::MouseFocusReason);
customText->setFocusReason(Qt::NoFocusReason);
QTest::mouseClick(&view, Qt::LeftButton, {}, itemCenter(customItem));
QVERIFY(customItem->hasFocus());
QVERIFY(customItem->hasActiveFocus());
- QEXPECT_FAIL("", "Events on content item not filtered - QTBUG-75862", Continue);
QCOMPARE(customText->focusReason(), Qt::MouseFocusReason);
QCOMPARE(customItem->focusReason(), Qt::MouseFocusReason);
customItem->setFocusReason(Qt::NoFocusReason);