diff --git src/qml/qml/v8/qv8qobjectwrapper.cpp src/qml/qml/v8/qv8qobjectwrapper.cpp index fa81838..57549b3 100644 --- src/qml/qml/v8/qv8qobjectwrapper.cpp +++ src/qml/qml/v8/qv8qobjectwrapper.cpp @@ -453,7 +453,8 @@ static v8::Handle LoadProperty(QV8Engine *engine, QObject *object, if (QQmlValueType *valueType = QQmlValueTypeFactory::valueType(property.propType)) return engine->newValueType(object, property.coreIndex, valueType); - } else { + } + { Q_ASSERT(notifier == 0); // see if it's a sequence type diff --git src/qml/qml/v8/qv8sequencewrapper_p_p.h src/qml/qml/v8/qv8sequencewrapper_p_p.h index 009e770..63f062b 100644 --- src/qml/qml/v8/qv8sequencewrapper_p_p.h +++ src/qml/qml/v8/qv8sequencewrapper_p_p.h @@ -55,6 +55,7 @@ #include #include +#include QT_BEGIN_NAMESPACE @@ -214,6 +215,21 @@ static QString convertUrlToString(QV8Engine *, const QUrl &v) return v.toString(); } +static QVariant convertV8ValueToVariant(QV8Engine *e, v8::Handle v) +{ + return e->toVariant(v, QVariant::UserType); +} + +static v8::Handle convertVariantToV8Value(QV8Engine *e, QVariant v) +{ + return e->fromVariant(v); // What's the difference between this and variantToJS? +} + +static QString convertVariantToString(QV8Engine *e, QVariant v) +{ + return e->toString(e->fromVariant(v)); +} + /* \internal @@ -240,7 +256,8 @@ static QString convertUrlToString(QV8Engine *, const QUrl &v) F(bool, Bool, QList, false) \ F(QString, String, QList, QString()) \ F(QString, QString, QStringList, QString()) \ - F(QUrl, Url, QList, QUrl()) + F(QUrl, Url, QList, QUrl()) \ + F(QVariant, Variant, QList, QVariant()) #define QML_SEQUENCE_TYPE_RESOURCE(SequenceElementType, SequenceElementTypeName, SequenceType, DefaultValue, ConversionToV8fn, ConversionFromV8fn, ToStringfn) \ QT_END_NAMESPACE \