diff options
author | Alan Alpert <alan.alpert@nokia.com> | 2010-09-02 01:00:14 (GMT) |
---|---|---|
committer | Alan Alpert <alan.alpert@nokia.com> | 2010-09-02 01:00:14 (GMT) |
commit | 63eab5ef720936dbb5ee76686c6558e18a79e587 (patch) | |
tree | 920a29827e6fb83431e90c160616ca73924b455a /src/declarative/qml/qdeclarativevmemetaobject.cpp | |
parent | 661e237be622a5f7886cee7c06f9daa73d4a07d7 (diff) | |
parent | e3a76875d1eea19c29fd6c8dec4e0db9252c2d29 (diff) | |
download | Qt-63eab5ef720936dbb5ee76686c6558e18a79e587.zip Qt-63eab5ef720936dbb5ee76686c6558e18a79e587.tar.gz Qt-63eab5ef720936dbb5ee76686c6558e18a79e587.tar.bz2 |
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-qml into 4.7
Diffstat (limited to 'src/declarative/qml/qdeclarativevmemetaobject.cpp')
-rw-r--r-- | src/declarative/qml/qdeclarativevmemetaobject.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/declarative/qml/qdeclarativevmemetaobject.cpp b/src/declarative/qml/qdeclarativevmemetaobject.cpp index 689ed92..3e32006 100644 --- a/src/declarative/qml/qdeclarativevmemetaobject.cpp +++ b/src/declarative/qml/qdeclarativevmemetaobject.cpp @@ -707,11 +707,19 @@ void QDeclarativeVMEMetaObject::writeVarProperty(int id, const QScriptValue &val void QDeclarativeVMEMetaObject::writeVarProperty(int id, const QVariant &value) { - if (value.userType() == QMetaType::QObjectStar) + bool needActivate = false; + if (value.userType() == QMetaType::QObjectStar) { + QObject *o = qvariant_cast<QObject *>(value); + needActivate = (data[id].dataType() != QMetaType::QObjectStar || data[id].asQObject() != o); data[id].setValue(qvariant_cast<QObject *>(value)); - else + } else { + needActivate = (data[id].dataType() != qMetaTypeId<QVariant>() || + data[id].asQVariant().userType() != value.userType() || + data[id].asQVariant() != value); data[id].setValue(value); - activate(object, methodOffset + id, 0); + } + if (needActivate) + activate(object, methodOffset + id, 0); } void QDeclarativeVMEMetaObject::listChanged(int id) |