From 30275dfcb8c5303de201bc32fba2a6b9b26fa1cd Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Wed, 24 Mar 2010 11:25:32 +1000 Subject: Use setParent_NoEvent in Loader and benchmark Loader performance. --- src/declarative/graphicsitems/qdeclarativeloader.cpp | 5 +++-- .../declarative/qdeclarativetime/tests/loader/Loaded.qml | 7 +++++++ .../qdeclarativetime/tests/loader/component_loader.qml | 16 ++++++++++++++++ .../qdeclarativetime/tests/loader/empty_loader.qml | 15 +++++++++++++++ .../qdeclarativetime/tests/loader/no_loader.qml | 14 ++++++++++++++ .../qdeclarativetime/tests/loader/source_loader.qml | 16 ++++++++++++++++ 6 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 tests/benchmarks/declarative/qdeclarativetime/tests/loader/Loaded.qml create mode 100644 tests/benchmarks/declarative/qdeclarativetime/tests/loader/component_loader.qml create mode 100644 tests/benchmarks/declarative/qdeclarativetime/tests/loader/empty_loader.qml create mode 100644 tests/benchmarks/declarative/qdeclarativetime/tests/loader/no_loader.qml create mode 100644 tests/benchmarks/declarative/qdeclarativetime/tests/loader/source_loader.qml diff --git a/src/declarative/graphicsitems/qdeclarativeloader.cpp b/src/declarative/graphicsitems/qdeclarativeloader.cpp index c0d316f..544e9ec 100644 --- a/src/declarative/graphicsitems/qdeclarativeloader.cpp +++ b/src/declarative/graphicsitems/qdeclarativeloader.cpp @@ -41,8 +41,9 @@ #include "qdeclarativeloader_p_p.h" -#include #include +#include +#include QT_BEGIN_NAMESPACE @@ -302,7 +303,7 @@ void QDeclarativeLoaderPrivate::_q_sourceLoaded() return; } if (obj) { - ctxt->setParent(obj); + QDeclarative_setParent_noEvent(ctxt, obj); item = qobject_cast(obj); if (item) { if (QDeclarativeItem* qmlItem = qobject_cast(item)) { diff --git a/tests/benchmarks/declarative/qdeclarativetime/tests/loader/Loaded.qml b/tests/benchmarks/declarative/qdeclarativetime/tests/loader/Loaded.qml new file mode 100644 index 0000000..6f8d849 --- /dev/null +++ b/tests/benchmarks/declarative/qdeclarativetime/tests/loader/Loaded.qml @@ -0,0 +1,7 @@ +import Qt 4.6 + +Item { + Rectangle {} + Text {} + Image {} +} diff --git a/tests/benchmarks/declarative/qdeclarativetime/tests/loader/component_loader.qml b/tests/benchmarks/declarative/qdeclarativetime/tests/loader/component_loader.qml new file mode 100644 index 0000000..270add4 --- /dev/null +++ b/tests/benchmarks/declarative/qdeclarativetime/tests/loader/component_loader.qml @@ -0,0 +1,16 @@ +import Qt 4.6 +import QDeclarativeTime 1.0 as QDeclarativeTime + +Item { + + QDeclarativeTime.Timer { + component: Component { + Item { + Loader { + sourceComponent: Loaded {} + } + } + } + } +} + diff --git a/tests/benchmarks/declarative/qdeclarativetime/tests/loader/empty_loader.qml b/tests/benchmarks/declarative/qdeclarativetime/tests/loader/empty_loader.qml new file mode 100644 index 0000000..d3b84cc --- /dev/null +++ b/tests/benchmarks/declarative/qdeclarativetime/tests/loader/empty_loader.qml @@ -0,0 +1,15 @@ +import Qt 4.6 +import QDeclarativeTime 1.0 as QDeclarativeTime + +Item { + + QDeclarativeTime.Timer { + component: Component { + Item { + Loader {} + Loaded {} + } + } + } +} + diff --git a/tests/benchmarks/declarative/qdeclarativetime/tests/loader/no_loader.qml b/tests/benchmarks/declarative/qdeclarativetime/tests/loader/no_loader.qml new file mode 100644 index 0000000..a94a12a --- /dev/null +++ b/tests/benchmarks/declarative/qdeclarativetime/tests/loader/no_loader.qml @@ -0,0 +1,14 @@ +import Qt 4.6 +import QDeclarativeTime 1.0 as QDeclarativeTime + +Item { + + QDeclarativeTime.Timer { + component: Component { + Item { + Loaded {} + } + } + } +} + diff --git a/tests/benchmarks/declarative/qdeclarativetime/tests/loader/source_loader.qml b/tests/benchmarks/declarative/qdeclarativetime/tests/loader/source_loader.qml new file mode 100644 index 0000000..39ed1a6 --- /dev/null +++ b/tests/benchmarks/declarative/qdeclarativetime/tests/loader/source_loader.qml @@ -0,0 +1,16 @@ +import Qt 4.6 +import QDeclarativeTime 1.0 as QDeclarativeTime + +Item { + + QDeclarativeTime.Timer { + component: Component { + Item { + Loader { + source: "Loaded.qml" + } + } + } + } +} + -- cgit v0.12