aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@digia.com>2014-02-27 14:54:09 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-02-28 00:02:38 +0100
commit24d5fe8113ed149b98c0718aa3b27d3b013577cc (patch)
treea176eb26c5e29adfc4af50acc35dec0613dade0e
parent553530fb0a202ba7adaa2521fc180068f98c9c20 (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.cpp4
-rw-r--r--tests/auto/quick/qquickcanvasitem/data/CanvasTestCase.qml2
-rw-r--r--tests/auto/quick/qquickcanvasitem/data/tst_canvas.qml15
-rw-r--r--tests/auto/quick/qquickitem/tst_qquickitem.cpp61
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");