diff options
author | Aaron Kennedy <aaron.kennedy@nokia.com> | 2010-04-09 08:19:06 (GMT) |
---|---|---|
committer | Aaron Kennedy <aaron.kennedy@nokia.com> | 2010-04-09 08:19:06 (GMT) |
commit | cf6f2eb2ccd1675d890904d12c9717e4570b123b (patch) | |
tree | fe7fac37c271acace3c2c4d6ff887116cebafabe /src/declarative/qml | |
parent | 3d90e35abae15f133ad2a71874f6926773c96449 (diff) | |
download | Qt-cf6f2eb2ccd1675d890904d12c9717e4570b123b.zip Qt-cf6f2eb2ccd1675d890904d12c9717e4570b123b.tar.gz Qt-cf6f2eb2ccd1675d890904d12c9717e4570b123b.tar.bz2 |
Allow undefined to be assigned to QVariant properties
QTBUG-9704
Diffstat (limited to 'src/declarative/qml')
-rw-r--r-- | src/declarative/qml/qdeclarativebinding.cpp | 4 | ||||
-rw-r--r-- | src/declarative/qml/qdeclarativeobjectscriptclass.cpp | 2 |
2 files changed, 6 insertions, 0 deletions
diff --git a/src/declarative/qml/qdeclarativebinding.cpp b/src/declarative/qml/qdeclarativebinding.cpp index 91eb915..e172a8b 100644 --- a/src/declarative/qml/qdeclarativebinding.cpp +++ b/src/declarative/qml/qdeclarativebinding.cpp @@ -174,6 +174,10 @@ void QDeclarativeBinding::update(QDeclarativePropertyPrivate::WriteFlags flags) data->property.reset(); + } else if (isUndefined && data->property.propertyType() == qMetaTypeId<QVariant>()) { + + QDeclarativePropertyPrivate::write(data->property, QVariant(), flags); + } else if (isUndefined) { QUrl url = QUrl(data->url); diff --git a/src/declarative/qml/qdeclarativeobjectscriptclass.cpp b/src/declarative/qml/qdeclarativeobjectscriptclass.cpp index e89075f..e1e33ab 100644 --- a/src/declarative/qml/qdeclarativeobjectscriptclass.cpp +++ b/src/declarative/qml/qdeclarativeobjectscriptclass.cpp @@ -351,6 +351,8 @@ void QDeclarativeObjectScriptClass::setProperty(QObject *obj, if (value.isUndefined() && lastData->flags & QDeclarativePropertyCache::Data::IsResettable) { void *a[] = { 0 }; QMetaObject::metacall(obj, QMetaObject::ResetProperty, lastData->coreIndex, a); + } else if (value.isUndefined() && lastData->propType == qMetaTypeId<QVariant>()) { + QDeclarativePropertyPrivate::write(obj, *lastData, QVariant(), evalContext); } else if (value.isUndefined()) { QString error = QLatin1String("Cannot assign [undefined] to ") + QLatin1String(QMetaType::typeName(lastData->propType)); |