From: Alan Alpert Date: Tue, 1 Nov 2011 04:16:09 +0000 (+1000) Subject: Fix SizeRootObjectToView mode X-Git-Url: http://git.silmor.de/gitweb/?a=commitdiff_plain;h=685a00d7776de64366a4aa60bf154bea99c9026d;p=konrad%2Fqtdeclarative.git Fix SizeRootObjectToView mode It is not yet possible to check if the window has been resized (after the refactor branch merge). Instead, resize to rootObject regardless only if the current view has no visible area. Task-number: QTBUG-22019 Change-Id: I158aaa11862529745ad389e1cbadb6a0ad18c742 Reviewed-by: Alan Alpert --- diff --git a/src/declarative/items/qquickview.cpp b/src/declarative/items/qquickview.cpp index cc87b77..cd3ae4f 100644 --- a/src/declarative/items/qquickview.cpp +++ b/src/declarative/items/qquickview.cpp @@ -73,7 +73,7 @@ void QQuickViewPrivate::init() } QQuickViewPrivate::QQuickViewPrivate() - : root(0), component(0), resizeMode(QQuickView::SizeViewToRootObject), initialSize(0,0), resized(false) + : root(0), component(0), resizeMode(QQuickView::SizeViewToRootObject), initialSize(0,0) { } @@ -313,11 +313,9 @@ void QQuickViewPrivate::setRootObject(QObject *obj) } if (root) { initialSize = rootObjectSize(); - if ((resizeMode == QQuickView::SizeViewToRootObject || !resized) // ### refactor: || !q->testAttribute(Qt::WA_Resized) - && initialSize != q->size()) { - + if ((resizeMode == QQuickView::SizeViewToRootObject || !q->width() || !q->height()) + && initialSize != q->size()) { q->resize(initialSize); - resized = true; } initResize(); } diff --git a/src/declarative/items/qquickview_p.h b/src/declarative/items/qquickview_p.h index 12be09b..8c83526 100644 --- a/src/declarative/items/qquickview_p.h +++ b/src/declarative/items/qquickview_p.h @@ -96,8 +96,6 @@ public: QQuickView::ResizeMode resizeMode; QSize initialSize; QElapsedTimer frameTimer; - - bool resized; }; QT_END_NAMESPACE diff --git a/tests/auto/declarative/qquickview/tst_qquickview.cpp b/tests/auto/declarative/qquickview/tst_qquickview.cpp index a2334d2..fb52a55 100644 --- a/tests/auto/declarative/qquickview/tst_qquickview.cpp +++ b/tests/auto/declarative/qquickview/tst_qquickview.cpp @@ -177,7 +177,6 @@ void tst_QQuickView::resizemodeitem() QTest::qWait(50); // initial size from root object - QEXPECT_FAIL("", "QTBUG-22019", Abort); QCOMPARE(item->width(), 300.0); QCOMPARE(item->height(), 300.0); QCOMPARE(canvas->size(), QSize(300, 300));