diff options
Diffstat (limited to 'tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp')
-rw-r--r-- | tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp b/tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp index ee49c9c7ad..537fe99012 100644 --- a/tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp +++ b/tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp @@ -38,6 +38,9 @@ #include <QtCore/QDebug> #include <QtQml/qqmlengine.h> +#include <QtWidgets/QBoxLayout> +#include <QtWidgets/QLabel> + #include <QtQuickWidgets/QQuickWidget> class tst_qquickwidget : public QQmlDataTest @@ -51,6 +54,7 @@ private slots: void reparentAfterShow(); void changeGeometry(); void resizemodeitem(); + void layoutSizeChange(); void errors(); void engine(); void readback(); @@ -225,6 +229,39 @@ void tst_qquickwidget::resizemodeitem() QCOMPARE(view->initialSize(), QSize(200, 200)); // initial object size } +void tst_qquickwidget::layoutSizeChange() +{ + QWidget window; + window.resize(400, 400); + + QVBoxLayout *layout = new QVBoxLayout(&window); + layout->setContentsMargins(0,0,0,0); + layout->setSpacing(0); + QScopedPointer<QQuickWidget> view(new QQuickWidget); + layout->addWidget(view.data()); + QLabel *label = new QLabel("Label"); + layout->addWidget(label); + layout->addStretch(1); + + + view->resize(300,300); + view->setResizeMode(QQuickWidget::SizeViewToRootObject); + QCOMPARE(QSize(0,0), view->initialSize()); + view->setSource(testFileUrl("rectangle.qml")); + QQuickItem* item = qobject_cast<QQuickItem*>(view->rootObject()); + QVERIFY(item); + QCOMPARE(item->height(), 200.0); + window.show(); + QVERIFY(QTest::qWaitForWindowExposed(&window, 5000)); + QTRY_COMPARE(view->height(), 200); + QTRY_COMPARE(label->y(), 200); + + item->setSize(QSizeF(100,100)); + QCOMPARE(item->height(), 100.0); + QTRY_COMPARE(view->height(), 100); + QTRY_COMPARE(label->y(), 100); +} + void tst_qquickwidget::errors() { QQuickWidget *view = new QQuickWidget; |