diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2014-01-19 14:22:54 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-01-20 18:59:52 +0100 |
commit | 091d8259e0fd820801ee2ffaf87d4f42cdc52c20 (patch) | |
tree | 9f770b9e55516c77f44360c3b02bc05969db53e8 /src/qml/qml/qqmlobjectcreator.cpp | |
parent | 25c12c94dfb178b4dd4f026cb6f0b17c3d43be6f (diff) |
[new compiler] Correct the use of default property
When a type declares a new default property, then the old default property
continues to apply to its own bindings.
Change-Id: Iafeec772baa4e1a430b09eed0b348b83984246cd
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/qml/qml/qqmlobjectcreator.cpp')
-rw-r--r-- | src/qml/qml/qqmlobjectcreator.cpp | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/src/qml/qml/qqmlobjectcreator.cpp b/src/qml/qml/qqmlobjectcreator.cpp index 2cacb0e546..24a8327722 100644 --- a/src/qml/qml/qqmlobjectcreator.cpp +++ b/src/qml/qml/qqmlobjectcreator.cpp @@ -588,8 +588,7 @@ void QmlObjectCreator::setupBindings() qSwap(_currentList, savedList); QQmlPropertyData *property = 0; - bool defaultPropertyQueried = false; - QQmlPropertyData *defaultProperty = 0; + QQmlPropertyData *defaultProperty = _compiledObject->indexOfDefaultProperty != -1 ? _propertyCache->parent()->defaultProperty() : _propertyCache->defaultProperty(); QString id = stringAt(_compiledObject->idIndex); if (!id.isEmpty()) { @@ -615,13 +614,8 @@ void QmlObjectCreator::setupBindings() if (!property || (i > 0 && (binding - 1)->propertyNameIndex != binding->propertyNameIndex)) { if (!name.isEmpty()) property = _propertyCache->property(name, _qobject, context); - else { - if (!defaultPropertyQueried) { - defaultProperty = _propertyCache->defaultProperty(); - defaultPropertyQueried = true; - } + else property = defaultProperty; - } if (property && property->isQList()) { void *argv[1] = { (void*)&_currentList }; |