diff options
author | Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | 2015-03-26 21:34:42 +0100 |
---|---|---|
committer | Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | 2015-03-27 09:28:29 +0000 |
commit | 9cd486186e1e4e78f4f1b7e4a9142008a254c8cd (patch) | |
tree | 34bbe45bfe86d28851ec8e5c501a2499c3499954 /tests/auto/quickwidgets | |
parent | 5ac1654715b3e268d86570c860460f24697f2267 (diff) |
QQuickWidget: expose the underlying QQuickWindow
There's a number of APIs (such as all the scenegraph-related
signals) that are currently missing from QQuickWidget.
Instead of duplicating every API in QQuickWidget, simply expose
the underlying offscreen QQuickWindow.
Task-number: QTBUG-45260
Change-Id: I1a89fe600ce675963ea24ee6dd56d6ca4fea9cd2
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Diffstat (limited to 'tests/auto/quickwidgets')
-rw-r--r-- | tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp b/tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp index 1d9e40011d..3da920ca27 100644 --- a/tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp +++ b/tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp @@ -58,6 +58,7 @@ private slots: void errors(); void engine(); void readback(); + void renderingSignals(); }; @@ -259,6 +260,38 @@ void tst_qquickwidget::readback() QCOMPARE(pix, qRgb(255, 0, 0)); } +void tst_qquickwidget::renderingSignals() +{ + QQuickWidget widget; + QQuickWindow *window = widget.quickWindow(); + QVERIFY(window); + + QSignalSpy beforeRenderingSpy(window, &QQuickWindow::beforeRendering); + QSignalSpy beforeSyncSpy(window, &QQuickWindow::beforeSynchronizing); + QSignalSpy afterRenderingSpy(window, &QQuickWindow::afterRendering); + + QVERIFY(beforeRenderingSpy.isValid()); + QVERIFY(beforeSyncSpy.isValid()); + QVERIFY(afterRenderingSpy.isValid()); + + QCOMPARE(beforeRenderingSpy.size(), 0); + QCOMPARE(beforeSyncSpy.size(), 0); + QCOMPARE(afterRenderingSpy.size(), 0); + + widget.setSource(testFileUrl("rectangle.qml")); + + QCOMPARE(beforeRenderingSpy.size(), 0); + QCOMPARE(beforeSyncSpy.size(), 0); + QCOMPARE(afterRenderingSpy.size(), 0); + + widget.show(); + QVERIFY(QTest::qWaitForWindowExposed(&widget, 5000)); + + QTRY_VERIFY(beforeRenderingSpy.size() > 0); + QTRY_VERIFY(beforeSyncSpy.size() > 0); + QTRY_VERIFY(afterRenderingSpy.size() > 0); +} + QTEST_MAIN(tst_qquickwidget) #include "tst_qquickwidget.moc" |