diff options
author | Paul Olav Tvete <paul.tvete@qt.io> | 2017-08-14 10:29:53 +0200 |
---|---|---|
committer | Paul Olav Tvete <paul.tvete@qt.io> | 2017-08-16 07:22:53 +0000 |
commit | b160a38b7babeb3cb009748a008075ab07926428 (patch) | |
tree | af3c9d8a9b0ff6ab188e99f02f5a7623368afb8f /tests/auto/quickwidgets | |
parent | 6034d89bdd907d4795c19e8ac752f4eb51c82a94 (diff) |
Update layout when QQuickWidget changes size
Task-number: QTBUG-47722
Change-Id: I612f89945961a3995878c424bf27dbbedf8375c8
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Diffstat (limited to 'tests/auto/quickwidgets')
-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; |