diff options
author | Martin Jones <martin.jones@nokia.com> | 2012-06-08 11:19:09 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-06-08 06:17:54 +0200 |
commit | 762b4d90110465aeceb96f44cd06dcda229dfe89 (patch) | |
tree | 5bfba55b60b01a55ea965f0a51ad19ce6c84b004 /tests/auto/quick/shared | |
parent | 9f9b2df76c7677fb3dc82ca617cf0732652b684d (diff) |
Performance should always be better with cacheBuffer
Setting a cacheBuffer introduced more work for the scenegraph due to
cached delegates' visibility being toggled. Changing visibility is
expensive as it is proagated to all children. Introduce a cheap
method of hiding a branch instead.
Also avoid initiating incubation in the same frame as a completed
creation.
Change-Id: I573bcf37f441f96a7502d445be50ef4301f217d5
Reviewed-by: Bea Lam <bea.lam@nokia.com>
Diffstat (limited to 'tests/auto/quick/shared')
-rw-r--r-- | tests/auto/quick/shared/visualtestutil.cpp | 7 | ||||
-rw-r--r-- | tests/auto/quick/shared/visualtestutil.h | 3 |
2 files changed, 8 insertions, 2 deletions
diff --git a/tests/auto/quick/shared/visualtestutil.cpp b/tests/auto/quick/shared/visualtestutil.cpp index 8680df10e9..37d7323f8c 100644 --- a/tests/auto/quick/shared/visualtestutil.cpp +++ b/tests/auto/quick/shared/visualtestutil.cpp @@ -44,12 +44,17 @@ #include <QtQuick/QQuickItem> #include <QtCore/QDebug> +bool QQuickVisualTestUtil::delegateVisible(QQuickItem *item) +{ + return item->isVisible() && !QQuickItemPrivate::get(item)->culled; +} + QQuickItem *QQuickVisualTestUtil::findVisibleChild(QQuickItem *parent, const QString &objectName) { QQuickItem *item = 0; QList<QQuickItem*> items = parent->findChildren<QQuickItem*>(objectName); for (int i = 0; i < items.count(); ++i) { - if (items.at(i)->isVisible()) { + if (items.at(i)->isVisible() && !QQuickItemPrivate::get(items.at(i))->culled) { item = items.at(i); break; } diff --git a/tests/auto/quick/shared/visualtestutil.h b/tests/auto/quick/shared/visualtestutil.h index c2fc9cc01f..51f3f50b1f 100644 --- a/tests/auto/quick/shared/visualtestutil.h +++ b/tests/auto/quick/shared/visualtestutil.h @@ -53,6 +53,7 @@ namespace QQuickVisualTestUtil void dumpTree(QQuickItem *parent, int depth = 0); + bool delegateVisible(QQuickItem *item); /* Find an item with the specified objectName. If index is supplied then the @@ -90,7 +91,7 @@ namespace QQuickVisualTestUtil const QMetaObject &mo = T::staticMetaObject; for (int i = 0; i < parent->childItems().count(); ++i) { QQuickItem *item = qobject_cast<QQuickItem*>(parent->childItems().at(i)); - if (!item || (visibleOnly && !item->isVisible())) + if (!item || (visibleOnly && (!item->isVisible() || QQuickItemPrivate::get(item)->culled))) continue; if (mo.cast(item) && (objectName.isEmpty() || item->objectName() == objectName)) items.append(static_cast<T*>(item)); |