diff options
Diffstat (limited to 'src/qml/qml/qqmlobjectcreator.cpp')
-rw-r--r-- | src/qml/qml/qqmlobjectcreator.cpp | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/src/qml/qml/qqmlobjectcreator.cpp b/src/qml/qml/qqmlobjectcreator.cpp index 43c639ce8d..21e845ccdb 100644 --- a/src/qml/qml/qqmlobjectcreator.cpp +++ b/src/qml/qml/qqmlobjectcreator.cpp @@ -346,7 +346,7 @@ void QQmlObjectCreator::setPropertyValue(const QQmlPropertyData *property, const QQmlPropertyData::WriteFlags propertyWriteFlags = QQmlPropertyData::BypassInterceptor | QQmlPropertyData::RemoveBindingOnAliasWrite; QV4::Scope scope(v4); - int propertyType = property->propType(); + int propertyType = property->propType().id(); if (property->isEnum()) { if (binding->flags & QV4::CompiledData::Binding::IsResolvedEnum) { @@ -576,37 +576,37 @@ void QQmlObjectCreator::setPropertyValue(const QQmlPropertyData *property, const } default: { // generate single literal value assignment to a list property if required - if (property->propType() == qMetaTypeId<QList<qreal> >()) { + if (propertyType == qMetaTypeId<QList<qreal> >()) { assertType(QV4::CompiledData::Binding::Type_Number); QList<qreal> value; value.append(compilationUnit->bindingValueAsNumber(binding)); property->writeProperty(_qobject, &value, propertyWriteFlags); break; - } else if (property->propType() == qMetaTypeId<QList<int> >()) { + } else if (propertyType == qMetaTypeId<QList<int> >()) { assertType(QV4::CompiledData::Binding::Type_Number); double n = compilationUnit->bindingValueAsNumber(binding); QList<int> value; value.append(int(n)); property->writeProperty(_qobject, &value, propertyWriteFlags); break; - } else if (property->propType() == qMetaTypeId<QList<bool> >()) { + } else if (propertyType == qMetaTypeId<QList<bool> >()) { assertType(QV4::CompiledData::Binding::Type_Boolean); QList<bool> value; value.append(binding->valueAsBoolean()); property->writeProperty(_qobject, &value, propertyWriteFlags); break; - } else if (property->propType() == qMetaTypeId<QList<QUrl> >()) { + } else if (propertyType == qMetaTypeId<QList<QUrl> >()) { assertType(QV4::CompiledData::Binding::Type_String); QList<QUrl> value { QUrl(compilationUnit->bindingValueAsString(binding)) }; property->writeProperty(_qobject, &value, propertyWriteFlags); break; - } else if (property->propType() == qMetaTypeId<QList<QString> >()) { + } else if (propertyType == qMetaTypeId<QList<QString> >()) { assertOrNull(binding->evaluatesToString()); QList<QString> value; value.append(compilationUnit->bindingValueAsString(binding)); property->writeProperty(_qobject, &value, propertyWriteFlags); break; - } else if (property->propType() == qMetaTypeId<QJSValue>()) { + } else if (propertyType == qMetaTypeId<QJSValue>()) { QJSValue value; if (binding->type == QV4::CompiledData::Binding::Type_Boolean) { value = QJSValue(binding->valueAsBoolean()); @@ -627,12 +627,12 @@ void QQmlObjectCreator::setPropertyValue(const QQmlPropertyData *property, const // otherwise, try a custom type assignment QString stringValue = compilationUnit->bindingValueAsString(binding); - QQmlMetaType::StringConverter converter = QQmlMetaType::customStringConverter(property->propType()); + QQmlMetaType::StringConverter converter = QQmlMetaType::customStringConverter(property->propType().id()); Q_ASSERT(converter); QVariant value = (*converter)(stringValue); QMetaProperty metaProperty = _qobject->metaObject()->property(property->coreIndex()); - if (value.isNull() || metaProperty.userType() != property->propType()) { + if (value.isNull() || metaProperty.metaType() != property->propType()) { recordError(binding->location, tr("Cannot assign value %1 to property %2").arg(stringValue).arg(QString::fromUtf8(metaProperty.name()))); break; } @@ -664,7 +664,7 @@ void QQmlObjectCreator::setupBindings(bool applyDeferredBindings) if (_compiledObject->idNameIndex) { const QQmlPropertyData *idProperty = propertyData.last(); Q_ASSERT(!idProperty || !idProperty->isValid() || idProperty->name(_qobject) == QLatin1String("id")); - if (idProperty && idProperty->isValid() && idProperty->isWritable() && idProperty->propType() == QMetaType::QString) { + if (idProperty && idProperty->isValid() && idProperty->isWritable() && idProperty->propType().id() == QMetaType::QString) { QV4::CompiledData::Binding idBinding; idBinding.propertyNameIndex = 0; // Not used idBinding.flags = 0; @@ -806,7 +806,7 @@ bool QQmlObjectCreator::setPropertyBinding(const QQmlPropertyData *bindingProper } // ### resolve this at compile time - if (bindingProperty && bindingProperty->propType() == qMetaTypeId<QQmlScriptString>()) { + if (bindingProperty && bindingProperty->propType() == QMetaType::fromType<QQmlScriptString>()) { QQmlScriptString ss(compilationUnit->bindingValueAsScriptString(binding), context->asQQmlContext(), _scopeObject); ss.d.data()->bindingId = binding->type == QV4::CompiledData::Binding::Type_Script ? binding->value.compiledScriptIndex : (quint32)QQmlBinding::Invalid; @@ -843,8 +843,8 @@ bool QQmlObjectCreator::setPropertyBinding(const QQmlPropertyData *bindingProper const QQmlPropertyData *valueTypeProperty = nullptr; QObject *bindingTarget = _bindingTarget; - if (QQmlValueTypeFactory::isValueType(bindingProperty->propType())) { - valueType = QQmlGadgetPtrWrapper::instance(engine, bindingProperty->propType()); + if (QQmlValueTypeFactory::isValueType(bindingProperty->propType().id())) { + valueType = QQmlGadgetPtrWrapper::instance(engine, bindingProperty->propType().id()); if (!valueType) { recordError(binding->location, tr("Cannot set properties on %1 as it is null").arg(stringAt(binding->propertyNameIndex))); return false; @@ -1066,7 +1066,7 @@ bool QQmlObjectCreator::setPropertyBinding(const QQmlPropertyData *bindingProper int propertyWriteStatus = -1; void *argv[] = { nullptr, nullptr, &propertyWriteStatus, &propertyWriteFlags }; - if (const char *iid = QQmlMetaType::interfaceIId(bindingProperty->propType())) { + if (const char *iid = QQmlMetaType::interfaceIId(bindingProperty->propType().id())) { void *ptr = createdSubObject->qt_metacast(iid); if (ptr) { argv[0] = &ptr; @@ -1075,7 +1075,7 @@ bool QQmlObjectCreator::setPropertyBinding(const QQmlPropertyData *bindingProper recordError(binding->location, tr("Cannot assign object to interface property")); return false; } - } else if (bindingProperty->propType() == QMetaType::QVariant) { + } else if (bindingProperty->propType() == QMetaType::fromType<QVariant>()) { if (bindingProperty->isVarProperty()) { QV4::Scope scope(v4); QV4::ScopedValue wrappedObject(scope, QV4::QObjectWrapper::wrap(engine->handle(), createdSubObject)); @@ -1085,7 +1085,7 @@ bool QQmlObjectCreator::setPropertyBinding(const QQmlPropertyData *bindingProper argv[0] = &value; QMetaObject::metacall(_qobject, QMetaObject::WriteProperty, bindingProperty->coreIndex(), argv); } - } else if (bindingProperty->propType() == qMetaTypeId<QJSValue>()) { + } else if (bindingProperty->propType() == QMetaType::fromType<QJSValue>()) { QV4::Scope scope(v4); QV4::ScopedValue wrappedObject(scope, QV4::QObjectWrapper::wrap(engine->handle(), createdSubObject)); if (bindingProperty->isVarProperty()) { @@ -1102,7 +1102,7 @@ bool QQmlObjectCreator::setPropertyBinding(const QQmlPropertyData *bindingProper void *itemToAdd = createdSubObject; const char *iid = nullptr; - int listItemType = QQmlEnginePrivate::get(engine)->listType(bindingProperty->propType()); + int listItemType = QQmlEnginePrivate::get(engine)->listType(bindingProperty->propType().id()); if (listItemType != -1) iid = QQmlMetaType::interfaceIId(listItemType); if (iid) |