From 522fc6e6b63e6a62436b742ee4e146ec8a1929f6 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Tue, 15 Nov 2022 11:53:21 +0100 Subject: QML: Try QMetaType conversion in VariantObject's valueOf() Since we're explicitly dealing with a QVariant here, the metatype conversion is adequate. We do the same already for toString(). Change-Id: I38c17b40da73ff0f0274e7d65b462eda1af2235a Reviewed-by: Semih Yavuz Reviewed-by: Fabian Kosmale --- src/qml/jsruntime/qv4variantobject.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/qml/jsruntime/qv4variantobject.cpp') diff --git a/src/qml/jsruntime/qv4variantobject.cpp b/src/qml/jsruntime/qv4variantobject.cpp index 94f95ce813..ccea9cac2a 100644 --- a/src/qml/jsruntime/qv4variantobject.cpp +++ b/src/qml/jsruntime/qv4variantobject.cpp @@ -131,7 +131,17 @@ ReturnedValue VariantPrototype::method_valueOf(const FunctionObject *b, const Va return Encode(v.toBool()); default: if (QMetaType(v.metaType()).flags() & QMetaType::IsEnumeration) - RETURN_RESULT(Encode(v.toInt())); + return Encode(v.toInt()); + if (v.canConvert()) + return Encode(v.toDouble()); + if (v.canConvert()) + return Encode(v.toInt()); + if (v.canConvert()) + return Encode(v.toUInt()); + if (v.canConvert()) + return Encode(v.toBool()); + if (v.canConvert()) + return Encode(b->engine()->newString(v.toString())); break; } } -- cgit v1.2.3