diff options
author | J-P Nurmi <jpnurmi@digia.com> | 2014-02-27 14:54:09 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-02-28 00:02:38 +0100 |
commit | 24d5fe8113ed149b98c0718aa3b27d3b013577cc (patch) | |
tree | a176eb26c5e29adfc4af50acc35dec0613dade0e | |
parent | 553530fb0a202ba7adaa2521fc180068f98c9c20 (diff) |
Revert "Fix item polishing"
This caused items like positioners and itemviews to not
relayout or update as appropriate when items were hidden,
and therefore caused problems all over in eg. controls.
This reverts commits
- 43f983350a548b1b663ea07a0e87e4cc58834214
- 01e609e9fa0ca1317e0f4eff4802a79584450357
- 439f31f128e70ecae16544ee7041695c60e0b2d6
Task-number: QTBUG-36954
Task-number: QTBUG-36934
Task-number: QTBUG-31830
Change-Id: If04cdce51206568c360a45e24efc0bd04764750b
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
-rw-r--r-- | src/quick/items/qquickitem.cpp | 4 | ||||
-rw-r--r-- | tests/auto/quick/qquickcanvasitem/data/CanvasTestCase.qml | 2 | ||||
-rw-r--r-- | tests/auto/quick/qquickcanvasitem/data/tst_canvas.qml | 15 | ||||
-rw-r--r-- | tests/auto/quick/qquickitem/tst_qquickitem.cpp | 61 |
4 files changed, 4 insertions, 78 deletions
diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp index 62ed5e0c85..3b63028a2e 100644 --- a/src/quick/items/qquickitem.cpp +++ b/src/quick/items/qquickitem.cpp @@ -3857,7 +3857,7 @@ void QQuickItem::polish() Q_D(QQuickItem); if (!d->polishScheduled) { d->polishScheduled = true; - if (d->window && (isVisible() || (d->extra.isAllocated() && d->extra->effectRefCount>0))) { + if (d->window) { QQuickWindowPrivate *p = QQuickWindowPrivate::get(d->window); bool maybeupdate = p->itemsToPolish.isEmpty(); p->itemsToPolish.insert(this); @@ -5241,8 +5241,6 @@ bool QQuickItemPrivate::setEffectiveVisibleRecur(bool newEffectiveVisible) QQuickWindowPrivate *windowPriv = QQuickWindowPrivate::get(window); if (windowPriv->mouseGrabberItem == q) q->ungrabMouse(); - if (polishScheduled) - windowPriv->itemsToPolish.insert(q); } bool childVisibilityChanged = false; diff --git a/tests/auto/quick/qquickcanvasitem/data/CanvasTestCase.qml b/tests/auto/quick/qquickcanvasitem/data/CanvasTestCase.qml index e299147b36..1a5711ebb2 100644 --- a/tests/auto/quick/qquickcanvasitem/data/CanvasTestCase.qml +++ b/tests/auto/quick/qquickcanvasitem/data/CanvasTestCase.qml @@ -1,6 +1,5 @@ import QtQuick 2.0 import QtTest 1.0 -import QtQuick.Window 2.1 TestCase { id:testCase @@ -16,7 +15,6 @@ TestCase { if (type === "2d") return [ { tag:"image threaded", properties:{width:100, height:100, renderTarget:Canvas.Image, renderStrategy:Canvas.Threaded}}, - { tag:"image canvas invisible", properties:{visible: false, width:100, height:100, renderTarget:Canvas.Image, renderStrategy:Canvas.Threaded}}, // { tag:"image cooperative", properties:{width:100, height:100, renderTarget:Canvas.Image, renderStrategy:Canvas.Cooperative}}, { tag:"image immediate", properties:{width:100, height:100, renderTarget:Canvas.Image, renderStrategy:Canvas.Immediate}}, // { tag:"fbo cooperative", properties:{width:100, height:100, renderTarget:Canvas.FramebufferObject, renderStrategy:Canvas.Cooperative}}, diff --git a/tests/auto/quick/qquickcanvasitem/data/tst_canvas.qml b/tests/auto/quick/qquickcanvasitem/data/tst_canvas.qml index b92f6354a5..f13039ad95 100644 --- a/tests/auto/quick/qquickcanvasitem/data/tst_canvas.qml +++ b/tests/auto/quick/qquickcanvasitem/data/tst_canvas.qml @@ -180,20 +180,11 @@ CanvasTestCase { tryCompare(c, "availableChangedCount", 1); //scene graph could be available immediately //in this case, we force waiting a short while until the init paint finished - if (c.visible) { - tryCompare(c, "paintedCount", 1); - } else { - tryCompare(c, "paintedCount", 0); - } + tryCompare(c, "paintedCount", 1); ctx.fillRect(0, 0, c.width, c.height); c.toDataURL(); - if (c.visible) { - tryCompare(c, "paintCount", 1); - tryCompare(c, "paintedCount", 2); - } else { - tryCompare(c, "paintCount", 0); - tryCompare(c, "paintedCount", 1); - } + tryCompare(c, "paintedCount", 2); + tryCompare(c, "paintCount", 1); c.destroy(); } function test_loadImage(row) { diff --git a/tests/auto/quick/qquickitem/tst_qquickitem.cpp b/tests/auto/quick/qquickitem/tst_qquickitem.cpp index efe9266d0a..f4f2374183 100644 --- a/tests/auto/quick/qquickitem/tst_qquickitem.cpp +++ b/tests/auto/quick/qquickitem/tst_qquickitem.cpp @@ -40,13 +40,11 @@ ****************************************************************************/ #include <qtest.h> -#include <qsignalspy.h> #include <QtQuick/qquickitem.h> #include <QtQuick/qquickwindow.h> #include <QtQuick/qquickview.h> #include "private/qquickfocusscope_p.h" -#include "private/qquickwindow_p.h" #include "private/qquickitem_p.h" #include <qpa/qwindowsysteminterface.h> #include <QDebug> @@ -158,8 +156,6 @@ private slots: void touchEventAcceptIgnore(); void polishOutsideAnimation(); void polishOnCompleted(); - void polishLaterWhenVisible(); - void polishWhenOtherHidden(); void wheelEvent_data(); void wheelEvent(); @@ -1400,63 +1396,6 @@ void tst_qquickitem::polishOnCompleted() QTRY_VERIFY(item->wasPolished); } -void tst_qquickitem::polishLaterWhenVisible() -{ - QQuickWindow window; - QQuickWindowPrivate *wp = QQuickWindowPrivate::get(&window); - window.resize(200, 200); - window.show(); - QTest::qWaitForWindowExposed(&window); - - TestPolishItem *item = new TestPolishItem(window.contentItem()); - item->setSize(QSizeF(200, 100)); - item->setVisible(false); - item->polish(); - - QVERIFY(!wp->itemsToPolish.contains(item)); - window.grabWindow(); // trigger QQuickWindowPrivate::polishItems() - QVERIFY(!item->wasPolished); - - item->setVisible(true); - QVERIFY(wp->itemsToPolish.contains(item)); - window.grabWindow(); // trigger QQuickWindowPrivate::polishItems() - QVERIFY(item->wasPolished); - QVERIFY(!wp->itemsToPolish.contains(item)); -} - -void tst_qquickitem::polishWhenOtherHidden() -{ - QQuickWindow window; - QQuickWindowPrivate *wp = QQuickWindowPrivate::get(&window); - window.resize(200, 200); - window.show(); - QTest::qWaitForWindowExposed(&window); - - // a hidden item pending for polish... - TestPolishItem *hiddenItem = new TestPolishItem(window.contentItem()); - hiddenItem->setSize(QSizeF(200, 100)); - hiddenItem->setVisible(false); - hiddenItem->polish(); - - QVERIFY(!wp->itemsToPolish.contains(hiddenItem)); - window.grabWindow(); // trigger QQuickWindowPrivate::polishItems() - QVERIFY(!hiddenItem->wasPolished); - - // ...should not block a visible item from being polished - TestPolishItem *visibleItem = new TestPolishItem(window.contentItem()); - visibleItem->setSize(QSizeF(200, 100)); - visibleItem->setVisible(true); - visibleItem->polish(); - - QVERIFY(wp->itemsToPolish.contains(visibleItem)); - QVERIFY(!wp->itemsToPolish.contains(hiddenItem)); - window.grabWindow(); // trigger QQuickWindowPrivate::polishItems() - QVERIFY(visibleItem->wasPolished); - QVERIFY(!hiddenItem->wasPolished); - QVERIFY(!wp->itemsToPolish.contains(visibleItem)); - QVERIFY(!wp->itemsToPolish.contains(hiddenItem)); -} - void tst_qquickitem::wheelEvent_data() { QTest::addColumn<bool>("visible"); |