aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/v8/qv8valuetypewrapper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/qml/v8/qv8valuetypewrapper.cpp')
-rw-r--r--src/qml/qml/v8/qv8valuetypewrapper.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/qml/qml/v8/qv8valuetypewrapper.cpp b/src/qml/qml/v8/qv8valuetypewrapper.cpp
index cf2c13fce9..cdee5a4771 100644
--- a/src/qml/qml/v8/qv8valuetypewrapper.cpp
+++ b/src/qml/qml/v8/qv8valuetypewrapper.cpp
@@ -44,6 +44,7 @@
#include <private/qqmlvaluetype_p.h>
#include <private/qqmlbinding_p.h>
+#include <private/qqmlglobal_p.h>
QT_BEGIN_NAMESPACE
@@ -148,6 +149,14 @@ v8::Local<v8::Object> QV8ValueTypeWrapper::newValueType(const QVariant &value, Q
return rv;
}
+QVariant QV8ValueTypeWrapper::toVariant(v8::Handle<v8::Object> obj, int typeHint, bool *succeeded)
+{
+ // NOTE: obj must not be an external resource object (ie, wrapper object)
+ // instead, it is a normal js object which one of the value-type providers
+ // may know how to convert to the given type.
+ return QQml_valueTypeProvider()->createVariantFromJsObject(typeHint, QQmlV8Handle::fromHandle(obj), m_engine, succeeded);
+}
+
QVariant QV8ValueTypeWrapper::toVariant(v8::Handle<v8::Object> obj)
{
QV8ValueTypeResource *r = v8_resource_cast<QV8ValueTypeResource>(obj);