From 9cd486186e1e4e78f4f1b7e4a9142008a254c8cd Mon Sep 17 00:00:00 2001 From: Giuseppe D'Angelo Date: Thu, 26 Mar 2015 21:34:42 +0100 Subject: 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 Reviewed-by: Gunnar Sletta Reviewed-by: Laszlo Agocs --- .../quickwidgets/qquickwidget/tst_qquickwidget.cpp | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'tests/auto/quickwidgets') 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" -- cgit v1.2.3