aboutsummaryrefslogtreecommitdiffstats
path: root/src/declarative/qml/qdeclarativeincubator.cpp
diff options
context:
space:
mode:
authorAaron Kennedy <aaron.kennedy@nokia.com>2011-10-18 13:34:20 +1000
committerQt by Nokia <qt-info@nokia.com>2011-10-20 13:25:31 +0200
commit84af8c0ca510366a3017c1af83abc1cd18009198 (patch)
tree72a8571c8150f9d383eb7de03fc04fa9de9ab4f9 /src/declarative/qml/qdeclarativeincubator.cpp
parent0db8440681ed0d1ea9baeda21dd71bb2e331bea2 (diff)
Behave correctly when AsynchronousIfNested is nested
When AIN is nested within a synchronous AIN, it should behave synchronously. Change-Id: Ib3f8281667118d7787967f25e27797f67e581006 Reviewed-by: Martin Jones <martin.jones@nokia.com>
Diffstat (limited to 'src/declarative/qml/qdeclarativeincubator.cpp')
-rw-r--r--src/declarative/qml/qdeclarativeincubator.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/declarative/qml/qdeclarativeincubator.cpp b/src/declarative/qml/qdeclarativeincubator.cpp
index 1417ed466a..abd759dcc0 100644
--- a/src/declarative/qml/qdeclarativeincubator.cpp
+++ b/src/declarative/qml/qdeclarativeincubator.cpp
@@ -72,13 +72,15 @@ void QDeclarativeEnginePrivate::incubate(QDeclarativeIncubator &i, QDeclarativeC
cctxt = cctxt->parent;
}
- if (parentIncubator && parentIncubator->mode != QDeclarativeIncubator::Synchronous) {
+ if (parentIncubator && parentIncubator->isAsynchronous) {
mode = QDeclarativeIncubator::Asynchronous;
p->waitingOnMe = parentIncubator;
parentIncubator->waitingFor.insert(p);
}
}
+ p->isAsynchronous = (mode != QDeclarativeIncubator::Synchronous);
+
inProgressCreations++;
p->changeStatus(QDeclarativeIncubator::Loading);
@@ -121,8 +123,8 @@ QDeclarativeIncubationController *QDeclarativeEngine::incubationController() con
QDeclarativeIncubatorPrivate::QDeclarativeIncubatorPrivate(QDeclarativeIncubator *q,
QDeclarativeIncubator::IncubationMode m)
-: q(q), status(QDeclarativeIncubator::Null), mode(m), progress(Execute), result(0), component(0),
- vme(this), waitingOnMe(0)
+: q(q), status(QDeclarativeIncubator::Null), mode(m), isAsynchronous(false), progress(Execute),
+ result(0), component(0), vme(this), waitingOnMe(0)
{
}