X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=tests%2Fauto%2Fdeclarative%2Fqdeclarativeecmascript%2Ftesttypes.h;h=d413209062b1a1154e6a7e2222216b8b6a24360a;hb=45b14259fc0cf704692df1c00da511527d1fba1d;hp=12563d658842f6807e7f51ceb54d12820f55f782;hpb=46e54ea850de93ca46ad9e374714f5a30ddf7dfe;p=profile%2Fivi%2Fqtdeclarative.git diff --git a/tests/auto/declarative/qdeclarativeecmascript/testtypes.h b/tests/auto/declarative/qdeclarativeecmascript/testtypes.h index 12563d6..d413209 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/testtypes.h +++ b/tests/auto/declarative/qdeclarativeecmascript/testtypes.h @@ -1,8 +1,7 @@ /**************************************************************************** ** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/ ** ** This file is part of the test suite of the Qt Toolkit. ** @@ -35,6 +34,7 @@ ** ** ** +** ** $QT_END_LICENSE$ ** ****************************************************************************/ @@ -57,7 +57,6 @@ #include #include -#include #include #include @@ -94,6 +93,7 @@ class MyQmlObject : public QObject Q_PROPERTY(int value READ value WRITE setValue) Q_PROPERTY(int console READ console CONSTANT) Q_PROPERTY(QString stringProperty READ stringProperty WRITE setStringProperty NOTIFY stringChanged) + Q_PROPERTY(QUrl urlProperty READ urlProperty WRITE setUrlProperty NOTIFY urlChanged) Q_PROPERTY(QObject *objectProperty READ objectProperty WRITE setObjectProperty NOTIFY objectChanged) Q_PROPERTY(QDeclarativeListProperty objectListProperty READ objectListProperty CONSTANT) Q_PROPERTY(int resettableProperty READ resettableProperty WRITE setResettableProperty RESET resetProperty) @@ -119,6 +119,15 @@ public: emit stringChanged(); } + QUrl urlProperty() const { return m_url; } + void setUrlProperty(const QUrl &url) + { + if (url == m_url) + return; + m_url = url; + emit urlChanged(); + } + QObject *objectProperty() const { return m_object; } void setObjectProperty(QObject *obj) { if (obj == m_object) @@ -163,6 +172,7 @@ public: int value; }; QVariant variant() const { return m_variant; } + QJSValue qjsvalue() const { return m_qjsvalue; } int intProperty() const { return m_intProperty; } void setIntProperty(int i) { m_intProperty = i; emit intChanged(); } @@ -171,11 +181,13 @@ signals: void basicSignal(); void argumentSignal(int a, QString b, qreal c, MyEnum2 d, Qt::MouseButtons e); void stringChanged(); + void urlChanged(); void objectChanged(); void anotherBasicSignal(); void thirdBasicSignal(); void signalWithUnknownType(const MyQmlObject::MyType &arg); void signalWithVariant(const QVariant &arg); + void signalWithQJSValue(const QJSValue &arg); void intChanged(); public slots: @@ -185,6 +197,7 @@ public slots: void setString(const QString &s) { m_string = s; } void myinvokable(MyQmlObject *o) { myinvokableObject = o; } void variantMethod(const QVariant &v) { m_variant = v; } + void qjsvalueMethod(const QJSValue &v) { m_qjsvalue = v; } void v8function(QDeclarativeV8Function*); private: @@ -194,11 +207,13 @@ private: QObject *m_object; QString m_string; + QUrl m_url; QList m_objectQList; int m_value; int m_resetProperty; QRegExp m_regExp; QVariant m_variant; + QJSValue m_qjsvalue; int m_intProperty; }; @@ -1016,6 +1031,7 @@ public: { CircularReferenceObject *retn = new CircularReferenceObject(parent); retn->m_dtorCount = m_dtorCount; + retn->m_engine = m_engine; return retn; } @@ -1024,17 +1040,23 @@ public: m_referenced = other; } - static void callback(QV8GCCallback::Referencer *r, QV8GCCallback::Node *n) + static void callback(QV8GCCallback::Node *n) { CircularReferenceObject *cro = static_cast(n); if (cro->m_referenced) { - r->addRelationship(cro, cro->m_referenced); + cro->m_engine->addRelationshipForGC(cro, cro->m_referenced); } } + void setEngine(QDeclarativeEngine* declarativeEngine) + { + m_engine = QDeclarativeEnginePrivate::get(declarativeEngine)->v8engine(); + } + private: QObject *m_referenced; int *m_dtorCount; + QV8Engine* m_engine; }; Q_DECLARE_METATYPE(CircularReferenceObject*) @@ -1045,7 +1067,7 @@ class CircularReferenceHandle : public QObject, public: CircularReferenceHandle(QObject *parent = 0) - : QObject(parent), QV8GCCallback::Node(gccallback), m_dtorCount(0) + : QObject(parent), QV8GCCallback::Node(gccallback), m_dtorCount(0), m_engine(0) { QV8GCCallback::addGcCallbackNode(this); } @@ -1064,6 +1086,7 @@ public: { CircularReferenceHandle *retn = new CircularReferenceHandle(parent); retn->m_dtorCount = m_dtorCount; + retn->m_engine = m_engine; return retn; } @@ -1080,15 +1103,21 @@ public: crh->m_referenced.Clear(); } - static void gccallback(QV8GCCallback::Referencer *r, QV8GCCallback::Node *n) + static void gccallback(QV8GCCallback::Node *n) { CircularReferenceHandle *crh = static_cast(n); - r->addRelationship(crh, crh->m_referenced); + crh->m_engine->addRelationshipForGC(crh, crh->m_referenced); + } + + void setEngine(QDeclarativeEngine* declarativeEngine) + { + m_engine = QDeclarativeEnginePrivate::get(declarativeEngine)->v8engine(); } private: v8::Persistent m_referenced; int *m_dtorCount; + QV8Engine* m_engine; }; Q_DECLARE_METATYPE(CircularReferenceHandle*) @@ -1160,9 +1189,10 @@ class MySequenceConversionObject : public QObject Q_PROPERTY (QList boolListProperty READ boolListProperty WRITE setBoolListProperty NOTIFY boolListPropertyChanged) Q_PROPERTY (QList stringListProperty READ stringListProperty WRITE setStringListProperty NOTIFY stringListPropertyChanged) Q_PROPERTY (QList urlListProperty READ urlListProperty WRITE setUrlListProperty NOTIFY urlListPropertyChanged) - Q_PROPERTY (QStringList qstringListProperty READ qstringListProperty WRITE setQStringListProperty NOTIFY qstringListPropertyChanged) + Q_PROPERTY (QList pointListProperty READ pointListProperty WRITE setPointListProperty NOTIFY pointListPropertyChanged) + Q_PROPERTY (QList variantListProperty READ variantListProperty WRITE setVariantListProperty NOTIFY variantListPropertyChanged) public: MySequenceConversionObject() @@ -1173,9 +1203,10 @@ public: m_boolList << true << false << true << false; m_stringList << QLatin1String("first") << QLatin1String("second") << QLatin1String("third") << QLatin1String("fourth"); m_urlList << QUrl("http://www.example1.com") << QUrl("http://www.example2.com") << QUrl("http://www.example3.com"); - m_qstringList << QLatin1String("first") << QLatin1String("second") << QLatin1String("third") << QLatin1String("fourth"); + m_pointList << QPoint(1, 2) << QPoint(3, 4) << QPoint(5, 6); + m_variantList << QVariant(QLatin1String("one")) << QVariant(true) << QVariant(3); } ~MySequenceConversionObject() {} @@ -1196,6 +1227,8 @@ public: void setQStringListProperty(const QStringList &list) { m_qstringList = list; emit qstringListPropertyChanged(); } QList pointListProperty() const { return m_pointList; } void setPointListProperty(const QList &list) { m_pointList = list; emit pointListPropertyChanged(); } + QList variantListProperty() const { return m_variantList; } + void setVariantListProperty(const QList &list) { m_variantList = list; emit variantListPropertyChanged(); } // now for "copy resource" sequences: Q_INVOKABLE QList generateIntSequence() const { QList retn; retn << 1 << 2 << 3; return retn; } @@ -1218,6 +1251,7 @@ signals: void urlListPropertyChanged(); void qstringListPropertyChanged(); void pointListPropertyChanged(); + void variantListPropertyChanged(); private: QList m_intList; @@ -1226,9 +1260,10 @@ private: QList m_boolList; QList m_stringList; QList m_urlList; + QStringList m_qstringList; - QStringList m_qstringList; // not a supported sequence type, but QStringList support is hardcoded. QList m_pointList; // not a supported sequence type + QList m_variantList; // not a supported sequence type, but QVariantList support is hardcoded. }; class MyDeleteObject : public QObject