diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2014-01-09 17:07:36 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-01-14 17:21:08 +0100 |
commit | bc871587b2dd603af34a629b417b79d2c8540601 (patch) | |
tree | 1db63206a2b1b643a9208e78b3ab92e727e4a2a3 /src | |
parent | 5df2dc3b4487da01fbd1e3cf06771f3d5b251d62 (diff) |
[new compiler] Fix mix of bindings and signal handlers
When storing a binding, we remove any previous binding. If we store
a signal handler, we look up the same property, but we must not destroy
any existing bindings:
property int someThing: { ...}
onSomeThingChanged: { ...}
Change-Id: Ie5afd986ee3d8b4f2efd0aabca331c33a225abfc
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/qml/qml/qqmlobjectcreator.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/qml/qml/qqmlobjectcreator.cpp b/src/qml/qml/qqmlobjectcreator.cpp index 7a3d669dd6..69f6386dab 100644 --- a/src/qml/qml/qqmlobjectcreator.cpp +++ b/src/qml/qml/qqmlobjectcreator.cpp @@ -703,7 +703,7 @@ bool QmlObjectCreator::setPropertyValue(QQmlPropertyData *property, int bindingI } } - if (_ddata->hasBindingBit(property->coreIndex)) + if (_ddata->hasBindingBit(property->coreIndex) && !(binding->flags & QV4::CompiledData::Binding::IsSignalHandlerExpression)) removeBindingOnProperty(_bindingTarget, property->coreIndex); if (binding->type == QV4::CompiledData::Binding::Type_Script) { |