diff options
author | Aaron Kennedy <aaron.kennedy@nokia.com> | 2010-03-02 00:47:10 (GMT) |
---|---|---|
committer | Aaron Kennedy <aaron.kennedy@nokia.com> | 2010-03-02 00:47:10 (GMT) |
commit | 2790cb59f6877c1027c833578b72e168c912758a (patch) | |
tree | b626316b5801ba887b48e9fe71f811f4cf4ec581 /src/declarative/qml/qdeclarativedom.cpp | |
parent | f800919c4336da77b73561cc5180fc167f61f435 (diff) | |
download | Qt-2790cb59f6877c1027c833578b72e168c912758a.zip Qt-2790cb59f6877c1027c833578b72e168c912758a.tar.gz Qt-2790cb59f6877c1027c833578b72e168c912758a.tar.bz2 |
Make "on" syntax mandatory for value sources and interceptors
Where you would have written
x: NumberAnimation {}
y: Behavior {}
you now must write
NumberAnimation on x {}
Behavior on y {}
This change also makes the parser more strict with respect to multiple
assignments to a single property - they're no longer allowed. For example
this
x: 10
x: 11
is now an error.
Diffstat (limited to 'src/declarative/qml/qdeclarativedom.cpp')
-rw-r--r-- | src/declarative/qml/qdeclarativedom.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/declarative/qml/qdeclarativedom.cpp b/src/declarative/qml/qdeclarativedom.cpp index 6c81f34..5b43109 100644 --- a/src/declarative/qml/qdeclarativedom.cpp +++ b/src/declarative/qml/qdeclarativedom.cpp @@ -374,7 +374,10 @@ QDeclarativeDomValue QDeclarativeDomProperty::value() const QDeclarativeDomValue rv; if (d->property) { rv.d->property = d->property; - rv.d->value = d->property->values.at(0); + if (d->property->values.count()) + rv.d->value = d->property->values.at(0); + else + rv.d->value = d->property->onValues.at(0); rv.d->property->addref(); rv.d->value->addref(); } @@ -1346,7 +1349,7 @@ QDeclarativeDomValue::Type QDeclarativeDomValue::type() const { if (d->property) if (QDeclarativeMetaType::isList(d->property->type) || - (d->property && d->property->values.count() > 1)) + (d->property && (d->property->values.count() + d->property->onValues.count()) > 1)) return List; QDeclarativeParser::Value *value = d->value; @@ -1628,6 +1631,13 @@ QList<QDeclarativeDomValue> QDeclarativeDomList::values() const rv << v; } + for (int ii = 0; ii < d->property->onValues.count(); ++ii) { + QDeclarativeDomValue v; + v.d->value = d->property->onValues.at(ii); + v.d->value->addref(); + rv << v; + } + return rv; } |