diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/qml/qml/qqmlbinding.cpp | 10 | ||||
-rw-r--r-- | src/qml/qml/qqmlbinding_p.h | 1 |
2 files changed, 8 insertions, 3 deletions
diff --git a/src/qml/qml/qqmlbinding.cpp b/src/qml/qml/qqmlbinding.cpp index a0025d43d7..2fdd31e671 100644 --- a/src/qml/qml/qqmlbinding.cpp +++ b/src/qml/qml/qqmlbinding.cpp @@ -667,6 +667,12 @@ void QQmlBinding::setTarget(const QQmlProperty &prop) bool QQmlBinding::setTarget(QObject *object, const QQmlPropertyData &core, const QQmlPropertyData *valueType) { + return setTarget(object, core.coreIndex(), core.isAlias(), + valueType ? valueType->coreIndex() : -1); +} + +bool QQmlBinding::setTarget(QObject *object, int coreIndex, bool coreIsAlias, int valueTypeIndex) +{ m_target = object; if (!object) { @@ -674,9 +680,7 @@ bool QQmlBinding::setTarget(QObject *object, const QQmlPropertyData &core, const return false; } - int coreIndex = core.coreIndex(); - int valueTypeIndex = valueType ? valueType->coreIndex() : -1; - for (bool isAlias = core.isAlias(); isAlias; ) { + for (bool isAlias = coreIsAlias; isAlias;) { QQmlVMEMetaObject *vme = QQmlVMEMetaObject::getForProperty(object, coreIndex); int aValueTypeIndex; diff --git a/src/qml/qml/qqmlbinding_p.h b/src/qml/qml/qqmlbinding_p.h index 73bc0a03c8..4e824fff03 100644 --- a/src/qml/qml/qqmlbinding_p.h +++ b/src/qml/qml/qqmlbinding_p.h @@ -99,6 +99,7 @@ public: void setTarget(const QQmlProperty &); bool setTarget(QObject *, const QQmlPropertyData &, const QQmlPropertyData *valueType); + bool setTarget(QObject *, int coreIndex, bool coreIsAlias, int valueTypeIndex); void refresh() override; |