From 2edefe36773db0cbe837c33f65d0cde577ccb67a Mon Sep 17 00:00:00 2001 From: Andrew den Exter Date: Tue, 3 Jul 2012 16:50:40 +1000 Subject: Fix QQuickApplication::activate test. ApplicationActivate and ApplicationDeactivate events are now delivered. Task-number: QTBUG-21573 Task-number: QTBUG-23331 Change-Id: I58e8d7c7730c66ec210f04a74a945d3eece61e01 Reviewed-by: Alan Alpert --- .../qquickapplication/tst_qquickapplication.cpp | 35 ++++++++-------------- 1 file changed, 13 insertions(+), 22 deletions(-) (limited to 'tests/auto/quick/qquickapplication') diff --git a/tests/auto/quick/qquickapplication/tst_qquickapplication.cpp b/tests/auto/quick/qquickapplication/tst_qquickapplication.cpp index 287ccef018..c2773307da 100644 --- a/tests/auto/quick/qquickapplication/tst_qquickapplication.cpp +++ b/tests/auto/quick/qquickapplication/tst_qquickapplication.cpp @@ -45,6 +45,7 @@ #include #include #include +#include class tst_qquickapplication : public QObject { @@ -79,37 +80,27 @@ void tst_qquickapplication::active() "}", QUrl::fromLocalFile("")); QQuickItem *item = qobject_cast(component.create()); QVERIFY(item); - QQuickView view; - item->setParentItem(view.rootObject()); + QQuickCanvas canvas; + item->setParentItem(canvas.rootItem()); // not active QVERIFY(!item->property("active").toBool()); QVERIFY(!item->property("active2").toBool()); - QCOMPARE(item->property("active").toBool(), QGuiApplication::focusWindow() != 0); // active - view.show(); - view.requestActivateWindow(); - QTest::qWait(50); - QEXPECT_FAIL("", "QTBUG-21573", Abort); - QTRY_COMPARE(view.status(), QQuickView::Ready); - QCOMPARE(item->property("active").toBool(), QGuiApplication::focusWindow() != 0); - QCOMPARE(item->property("active2").toBool(), QGuiApplication::focusWindow() != 0); - -#if 0 - // QGuiApplication has no equivalent of setActiveWindow(0). QTBUG-21573 - // Is this different to clearing the active state of the window or can it be removed? - // On Mac, setActiveWindow(0) on mac does not deactivate the current application, - // must switch to a different app or hide the current app to trigger this - // on mac, setActiveWindow(0) on mac does not deactivate the current application - // (you have to switch to a different app or hide the current app to trigger this) + canvas.show(); + canvas.requestActivateWindow(); + QTest::qWaitForWindowActive(&canvas); + QVERIFY(QGuiApplication::focusWindow() == &canvas); + QVERIFY(item->property("active").toBool()); + QVERIFY(item->property("active2").toBool()); // not active again - QGuiApplication::setActiveWindow(0); - QVERIFY(!item->property("active").toBool()); - QCOMPARE(item->property("active").toBool(), QGuiApplication::focusWindow() != 0); -#endif + QWindowSystemInterface::handleWindowActivated(0); + QTRY_VERIFY(QGuiApplication::focusWindow() != &canvas); + QVERIFY(!item->property("active").toBool()); + QVERIFY(!item->property("active2").toBool()); } void tst_qquickapplication::layoutDirection() -- cgit v1.2.3