diff options
author | Lars Knoll <lars.knoll@theqtcompany.com> | 2015-01-02 15:07:35 +0100 |
---|---|---|
committer | Lars Knoll <lars.knoll@digia.com> | 2015-01-09 10:27:57 +0100 |
commit | ca977a0c8fa25d5df4dbddba08bc2fb022df7c1c (patch) | |
tree | 24953329bba5bbb7ea8611d09098b8a6c8ba39c3 /src/qml/qml | |
parent | 7041eb353a4ad416f51245cc17342e16b3a02a9b (diff) |
Cleanup variant conversion code
Make public methods proper members of the ExecutionEngine, and
move private methods into the .cpp file only.
Change-Id: I3ca49e39bb1c4e559a2c63346e6ae6cfa446147d
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/qml')
-rw-r--r-- | src/qml/qml/qqmlbinding.cpp | 2 | ||||
-rw-r--r-- | src/qml/qml/qqmlboundsignal.cpp | 4 | ||||
-rw-r--r-- | src/qml/qml/qqmlcontextwrapper.cpp | 2 | ||||
-rw-r--r-- | src/qml/qml/qqmlexpression.cpp | 2 | ||||
-rw-r--r-- | src/qml/qml/qqmlproperty.cpp | 6 | ||||
-rw-r--r-- | src/qml/qml/qqmlvaluetypewrapper.cpp | 5 | ||||
-rw-r--r-- | src/qml/qml/qqmlvmemetaobject.cpp | 8 | ||||
-rw-r--r-- | src/qml/qml/v8/qqmlbuiltinfunctions.cpp | 54 |
8 files changed, 42 insertions, 41 deletions
diff --git a/src/qml/qml/qqmlbinding.cpp b/src/qml/qml/qqmlbinding.cpp index 6e45ca8bbb..61bcb260f7 100644 --- a/src/qml/qml/qqmlbinding.cpp +++ b/src/qml/qml/qqmlbinding.cpp @@ -260,7 +260,7 @@ QVariant QQmlBinding::evaluate() ep->dereferenceScarceResources(); - return QV4::ExecutionEngine::toVariant(scope.engine, result, qMetaTypeId<QList<QObject*> >()); + return scope.engine->toVariant(result, qMetaTypeId<QList<QObject*> >()); } QString QQmlBinding::expressionIdentifier(QQmlJavaScriptExpression *e) diff --git a/src/qml/qml/qqmlboundsignal.cpp b/src/qml/qml/qqmlboundsignal.cpp index d605e1a829..1703d0fbd5 100644 --- a/src/qml/qml/qqmlboundsignal.cpp +++ b/src/qml/qml/qqmlboundsignal.cpp @@ -261,7 +261,7 @@ void QQmlBoundSignalExpression::evaluate(void **a) // for several cases (such as QVariant type and QObject-derived types) //args[ii] = engine->metaTypeToJS(type, a[ii + 1]); if (type == QMetaType::QVariant) { - callData->args[ii] = QV4::ExecutionEngine::fromVariant(scope.engine, *((QVariant *)a[ii + 1])); + callData->args[ii] = scope.engine->fromVariant(*((QVariant *)a[ii + 1])); } else if (type == QMetaType::Int) { //### optimization. Can go away if we switch to metaTypeToJS, or be expanded otherwise callData->args[ii] = QV4::Primitive::fromInt32(*reinterpret_cast<const int*>(a[ii + 1])); @@ -273,7 +273,7 @@ void QQmlBoundSignalExpression::evaluate(void **a) else callData->args[ii] = QV4::QObjectWrapper::wrap(ep->v4engine(), *reinterpret_cast<QObject* const *>(a[ii + 1])); } else { - callData->args[ii] = QV4::ExecutionEngine::fromVariant(scope.engine, QVariant(type, a[ii + 1])); + callData->args[ii] = scope.engine->fromVariant(QVariant(type, a[ii + 1])); } } diff --git a/src/qml/qml/qqmlcontextwrapper.cpp b/src/qml/qml/qqmlcontextwrapper.cpp index 5a6bf70727..f3551d8488 100644 --- a/src/qml/qml/qqmlcontextwrapper.cpp +++ b/src/qml/qml/qqmlcontextwrapper.cpp @@ -227,7 +227,7 @@ ReturnedValue QmlContextWrapper::get(Managed *m, String *name, bool *hasProperty QQmlContextPrivate::context_at); return QmlListWrapper::create(v4, prop, qMetaTypeId<QQmlListProperty<QObject> >()); } else { - return QV4::ExecutionEngine::fromVariant(scope.engine, cp->propertyValues.at(propertyIdx)); + return scope.engine->fromVariant(cp->propertyValues.at(propertyIdx)); } } } diff --git a/src/qml/qml/qqmlexpression.cpp b/src/qml/qml/qqmlexpression.cpp index f44357d4f8..1e31a8f638 100644 --- a/src/qml/qml/qqmlexpression.cpp +++ b/src/qml/qml/qqmlexpression.cpp @@ -276,7 +276,7 @@ QVariant QQmlExpressionPrivate::value(bool *isUndefined) QV4::Scope scope(QV8Engine::getV4(ep->v8engine())); QV4::ScopedValue result(scope, v4value(isUndefined)); if (!hasError()) - rv = QV4::ExecutionEngine::toVariant(scope.engine, result, -1); + rv = scope.engine->toVariant(result, -1); } ep->dereferenceScarceResources(); // "release" scarce resources if top-level expression evaluation is complete. diff --git a/src/qml/qml/qqmlproperty.cpp b/src/qml/qml/qqmlproperty.cpp index 2e25186f5c..b22943ebff 100644 --- a/src/qml/qml/qqmlproperty.cpp +++ b/src/qml/qml/qqmlproperty.cpp @@ -1513,13 +1513,13 @@ bool QQmlPropertyPrivate::writeBinding(QObject *object, if (isUndefined) { } else if (core.isQList()) { - value = QV4::ExecutionEngine::toVariant(QV8Engine::getV4(v8engine), result, qMetaTypeId<QList<QObject *> >()); + value = QV8Engine::getV4(v8engine)->toVariant(result, qMetaTypeId<QList<QObject *> >()); } else if (result->isNull() && core.isQObject()) { value = QVariant::fromValue((QObject *)0); } else if (core.propType == qMetaTypeId<QList<QUrl> >()) { - value = resolvedUrlSequence(QV4::ExecutionEngine::toVariant(QV8Engine::getV4(v8engine), result, qMetaTypeId<QList<QUrl> >()), context); + value = resolvedUrlSequence(QV8Engine::getV4(v8engine)->toVariant(result, qMetaTypeId<QList<QUrl> >()), context); } else if (!isVarProperty && type != qMetaTypeId<QJSValue>()) { - value = QV4::ExecutionEngine::toVariant(QV8Engine::getV4(v8engine), result, type); + value = QV8Engine::getV4(v8engine)->toVariant(result, type); } if (expression->hasError()) { diff --git a/src/qml/qml/qqmlvaluetypewrapper.cpp b/src/qml/qml/qqmlvaluetypewrapper.cpp index 3918dc1cae..fb52fba1fa 100644 --- a/src/qml/qml/qqmlvaluetypewrapper.cpp +++ b/src/qml/qml/qqmlvaluetypewrapper.cpp @@ -327,7 +327,8 @@ ReturnedValue QQmlValueTypeWrapper::get(Managed *m, String *name, bool *hasPrope QVariant v(result->propType, (void *)0); void *args[] = { v.data(), 0 }; metaObject->d.static_metacall(reinterpret_cast<QObject*>(gadget), QMetaObject::ReadProperty, index, args); - return QV4::ExecutionEngine::fromVariant(v4, v); + return v4->fromVariant(v); +#undef VALUE_TYPE_ACCESSOR } void QQmlValueTypeWrapper::put(Managed *m, String *name, const ValueRef value) @@ -399,7 +400,7 @@ void QQmlValueTypeWrapper::put(Managed *m, String *name, const ValueRef value) if (newBinding) return; - QVariant v = QV4::ExecutionEngine::toVariant(v4, value, property.userType()); + QVariant v = v4->toVariant(value, property.userType()); if (property.isEnumType() && (QMetaType::Type)v.type() == QMetaType::Double) v = v.toInt(); diff --git a/src/qml/qml/qqmlvmemetaobject.cpp b/src/qml/qml/qqmlvmemetaobject.cpp index 59fae5fcbd..6636b3a8e4 100644 --- a/src/qml/qml/qqmlvmemetaobject.cpp +++ b/src/qml/qml/qqmlvmemetaobject.cpp @@ -945,7 +945,7 @@ int QQmlVMEMetaObject::metaCall(QMetaObject::Call c, int _id, void **a) callData->thisObject = ep->v8engine()->global(); for (int ii = 0; ii < data->parameterCount; ++ii) - callData->args[ii] = QV4::ExecutionEngine::fromVariant(scope.engine, *(QVariant *)a[ii + 1]); + callData->args[ii] = scope.engine->fromVariant(*(QVariant *)a[ii + 1]); QV4::ScopedValue result(scope); result = function->call(callData); @@ -955,7 +955,7 @@ int QQmlVMEMetaObject::metaCall(QMetaObject::Call c, int _id, void **a) ep->warning(error); if (a[0]) *(QVariant *)a[0] = QVariant(); } else { - if (a[0]) *(QVariant *)a[0] = QV4::ExecutionEngine::toVariant(scope.engine, result, 0); + if (a[0]) *(QVariant *)a[0] = scope.engine->toVariant(result, 0); } ep->dereferenceScarceResources(); // "release" scarce resources if top-level expression evaluation is complete. @@ -1004,7 +1004,7 @@ QVariant QQmlVMEMetaObject::readPropertyAsVariant(int id) QV4::Scope scope(v4); QV4::ScopedObject o(scope, varProperties.value()); QV4::ScopedValue val(scope, o->getIndexed(id - firstVarPropertyIndex)); - return QV4::ExecutionEngine::toVariant(scope.engine, val, -1); + return scope.engine->toVariant(val, -1); } return QVariant(); } else { @@ -1077,7 +1077,7 @@ void QQmlVMEMetaObject::writeProperty(int id, const QVariant &value) // And, if the new value is a scarce resource, we need to ensure that it does not get // automatically released by the engine until no other references to it exist. - QV4::ScopedValue newv(scope, QV4::ExecutionEngine::fromVariant(scope.engine, value)); + QV4::ScopedValue newv(scope, scope.engine->fromVariant(value)); QV4::Scoped<QV4::VariantObject> v(scope, newv); if (!!v) v->addVmePropertyReference(); diff --git a/src/qml/qml/v8/qqmlbuiltinfunctions.cpp b/src/qml/qml/v8/qqmlbuiltinfunctions.cpp index 8c57615d90..eb4e7c4d23 100644 --- a/src/qml/qml/v8/qqmlbuiltinfunctions.cpp +++ b/src/qml/qml/v8/qqmlbuiltinfunctions.cpp @@ -183,7 +183,7 @@ ReturnedValue QtObject::method_rgba(QV4::CallContext *ctx) if (a < 0.0) a=0.0; if (a > 1.0) a=1.0; - return QV4::ExecutionEngine::fromVariant(ctx->engine(), QQml_colorProvider()->fromRgbF(r, g, b, a)); + return ctx->engine()->fromVariant(QQml_colorProvider()->fromRgbF(r, g, b, a)); } /*! @@ -212,7 +212,7 @@ ReturnedValue QtObject::method_hsla(QV4::CallContext *ctx) if (a < 0.0) a=0.0; if (a > 1.0) a=1.0; - return QV4::ExecutionEngine::fromVariant(ctx->engine(), QQml_colorProvider()->fromHslF(h, s, l, a)); + return ctx->engine()->fromVariant(QQml_colorProvider()->fromHslF(h, s, l, a)); } /*! @@ -230,7 +230,7 @@ ReturnedValue QtObject::method_colorEqual(QV4::CallContext *ctx) bool ok = false; - QVariant lhs = QV4::ExecutionEngine::toVariant(ctx->d()->engine, ctx->d()->callData->args[0], -1); + QVariant lhs = ctx->d()->engine->toVariant(ctx->d()->callData->args[0], -1); if (lhs.userType() == QVariant::String) { lhs = QQmlStringConverters::colorFromString(lhs.toString(), &ok); if (!ok) { @@ -240,7 +240,7 @@ ReturnedValue QtObject::method_colorEqual(QV4::CallContext *ctx) V4THROW_ERROR("Qt.colorEqual(): Invalid arguments"); } - QVariant rhs = QV4::ExecutionEngine::toVariant(ctx->engine(), ctx->d()->callData->args[1], -1); + QVariant rhs = ctx->engine()->toVariant(ctx->d()->callData->args[1], -1); if (rhs.userType() == QVariant::String) { rhs = QQmlStringConverters::colorFromString(rhs.toString(), &ok); if (!ok) { @@ -271,7 +271,7 @@ ReturnedValue QtObject::method_rect(QV4::CallContext *ctx) double w = ctx->d()->callData->args[2].toNumber(); double h = ctx->d()->callData->args[3].toNumber(); - return QV4::ExecutionEngine::fromVariant(ctx->engine(), QVariant::fromValue(QRectF(x, y, w, h))); + return ctx->engine()->fromVariant(QVariant::fromValue(QRectF(x, y, w, h))); } /*! @@ -286,7 +286,7 @@ ReturnedValue QtObject::method_point(QV4::CallContext *ctx) double x = ctx->d()->callData->args[0].toNumber(); double y = ctx->d()->callData->args[1].toNumber(); - return QV4::ExecutionEngine::fromVariant(ctx->engine(), QVariant::fromValue(QPointF(x, y))); + return ctx->engine()->fromVariant(QVariant::fromValue(QPointF(x, y))); } /*! @@ -301,7 +301,7 @@ ReturnedValue QtObject::method_size(QV4::CallContext *ctx) double w = ctx->d()->callData->args[0].toNumber(); double h = ctx->d()->callData->args[1].toNumber(); - return QV4::ExecutionEngine::fromVariant(ctx->engine(), QVariant::fromValue(QSizeF(w, h))); + return ctx->engine()->fromVariant(QVariant::fromValue(QSizeF(w, h))); } /*! @@ -322,7 +322,7 @@ ReturnedValue QtObject::method_font(QV4::CallContext *ctx) QVariant v = QQml_valueTypeProvider()->createVariantFromJsObject(QMetaType::QFont, QQmlV4Handle(ctx->d()->callData->args[0]), v4, &ok); if (!ok) V4THROW_ERROR("Qt.font(): Invalid argument: no valid font subproperties specified"); - return QV4::ExecutionEngine::fromVariant(ctx->engine(), v); + return ctx->engine()->fromVariant(v); } @@ -341,7 +341,7 @@ ReturnedValue QtObject::method_vector2d(QV4::CallContext *ctx) xy[1] = ctx->d()->callData->args[1].toNumber(); const void *params[] = { xy }; - return QV4::ExecutionEngine::fromVariant(ctx->engine(), QQml_valueTypeProvider()->createValueType(QMetaType::QVector2D, 1, params)); + return ctx->engine()->fromVariant(QQml_valueTypeProvider()->createValueType(QMetaType::QVector2D, 1, params)); } /*! @@ -359,7 +359,7 @@ ReturnedValue QtObject::method_vector3d(QV4::CallContext *ctx) xyz[2] = ctx->d()->callData->args[2].toNumber(); const void *params[] = { xyz }; - return QV4::ExecutionEngine::fromVariant(ctx->engine(), QQml_valueTypeProvider()->createValueType(QMetaType::QVector3D, 1, params)); + return ctx->engine()->fromVariant(QQml_valueTypeProvider()->createValueType(QMetaType::QVector3D, 1, params)); } /*! @@ -378,7 +378,7 @@ ReturnedValue QtObject::method_vector4d(QV4::CallContext *ctx) xyzw[3] = ctx->d()->callData->args[3].toNumber(); const void *params[] = { xyzw }; - return QV4::ExecutionEngine::fromVariant(ctx->engine(), QQml_valueTypeProvider()->createValueType(QMetaType::QVector4D, 1, params)); + return ctx->engine()->fromVariant(QQml_valueTypeProvider()->createValueType(QMetaType::QVector4D, 1, params)); } /*! @@ -397,7 +397,7 @@ ReturnedValue QtObject::method_quaternion(QV4::CallContext *ctx) sxyz[3] = ctx->d()->callData->args[3].toNumber(); const void *params[] = { sxyz }; - return QV4::ExecutionEngine::fromVariant(ctx->engine(), QQml_valueTypeProvider()->createValueType(QMetaType::QQuaternion, 1, params)); + return ctx->engine()->fromVariant(QQml_valueTypeProvider()->createValueType(QMetaType::QQuaternion, 1, params)); } /*! @@ -416,7 +416,7 @@ ReturnedValue QtObject::method_matrix4x4(QV4::CallContext *ctx) QVariant v = QQml_valueTypeProvider()->createVariantFromJsObject(QMetaType::QMatrix4x4, QQmlV4Handle(ctx->d()->callData->args[0]), v4, &ok); if (!ok) V4THROW_ERROR("Qt.matrix4x4(): Invalid argument: not a valid matrix4x4 values array"); - return QV4::ExecutionEngine::fromVariant(ctx->engine(), v); + return ctx->engine()->fromVariant(v); } if (ctx->d()->callData->argc != 16) @@ -441,7 +441,7 @@ ReturnedValue QtObject::method_matrix4x4(QV4::CallContext *ctx) vals[15] = ctx->d()->callData->args[15].toNumber(); const void *params[] = { vals }; - return QV4::ExecutionEngine::fromVariant(ctx->engine(), QQml_valueTypeProvider()->createValueType(QMetaType::QMatrix4x4, 1, params)); + return ctx->engine()->fromVariant(QQml_valueTypeProvider()->createValueType(QMetaType::QMatrix4x4, 1, params)); } /*! @@ -463,7 +463,7 @@ ReturnedValue QtObject::method_lighter(QV4::CallContext *ctx) if (ctx->d()->callData->argc != 1 && ctx->d()->callData->argc != 2) V4THROW_ERROR("Qt.lighter(): Invalid arguments"); - QVariant v = QV4::ExecutionEngine::toVariant(ctx->engine(), ctx->d()->callData->args[0], -1); + QVariant v = ctx->engine()->toVariant(ctx->d()->callData->args[0], -1); if (v.userType() == QVariant::String) { bool ok = false; v = QQmlStringConverters::colorFromString(v.toString(), &ok); @@ -478,7 +478,7 @@ ReturnedValue QtObject::method_lighter(QV4::CallContext *ctx) if (ctx->d()->callData->argc == 2) factor = ctx->d()->callData->args[1].toNumber(); - return QV4::ExecutionEngine::fromVariant(ctx->engine(), QQml_colorProvider()->lighter(v, factor)); + return ctx->engine()->fromVariant(QQml_colorProvider()->lighter(v, factor)); } /*! @@ -501,7 +501,7 @@ ReturnedValue QtObject::method_darker(QV4::CallContext *ctx) if (ctx->d()->callData->argc != 1 && ctx->d()->callData->argc != 2) V4THROW_ERROR("Qt.darker(): Invalid arguments"); - QVariant v = QV4::ExecutionEngine::toVariant(ctx->engine(), ctx->d()->callData->args[0], -1); + QVariant v = ctx->engine()->toVariant(ctx->d()->callData->args[0], -1); if (v.userType() == QVariant::String) { bool ok = false; v = QQmlStringConverters::colorFromString(v.toString(), &ok); @@ -516,7 +516,7 @@ ReturnedValue QtObject::method_darker(QV4::CallContext *ctx) if (ctx->d()->callData->argc == 2) factor = ctx->d()->callData->args[1].toNumber(); - return QV4::ExecutionEngine::fromVariant(ctx->engine(), QQml_colorProvider()->darker(v, factor)); + return ctx->engine()->fromVariant(QQml_colorProvider()->darker(v, factor)); } /*! @@ -549,7 +549,7 @@ ReturnedValue QtObject::method_tint(QV4::CallContext *ctx) V4THROW_ERROR("Qt.tint(): Invalid arguments"); // base color - QVariant v1 = QV4::ExecutionEngine::toVariant(ctx->engine(), ctx->d()->callData->args[0], -1); + QVariant v1 = ctx->engine()->toVariant(ctx->d()->callData->args[0], -1); if (v1.userType() == QVariant::String) { bool ok = false; v1 = QQmlStringConverters::colorFromString(v1.toString(), &ok); @@ -561,7 +561,7 @@ ReturnedValue QtObject::method_tint(QV4::CallContext *ctx) } // tint color - QVariant v2 = QV4::ExecutionEngine::toVariant(ctx->engine(), ctx->d()->callData->args[1], -1); + QVariant v2 = ctx->engine()->toVariant(ctx->d()->callData->args[1], -1); if (v2.userType() == QVariant::String) { bool ok = false; v2 = QQmlStringConverters::colorFromString(v2.toString(), &ok); @@ -572,7 +572,7 @@ ReturnedValue QtObject::method_tint(QV4::CallContext *ctx) return QV4::Encode::null(); } - return QV4::ExecutionEngine::fromVariant(ctx->engine(), QQml_colorProvider()->tint(v1, v2)); + return ctx->engine()->fromVariant(QQml_colorProvider()->tint(v1, v2)); } /*! @@ -598,7 +598,7 @@ ReturnedValue QtObject::method_formatDate(QV4::CallContext *ctx) QV4::Scope scope(ctx); Qt::DateFormat enumFormat = Qt::DefaultLocaleShortDate; - QDate date = QV4::ExecutionEngine::toVariant(ctx->engine(), ctx->d()->callData->args[0], -1).toDateTime().date(); + QDate date = ctx->engine()->toVariant(ctx->d()->callData->args[0], -1).toDateTime().date(); QString formattedDate; if (ctx->d()->callData->argc == 2) { QV4::ScopedString s(scope, ctx->d()->callData->args[1]); @@ -640,7 +640,7 @@ ReturnedValue QtObject::method_formatTime(QV4::CallContext *ctx) V4THROW_ERROR("Qt.formatTime(): Invalid arguments"); QV4::Scope scope(ctx); - QVariant argVariant = QV4::ExecutionEngine::toVariant(ctx->engine(), ctx->d()->callData->args[0], -1); + QVariant argVariant = ctx->engine()->toVariant(ctx->d()->callData->args[0], -1); QTime time; if (ctx->d()->callData->args[0].asDateObject() || (argVariant.type() == QVariant::String)) time = argVariant.toDateTime().time(); @@ -765,7 +765,7 @@ ReturnedValue QtObject::method_formatDateTime(QV4::CallContext *ctx) QV4::Scope scope(ctx); Qt::DateFormat enumFormat = Qt::DefaultLocaleShortDate; - QDateTime dt = QV4::ExecutionEngine::toVariant(ctx->engine(), ctx->d()->callData->args[0], -1).toDateTime(); + QDateTime dt = ctx->engine()->toVariant(ctx->d()->callData->args[0], -1).toDateTime(); QString formattedDt; if (ctx->d()->callData->argc == 2) { QV4::ScopedString s(scope, ctx->d()->callData->args[1]); @@ -796,7 +796,7 @@ ReturnedValue QtObject::method_openUrlExternally(QV4::CallContext *ctx) return QV4::Encode(false); QUrl url(Value::fromReturnedValue(method_resolvedUrl(ctx)).toQStringNoThrow()); - return QV4::ExecutionEngine::fromVariant(ctx->engine(), QQml_guiProvider()->openUrlExternally(url)); + return ctx->engine()->fromVariant(QQml_guiProvider()->openUrlExternally(url)); } /*! @@ -807,7 +807,7 @@ ReturnedValue QtObject::method_resolvedUrl(QV4::CallContext *ctx) { QV8Engine *v8engine = ctx->d()->engine->v8Engine; - QUrl url = QV4::ExecutionEngine::toVariant(ctx->engine(), ctx->d()->callData->args[0], -1).toUrl(); + QUrl url = ctx->engine()->toVariant(ctx->d()->callData->args[0], -1).toUrl(); QQmlEngine *e = v8engine->engine(); QQmlEnginePrivate *p = 0; if (e) p = QQmlEnginePrivate::get(e); @@ -831,7 +831,7 @@ ReturnedValue QtObject::method_fontFamilies(CallContext *ctx) if (ctx->d()->callData->argc != 0) V4THROW_ERROR("Qt.fontFamilies(): Invalid arguments"); - return QV4::ExecutionEngine::fromVariant(ctx->engine(), QVariant(QQml_guiProvider()->fontFamilies())); + return ctx->engine()->fromVariant(QVariant(QQml_guiProvider()->fontFamilies())); } /*! |