aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/v8/qqmlbuiltinfunctions.cpp
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2020-09-18 16:34:11 +0200
committerUlf Hermann <ulf.hermann@qt.io>2020-09-23 14:54:47 +0200
commit2d02307e73b63c8d2ce935a9d7dd7b177c017f87 (patch)
tree8751f6c3354d24bd4f13182e5178a98b8fca0263 /src/qml/qml/v8/qqmlbuiltinfunctions.cpp
parent39b5be920cf65979df669d02a3410a7396be6ada (diff)
Condense the different value type creation functions into one
They all did the same thing. Change-Id: I7661b19ad16c0713d46c4df337899e3897349b2e Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/qml/qml/v8/qqmlbuiltinfunctions.cpp')
-rw-r--r--src/qml/qml/v8/qqmlbuiltinfunctions.cpp25
1 files changed, 14 insertions, 11 deletions
diff --git a/src/qml/qml/v8/qqmlbuiltinfunctions.cpp b/src/qml/qml/v8/qqmlbuiltinfunctions.cpp
index ff05c0c2ff..12e54f0895 100644
--- a/src/qml/qml/v8/qqmlbuiltinfunctions.cpp
+++ b/src/qml/qml/v8/qqmlbuiltinfunctions.cpp
@@ -460,12 +460,12 @@ ReturnedValue QtObject::method_font(const FunctionObject *b, const Value *, cons
if (argc != 1 || !argv[0].isObject())
THROW_GENERIC_ERROR("Qt.font(): Invalid arguments");
- bool ok = false;
- QVariant v = QQml_valueTypeProvider()->createVariantFromJsObject(
+ QVariant v;
+ if (!QQml_valueTypeProvider()->createValueType(
QMetaType::QFont, QJSValuePrivate::fromReturnedValue(argv[0].asReturnedValue()),
- &ok);
- if (!ok)
+ &v)) {
THROW_GENERIC_ERROR("Qt.font(): Invalid argument: no valid font subproperties specified");
+ }
return scope.engine->fromVariant(v);
}
@@ -482,7 +482,9 @@ static ReturnedValue createValueType(const FunctionObject *b, const Value *argv,
for (int i = 0; i < parameters; ++i)
params.setProperty(i, QJSValuePrivate::fromReturnedValue(argv[i].asReturnedValue()));
- return scope.engine->fromVariant(QQml_valueTypeProvider()->createValueType(type, params));
+ QVariant variant;
+ QQml_valueTypeProvider()->createValueType(type, params, &variant);
+ return scope.engine->fromVariant(variant);
}
/*!
@@ -551,17 +553,18 @@ ReturnedValue QtObject::method_matrix4x4(const FunctionObject *b, const Value *,
QV4::Scope scope(b);
if (argc == 0) {
- return scope.engine->fromVariant(QQml_valueTypeProvider()->createValueType(
- QMetaType::QMatrix4x4, QJSValue()));
+ QVariant variant;
+ QQml_valueTypeProvider()->createValueType(QMetaType::QMatrix4x4, QJSValue(), &variant);
+ return scope.engine->fromVariant(variant);
}
if (argc == 1 && argv[0].isObject()) {
- bool ok = false;
- QVariant v = QQml_valueTypeProvider()->createVariantFromJsObject(
+ QVariant v;
+ if (!QQml_valueTypeProvider()->createValueType(
QMetaType::QMatrix4x4,
- QJSValuePrivate::fromReturnedValue(argv[0].asReturnedValue()), &ok);
- if (!ok)
+ QJSValuePrivate::fromReturnedValue(argv[0].asReturnedValue()), &v)) {
THROW_GENERIC_ERROR("Qt.matrix4x4(): Invalid argument: not a valid matrix4x4 values array");
+ }
return scope.engine->fromVariant(v);
}