diff options
Diffstat (limited to 'tests/auto/declarative/qdeclarativeecmascript/testtypes.h')
-rw-r--r-- | tests/auto/declarative/qdeclarativeecmascript/testtypes.h | 1311 |
1 files changed, 0 insertions, 1311 deletions
diff --git a/tests/auto/declarative/qdeclarativeecmascript/testtypes.h b/tests/auto/declarative/qdeclarativeecmascript/testtypes.h deleted file mode 100644 index a463d3f64a..0000000000 --- a/tests/auto/declarative/qdeclarativeecmascript/testtypes.h +++ /dev/null @@ -1,1311 +0,0 @@ -/**************************************************************************** -** -** 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. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -#ifndef TESTTYPES_H -#define TESTTYPES_H - -#include <QtCore/qobject.h> -#include <QtDeclarative/qdeclarative.h> -#include <QtDeclarative/qdeclarativeexpression.h> -#include <QtCore/qpoint.h> -#include <QtCore/qsize.h> -#include <QtDeclarative/qdeclarativelist.h> -#include <QtCore/qrect.h> -#include <QtGui/qmatrix.h> -#include <QtGui/qcolor.h> -#include <QtGui/qvector3d.h> -#include <QtGui/QPixmap> -#include <QtCore/qdatetime.h> -#include <QtDeclarative/qjsvalue.h> -#include <QtDeclarative/qdeclarativescriptstring.h> -#include <QtDeclarative/qdeclarativecomponent.h> - -#include <private/qdeclarativeengine_p.h> -#include <private/qv8engine_p.h> - -class MyQmlAttachedObject : public QObject -{ - Q_OBJECT - Q_PROPERTY(int value READ value CONSTANT) - Q_PROPERTY(int value2 READ value2 WRITE setValue2 NOTIFY value2Changed) -public: - MyQmlAttachedObject(QObject *parent) : QObject(parent), m_value2(0) {} - - int value() const { return 19; } - int value2() const { return m_value2; } - void setValue2(int v) { if (m_value2 == v) return; m_value2 = v; emit value2Changed(); } - - void emitMySignal() { emit mySignal(); } - -signals: - void value2Changed(); - void mySignal(); - -private: - int m_value2; -}; - -class MyQmlObject : public QObject -{ - Q_OBJECT - Q_ENUMS(MyEnum) - Q_ENUMS(MyEnum2) - Q_PROPERTY(int deleteOnSet READ deleteOnSet WRITE setDeleteOnSet) - Q_PROPERTY(bool trueProperty READ trueProperty CONSTANT) - Q_PROPERTY(bool falseProperty READ falseProperty CONSTANT) - 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<QObject> objectListProperty READ objectListProperty CONSTANT) - Q_PROPERTY(int resettableProperty READ resettableProperty WRITE setResettableProperty RESET resetProperty) - Q_PROPERTY(QRegExp regExp READ regExp WRITE setRegExp) - Q_PROPERTY(int nonscriptable READ nonscriptable WRITE setNonscriptable SCRIPTABLE false) - Q_PROPERTY(int intProperty READ intProperty WRITE setIntProperty NOTIFY intChanged) - -public: - MyQmlObject(): myinvokableObject(0), m_methodCalled(false), m_methodIntCalled(false), m_object(0), m_value(0), m_resetProperty(13), m_intProperty(0) {} - - enum MyEnum { EnumValue1 = 0, EnumValue2 = 1 }; - enum MyEnum2 { EnumValue3 = 2, EnumValue4 = 3 }; - - bool trueProperty() const { return true; } - bool falseProperty() const { return false; } - - QString stringProperty() const { return m_string; } - void setStringProperty(const QString &s) - { - if (s == m_string) - return; - m_string = s; - 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) - return; - m_object = obj; - emit objectChanged(); - } - - QDeclarativeListProperty<QObject> objectListProperty() { return QDeclarativeListProperty<QObject>(this, m_objectQList); } - - bool methodCalled() const { return m_methodCalled; } - bool methodIntCalled() const { return m_methodIntCalled; } - - QString string() const { return m_string; } - - static MyQmlAttachedObject *qmlAttachedProperties(QObject *o) { - return new MyQmlAttachedObject(o); - } - - int deleteOnSet() const { return 1; } - void setDeleteOnSet(int v) { if(v) delete this; } - - int value() const { return m_value; } - void setValue(int v) { m_value = v; } - - int resettableProperty() const { return m_resetProperty; } - void setResettableProperty(int v) { m_resetProperty = v; } - void resetProperty() { m_resetProperty = 13; } - - QRegExp regExp() { return m_regExp; } - void setRegExp(const QRegExp ®Exp) { m_regExp = regExp; } - - int console() const { return 11; } - - int nonscriptable() const { return 0; } - void setNonscriptable(int) {} - - MyQmlObject *myinvokableObject; - Q_INVOKABLE MyQmlObject *returnme() { return this; } - - struct MyType { - 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(); } - -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: - void deleteMe() { delete this; } - void methodNoArgs() { m_methodCalled = true; } - void method(int a) { if(a == 163) m_methodIntCalled = true; } - 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: - friend class tst_qdeclarativeecmascript; - bool m_methodCalled; - bool m_methodIntCalled; - - QObject *m_object; - QString m_string; - QUrl m_url; - QList<QObject *> m_objectQList; - int m_value; - int m_resetProperty; - QRegExp m_regExp; - QVariant m_variant; - QJSValue m_qjsvalue; - int m_intProperty; -}; - -QML_DECLARE_TYPEINFO(MyQmlObject, QML_HAS_ATTACHED_PROPERTIES) - -class MyQmlContainer : public QObject -{ - Q_OBJECT - Q_PROPERTY(QDeclarativeListProperty<MyQmlObject> children READ children CONSTANT) -public: - MyQmlContainer() {} - - QDeclarativeListProperty<MyQmlObject> children() { return QDeclarativeListProperty<MyQmlObject>(this, m_children); } - -private: - QList<MyQmlObject*> m_children; -}; - - -class MyExpression : public QDeclarativeExpression -{ - Q_OBJECT -public: - MyExpression(QDeclarativeContext *ctxt, const QString &expr) - : QDeclarativeExpression(ctxt, 0, expr), changed(false) - { - QObject::connect(this, SIGNAL(valueChanged()), this, SLOT(expressionValueChanged())); - setNotifyOnValueChanged(true); - } - - bool changed; - -public slots: - void expressionValueChanged() { - changed = true; - } -}; - - -class MyDefaultObject1 : public QObject -{ - Q_OBJECT - Q_PROPERTY(int horseLegs READ horseLegs CONSTANT) - Q_PROPERTY(int antLegs READ antLegs CONSTANT) - Q_PROPERTY(int emuLegs READ emuLegs CONSTANT) -public: - int horseLegs() const { return 4; } - int antLegs() const { return 6; } - int emuLegs() const { return 2; } -}; - -class MyDefaultObject3 : public QObject -{ - Q_OBJECT - Q_PROPERTY(int antLegs READ antLegs CONSTANT) - Q_PROPERTY(int humanLegs READ humanLegs CONSTANT) -public: - int antLegs() const { return 7; } // Mutant - int humanLegs() const { return 2; } - int millipedeLegs() const { return 1000; } -}; - -class MyDeferredObject : public QObject -{ - Q_OBJECT - Q_PROPERTY(int value READ value WRITE setValue NOTIFY valueChanged) - Q_PROPERTY(QObject *objectProperty READ objectProperty WRITE setObjectProperty) - Q_PROPERTY(QObject *objectProperty2 READ objectProperty2 WRITE setObjectProperty2) - Q_CLASSINFO("DeferredPropertyNames", "value,objectProperty,objectProperty2") - -public: - MyDeferredObject() : m_value(0), m_object(0), m_object2(0) {} - - int value() const { return m_value; } - void setValue(int v) { m_value = v; emit valueChanged(); } - - QObject *objectProperty() const { return m_object; } - void setObjectProperty(QObject *obj) { m_object = obj; } - - QObject *objectProperty2() const { return m_object2; } - void setObjectProperty2(QObject *obj) { m_object2 = obj; } - -signals: - void valueChanged(); - -private: - int m_value; - QObject *m_object; - QObject *m_object2; -}; - -class MyBaseExtendedObject : public QObject -{ -Q_OBJECT -Q_PROPERTY(int baseProperty READ baseProperty WRITE setBaseProperty) -public: - MyBaseExtendedObject() : m_value(0) {} - - int baseProperty() const { return m_value; } - void setBaseProperty(int v) { m_value = v; } - -private: - int m_value; -}; - -class MyExtendedObject : public MyBaseExtendedObject -{ -Q_OBJECT -Q_PROPERTY(int coreProperty READ coreProperty WRITE setCoreProperty) -public: - MyExtendedObject() : m_value(0) {} - - int coreProperty() const { return m_value; } - void setCoreProperty(int v) { m_value = v; } - -private: - int m_value; -}; - -class MyTypeObject : public QObject -{ - Q_OBJECT - Q_ENUMS(MyEnum) - Q_FLAGS(MyFlags) - - Q_PROPERTY(QString id READ id WRITE setId) - Q_PROPERTY(QObject *objectProperty READ objectProperty WRITE setObjectProperty) - Q_PROPERTY(QDeclarativeComponent *componentProperty READ componentProperty WRITE setComponentProperty) - Q_PROPERTY(MyFlags flagProperty READ flagProperty WRITE setFlagProperty) - Q_PROPERTY(MyEnum enumProperty READ enumProperty WRITE setEnumProperty) - Q_PROPERTY(QString stringProperty READ stringProperty WRITE setStringProperty) - Q_PROPERTY(uint uintProperty READ uintProperty WRITE setUintProperty) - Q_PROPERTY(int intProperty READ intProperty WRITE setIntProperty) - Q_PROPERTY(qreal realProperty READ realProperty WRITE setRealProperty) - Q_PROPERTY(double doubleProperty READ doubleProperty WRITE setDoubleProperty) - Q_PROPERTY(float floatProperty READ floatProperty WRITE setFloatProperty) - Q_PROPERTY(QColor colorProperty READ colorProperty WRITE setColorProperty) - Q_PROPERTY(QDate dateProperty READ dateProperty WRITE setDateProperty) - Q_PROPERTY(QTime timeProperty READ timeProperty WRITE setTimeProperty) - Q_PROPERTY(QDateTime dateTimeProperty READ dateTimeProperty WRITE setDateTimeProperty) - Q_PROPERTY(QPoint pointProperty READ pointProperty WRITE setPointProperty) - Q_PROPERTY(QPointF pointFProperty READ pointFProperty WRITE setPointFProperty) - Q_PROPERTY(QSize sizeProperty READ sizeProperty WRITE setSizeProperty) - Q_PROPERTY(QSizeF sizeFProperty READ sizeFProperty WRITE setSizeFProperty) - Q_PROPERTY(QRect rectProperty READ rectProperty WRITE setRectProperty NOTIFY rectPropertyChanged) - Q_PROPERTY(QRect rectProperty2 READ rectProperty2 WRITE setRectProperty2) - Q_PROPERTY(QRectF rectFProperty READ rectFProperty WRITE setRectFProperty) - Q_PROPERTY(bool boolProperty READ boolProperty WRITE setBoolProperty) - Q_PROPERTY(QVariant variantProperty READ variantProperty WRITE setVariantProperty) - Q_PROPERTY(QVector3D vectorProperty READ vectorProperty WRITE setVectorProperty) - Q_PROPERTY(QUrl urlProperty READ urlProperty WRITE setUrlProperty) - - Q_PROPERTY(QDeclarativeScriptString scriptProperty READ scriptProperty WRITE setScriptProperty) - -public: - MyTypeObject() - : objectPropertyValue(0), componentPropertyValue(0) {} - - QString idValue; - QString id() const { - return idValue; - } - void setId(const QString &v) { - idValue = v; - } - - QObject *objectPropertyValue; - QObject *objectProperty() const { - return objectPropertyValue; - } - void setObjectProperty(QObject *v) { - objectPropertyValue = v; - } - - QDeclarativeComponent *componentPropertyValue; - QDeclarativeComponent *componentProperty() const { - return componentPropertyValue; - } - void setComponentProperty(QDeclarativeComponent *v) { - componentPropertyValue = v; - } - - enum MyFlag { FlagVal1 = 0x01, FlagVal2 = 0x02, FlagVal3 = 0x04 }; - Q_DECLARE_FLAGS(MyFlags, MyFlag) - MyFlags flagPropertyValue; - MyFlags flagProperty() const { - return flagPropertyValue; - } - void setFlagProperty(MyFlags v) { - flagPropertyValue = v; - } - - enum MyEnum { EnumVal1, EnumVal2 }; - MyEnum enumPropertyValue; - MyEnum enumProperty() const { - return enumPropertyValue; - } - void setEnumProperty(MyEnum v) { - enumPropertyValue = v; - } - - QString stringPropertyValue; - QString stringProperty() const { - return stringPropertyValue; - } - void setStringProperty(const QString &v) { - stringPropertyValue = v; - } - - uint uintPropertyValue; - uint uintProperty() const { - return uintPropertyValue; - } - void setUintProperty(const uint &v) { - uintPropertyValue = v; - } - - int intPropertyValue; - int intProperty() const { - return intPropertyValue; - } - void setIntProperty(const int &v) { - intPropertyValue = v; - } - - qreal realPropertyValue; - qreal realProperty() const { - return realPropertyValue; - } - void setRealProperty(const qreal &v) { - realPropertyValue = v; - } - - double doublePropertyValue; - double doubleProperty() const { - return doublePropertyValue; - } - void setDoubleProperty(const double &v) { - doublePropertyValue = v; - } - - float floatPropertyValue; - float floatProperty() const { - return floatPropertyValue; - } - void setFloatProperty(const float &v) { - floatPropertyValue = v; - } - - QColor colorPropertyValue; - QColor colorProperty() const { - return colorPropertyValue; - } - void setColorProperty(const QColor &v) { - colorPropertyValue = v; - } - - QDate datePropertyValue; - QDate dateProperty() const { - return datePropertyValue; - } - void setDateProperty(const QDate &v) { - datePropertyValue = v; - } - - QTime timePropertyValue; - QTime timeProperty() const { - return timePropertyValue; - } - void setTimeProperty(const QTime &v) { - timePropertyValue = v; - } - - QDateTime dateTimePropertyValue; - QDateTime dateTimeProperty() const { - return dateTimePropertyValue; - } - void setDateTimeProperty(const QDateTime &v) { - dateTimePropertyValue = v; - } - - QPoint pointPropertyValue; - QPoint pointProperty() const { - return pointPropertyValue; - } - void setPointProperty(const QPoint &v) { - pointPropertyValue = v; - } - - QPointF pointFPropertyValue; - QPointF pointFProperty() const { - return pointFPropertyValue; - } - void setPointFProperty(const QPointF &v) { - pointFPropertyValue = v; - } - - QSize sizePropertyValue; - QSize sizeProperty() const { - return sizePropertyValue; - } - void setSizeProperty(const QSize &v) { - sizePropertyValue = v; - } - - QSizeF sizeFPropertyValue; - QSizeF sizeFProperty() const { - return sizeFPropertyValue; - } - void setSizeFProperty(const QSizeF &v) { - sizeFPropertyValue = v; - } - - QRect rectPropertyValue; - QRect rectProperty() const { - return rectPropertyValue; - } - void setRectProperty(const QRect &v) { - rectPropertyValue = v; - emit rectPropertyChanged(); - } - - QRect rectPropertyValue2; - QRect rectProperty2() const { - return rectPropertyValue2; - } - void setRectProperty2(const QRect &v) { - rectPropertyValue2 = v; - } - - QRectF rectFPropertyValue; - QRectF rectFProperty() const { - return rectFPropertyValue; - } - void setRectFProperty(const QRectF &v) { - rectFPropertyValue = v; - } - - bool boolPropertyValue; - bool boolProperty() const { - return boolPropertyValue; - } - void setBoolProperty(const bool &v) { - boolPropertyValue = v; - } - - QVariant variantPropertyValue; - QVariant variantProperty() const { - return variantPropertyValue; - } - void setVariantProperty(const QVariant &v) { - variantPropertyValue = v; - } - - QVector3D vectorPropertyValue; - QVector3D vectorProperty() const { - return vectorPropertyValue; - } - void setVectorProperty(const QVector3D &v) { - vectorPropertyValue = v; - } - - QUrl urlPropertyValue; - QUrl urlProperty() const { - return urlPropertyValue; - } - void setUrlProperty(const QUrl &v) { - urlPropertyValue = v; - } - - QDeclarativeScriptString scriptPropertyValue; - QDeclarativeScriptString scriptProperty() const { - return scriptPropertyValue; - } - void setScriptProperty(const QDeclarativeScriptString &v) { - scriptPropertyValue = v; - } - - void doAction() { emit action(); } -signals: - void action(); - void rectPropertyChanged(); -}; -Q_DECLARE_OPERATORS_FOR_FLAGS(MyTypeObject::MyFlags) - -class MyDerivedObject : public MyTypeObject -{ - Q_OBJECT -public: - Q_INVOKABLE bool intProperty() const { - return true; - } -}; - -Q_DECLARE_METATYPE(QJSValue); -class MyInvokableBaseObject : public QObject -{ - Q_OBJECT -public: - inline ~MyInvokableBaseObject() = 0; - - Q_INVOKABLE inline void method_inherited(int a); - Q_INVOKABLE inline void method_overload(); -}; - -class MyInvokableObject : public MyInvokableBaseObject -{ - Q_OBJECT - Q_ENUMS(TestEnum) -public: - enum TestEnum { EnumValue1, EnumValue2 }; - MyInvokableObject() { reset(); } - - int invoked() const { return m_invoked; } - bool error() const { return m_invokedError; } - const QVariantList &actuals() const { return m_actuals; } - void reset() { m_invoked = -1; m_invokedError = false; m_actuals.clear(); } - - Q_INVOKABLE QPointF method_get_QPointF() { return QPointF(99.3, -10.2); } - Q_INVOKABLE QPoint method_get_QPoint() { return QPoint(9, 12); } - - Q_INVOKABLE void method_NoArgs() { invoke(0); } - Q_INVOKABLE int method_NoArgs_int() { invoke(1); return 6; } - Q_INVOKABLE qreal method_NoArgs_real() { invoke(2); return 19.75; } - Q_INVOKABLE QPointF method_NoArgs_QPointF() { invoke(3); return QPointF(123, 4.5); } - Q_INVOKABLE QObject *method_NoArgs_QObject() { invoke(4); return this; } - Q_INVOKABLE MyInvokableObject *method_NoArgs_unknown() { invoke(5); return this; } - Q_INVOKABLE QJSValue method_NoArgs_QScriptValue() { invoke(6); return QJSValue("Hello world"); } - Q_INVOKABLE QVariant method_NoArgs_QVariant() { invoke(7); return QVariant("QML rocks"); } - - Q_INVOKABLE void method_int(int a) { invoke(8); m_actuals << a; } - Q_INVOKABLE void method_intint(int a, int b) { invoke(9); m_actuals << a << b; } - Q_INVOKABLE void method_real(qreal a) { invoke(10); m_actuals << a; } - Q_INVOKABLE void method_QString(QString a) { invoke(11); m_actuals << a; } - Q_INVOKABLE void method_QPointF(QPointF a) { invoke(12); m_actuals << a; } - Q_INVOKABLE void method_QObject(QObject *a) { invoke(13); m_actuals << qVariantFromValue(a); } - Q_INVOKABLE void method_QScriptValue(QJSValue a) { invoke(14); m_actuals << qVariantFromValue(a); } - Q_INVOKABLE void method_intQScriptValue(int a, QJSValue b) { invoke(15); m_actuals << a << qVariantFromValue(b); } - - Q_INVOKABLE void method_overload(int a) { invoke(16); m_actuals << a; } - Q_INVOKABLE void method_overload(int a, int b) { invoke(17); m_actuals << a << b; } - Q_INVOKABLE void method_overload(QString a) { invoke(18); m_actuals << a; } - - Q_INVOKABLE void method_with_enum(TestEnum e) { invoke(19); m_actuals << (int)e; } - - Q_INVOKABLE int method_default(int a, int b = 19) { invoke(20); m_actuals << a << b; return b; } - - Q_INVOKABLE void method_QVariant(QVariant a, QVariant b = QVariant()) { invoke(21); m_actuals << a << b; } - -private: - friend class MyInvokableBaseObject; - void invoke(int idx) { if (m_invoked != -1) m_invokedError = true; m_invoked = idx;} - int m_invoked; - bool m_invokedError; - QVariantList m_actuals; -}; - -MyInvokableBaseObject::~MyInvokableBaseObject() {} - -void MyInvokableBaseObject::method_inherited(int a) -{ - static_cast<MyInvokableObject *>(this)->invoke(-3); - static_cast<MyInvokableObject *>(this)->m_actuals << a; -} - -// This is a hidden overload of the MyInvokableObject::method_overload() method -void MyInvokableBaseObject::method_overload() -{ - static_cast<MyInvokableObject *>(this)->invoke(-2); -} - -class NumberAssignment : public QObject -{ - Q_OBJECT -public: - Q_PROPERTY(qreal test1 READ test1 WRITE setTest1) - qreal _test1; - qreal test1() const { return _test1; } - void setTest1(qreal v) { _test1 = v; } - - Q_PROPERTY(qreal test2 READ test2 WRITE setTest2) - qreal _test2; - qreal test2() const { return _test2; } - void setTest2(qreal v) { _test2 = v; } - - Q_PROPERTY(qreal test3 READ test3 WRITE setTest3) - qreal _test3; - qreal test3() const { return _test3; } - void setTest3(qreal v) { _test3 = v; } - - Q_PROPERTY(qreal test4 READ test4 WRITE setTest4) - qreal _test4; - qreal test4() const { return _test4; } - void setTest4(qreal v) { _test4 = v; } - - Q_PROPERTY(int test5 READ test5 WRITE setTest5) - int _test5; - int test5() const { return _test5; } - void setTest5(int v) { _test5 = v; } - - Q_PROPERTY(int test6 READ test6 WRITE setTest6) - int _test6; - int test6() const { return _test6; } - void setTest6(int v) { _test6 = v; } - - Q_PROPERTY(int test7 READ test7 WRITE setTest7) - int _test7; - int test7() const { return _test7; } - void setTest7(int v) { _test7 = v; } - - Q_PROPERTY(int test8 READ test8 WRITE setTest8) - int _test8; - int test8() const { return _test8; } - void setTest8(int v) { _test8 = v; } - - Q_PROPERTY(unsigned int test9 READ test9 WRITE setTest9) - unsigned int _test9; - unsigned int test9() const { return _test9; } - void setTest9(unsigned int v) { _test9 = v; } - - Q_PROPERTY(unsigned int test10 READ test10 WRITE setTest10) - unsigned int _test10; - unsigned int test10() const { return _test10; } - void setTest10(unsigned int v) { _test10 = v; } - - Q_PROPERTY(unsigned int test11 READ test11 WRITE setTest11) - unsigned int _test11; - unsigned int test11() const { return _test11; } - void setTest11(unsigned int v) { _test11 = v; } - - Q_PROPERTY(unsigned int test12 READ test12 WRITE setTest12) - unsigned int _test12; - unsigned int test12() const { return _test12; } - void setTest12(unsigned int v) { _test12 = v; } -}; - -class DefaultPropertyExtendedObject : public QObject -{ - Q_OBJECT - Q_PROPERTY(QObject *firstProperty READ firstProperty WRITE setFirstProperty) - Q_PROPERTY(QObject *secondProperty READ secondProperty WRITE setSecondProperty) -public: - DefaultPropertyExtendedObject(QObject *parent = 0) : QObject(parent), m_firstProperty(0), m_secondProperty(0) {} - - QObject *firstProperty() const { return m_firstProperty; } - QObject *secondProperty() const { return m_secondProperty; } - void setFirstProperty(QObject *property) { m_firstProperty = property; } - void setSecondProperty(QObject *property) { m_secondProperty = property; } -private: - QObject* m_firstProperty; - QObject* m_secondProperty; -}; - -class OverrideDefaultPropertyObject : public DefaultPropertyExtendedObject -{ - Q_OBJECT - Q_CLASSINFO("DefaultProperty", "secondProperty") -public: - OverrideDefaultPropertyObject() {} -}; - -class MyRevisionedBaseClassRegistered : public QObject -{ -Q_OBJECT - Q_PROPERTY(qreal propA READ propA WRITE setPropA NOTIFY propAChanged) - Q_PROPERTY(qreal propB READ propB WRITE setPropB NOTIFY propBChanged REVISION 1) - -public: - MyRevisionedBaseClassRegistered() : m_pa(1), m_pb(2) {} - - qreal propA() const { return m_pa; } - void setPropA(qreal p) { - if (p != m_pa) { - m_pa = p; - emit propAChanged(); - } - } - qreal propB() const { return m_pb; } - void setPropB(qreal p) { - if (p != m_pb) { - m_pb = p; - emit propBChanged(); - } - } - - Q_INVOKABLE void methodA() { } - Q_INVOKABLE Q_REVISION(1) void methodB() { } - -signals: - void propAChanged(); - void propBChanged(); - - void signalA(); - Q_REVISION(1) void signalB(); - -protected: - qreal m_pa; - qreal m_pb; -}; - -class MyRevisionedBaseClassUnregistered : public MyRevisionedBaseClassRegistered -{ -Q_OBJECT - Q_PROPERTY(qreal propC READ propC WRITE setPropC NOTIFY propCChanged) - Q_PROPERTY(qreal propD READ propD WRITE setPropD NOTIFY propDChanged REVISION 1) - -public: - MyRevisionedBaseClassUnregistered() : m_pc(1), m_pd(2) {} - - qreal propC() const { return m_pc; } - void setPropC(qreal p) { - if (p != m_pc) { - m_pc = p; - emit propCChanged(); - } - } - qreal propD() const { return m_pd; } - void setPropD(qreal p) { - if (p != m_pd) { - m_pd = p; - emit propDChanged(); - } - } - - Q_INVOKABLE void methodC() { } - Q_INVOKABLE Q_REVISION(1) void methodD() { } - -signals: - void propCChanged(); - void propDChanged(); - - void signalC(); - Q_REVISION(1) void signalD(); - -protected: - qreal m_pc; - qreal m_pd; -}; - -class MyRevisionedClass : public MyRevisionedBaseClassUnregistered -{ - Q_OBJECT - Q_PROPERTY(qreal prop1 READ prop1 WRITE setProp1 NOTIFY prop1Changed) - Q_PROPERTY(qreal prop2 READ prop2 WRITE setProp2 NOTIFY prop2Changed REVISION 1) - -public: - MyRevisionedClass() {} - - qreal prop1() const { return m_p1; } - void setProp1(qreal p) { - if (p != m_p1) { - m_p1 = p; - emit prop1Changed(); - } - } - qreal prop2() const { return m_p2; } - void setProp2(qreal p) { - if (p != m_p2) { - m_p2 = p; - emit prop2Changed(); - } - } - - Q_INVOKABLE void method1() { } - Q_INVOKABLE Q_REVISION(1) void method2() { } - -signals: - void prop1Changed(); - void prop2Changed(); - - void signal1(); - Q_REVISION(1) void signal2(); - -protected: - qreal m_p1; - qreal m_p2; -}; - -class MyRevisionedSubclass : public MyRevisionedClass -{ - Q_OBJECT - Q_PROPERTY(qreal prop3 READ prop3 WRITE setProp3 NOTIFY prop3Changed) - Q_PROPERTY(qreal prop4 READ prop4 WRITE setProp4 NOTIFY prop4Changed REVISION 1) - -public: - MyRevisionedSubclass() : m_p3(3), m_p4(4) {} - - qreal prop3() const { return m_p3; } - void setProp3(qreal p) { - if (p != m_p3) { - m_p3 = p; - emit prop3Changed(); - } - } - qreal prop4() const { return m_p4; } - void setProp4(qreal p) { - if (p != m_p4) { - m_p4 = p; - emit prop4Changed(); - } - } - - Q_INVOKABLE void method3() { } - Q_INVOKABLE Q_REVISION(1) void method4() { } - -signals: - void prop3Changed(); - void prop4Changed(); - - void signal3(); - Q_REVISION(1) void signal4(); - -protected: - qreal m_p3; - qreal m_p4; -}; - -QML_DECLARE_TYPE(MyRevisionedBaseClassRegistered) -QML_DECLARE_TYPE(MyRevisionedBaseClassUnregistered) -QML_DECLARE_TYPE(MyRevisionedClass) -QML_DECLARE_TYPE(MyRevisionedSubclass) -Q_DECLARE_METATYPE(MyQmlObject::MyType) - - -class ScarceResourceObject : public QObject -{ - Q_OBJECT - Q_PROPERTY(QPixmap scarceResource READ scarceResource WRITE setScarceResource NOTIFY scarceResourceChanged) -public: - ScarceResourceObject(QObject *parent = 0) : QObject(parent), m_value(100, 100) { m_value.fill(Qt::blue); } - ~ScarceResourceObject() {} - - QPixmap scarceResource() const { return m_value; } - void setScarceResource(QPixmap v) { m_value = v; emit scarceResourceChanged(); } - - bool scarceResourceIsDetached() const { return m_value.isDetached(); } - - // this particular one returns a new one each time - // this means that every Scarce Resource Copy will - // consume resources (so that we can track disposal - // of v8 handles with circular references). - Q_INVOKABLE QPixmap newScarceResource() const - { - QPixmap retn(800, 600); - retn.fill(QColor(100, 110, 120, 45)); - return retn; - } - -signals: - void scarceResourceChanged(); - -private: - QPixmap m_value; -}; -QML_DECLARE_TYPE(ScarceResourceObject) - -class testQObjectApi : public QObject -{ - Q_OBJECT - Q_ENUMS(MyEnum) - Q_PROPERTY (int qobjectTestProperty READ qobjectTestProperty NOTIFY qobjectTestPropertyChanged) - Q_PROPERTY (int qobjectTestWritableProperty READ qobjectTestWritableProperty WRITE setQObjectTestWritableProperty NOTIFY qobjectTestWritablePropertyChanged) - -public: - testQObjectApi(QObject* parent = 0) - : QObject(parent), m_testProperty(0), m_testWritableProperty(0), m_methodCallCount(0) - { - } - - ~testQObjectApi() {} - - enum MyEnum { EnumValue1 = 25, EnumValue2 = 42 }; - Q_INVOKABLE int qobjectEnumTestMethod(MyEnum val) { return (static_cast<int>(val) + 5); } - Q_INVOKABLE int qobjectTestMethod(int increment = 1) { m_methodCallCount += increment; return m_methodCallCount; } - - int qobjectTestProperty() const { return m_testProperty; } - void setQObjectTestProperty(int tp) { m_testProperty = tp; emit qobjectTestPropertyChanged(tp); } - - int qobjectTestWritableProperty() const { return m_testWritableProperty; } - void setQObjectTestWritableProperty(int tp) { m_testWritableProperty = tp; emit qobjectTestWritablePropertyChanged(tp); } - -signals: - void qobjectTestPropertyChanged(int testProperty); - void qobjectTestWritablePropertyChanged(int testWritableProperty); - -private: - int m_testProperty; - int m_testWritableProperty; - int m_methodCallCount; -}; - -class CircularReferenceObject : public QObject, - public QV8GCCallback::Node -{ - Q_OBJECT - -public: - CircularReferenceObject(QObject *parent = 0) - : QObject(parent), QV8GCCallback::Node(callback), m_referenced(0), m_dtorCount(0) - { - QV8GCCallback::addGcCallbackNode(this); - } - - ~CircularReferenceObject() - { - if (m_dtorCount) *m_dtorCount = *m_dtorCount + 1; - } - - Q_INVOKABLE void setDtorCount(int *dtorCount) - { - m_dtorCount = dtorCount; - } - - Q_INVOKABLE CircularReferenceObject *generate(QObject *parent = 0) - { - CircularReferenceObject *retn = new CircularReferenceObject(parent); - retn->m_dtorCount = m_dtorCount; - retn->m_engine = m_engine; - return retn; - } - - Q_INVOKABLE void addReference(QObject *other) - { - m_referenced = other; - } - - static void callback(QV8GCCallback::Node *n) - { - CircularReferenceObject *cro = static_cast<CircularReferenceObject*>(n); - if (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*) - -class CircularReferenceHandle : public QObject, - public QV8GCCallback::Node -{ - Q_OBJECT - -public: - CircularReferenceHandle(QObject *parent = 0) - : QObject(parent), QV8GCCallback::Node(gccallback), m_dtorCount(0), m_engine(0) - { - QV8GCCallback::addGcCallbackNode(this); - } - - ~CircularReferenceHandle() - { - if (m_dtorCount) *m_dtorCount = *m_dtorCount + 1; - } - - Q_INVOKABLE void setDtorCount(int *dtorCount) - { - m_dtorCount = dtorCount; - } - - Q_INVOKABLE CircularReferenceHandle *generate(QObject *parent = 0) - { - CircularReferenceHandle *retn = new CircularReferenceHandle(parent); - retn->m_dtorCount = m_dtorCount; - retn->m_engine = m_engine; - return retn; - } - - Q_INVOKABLE void addReference(v8::Persistent<v8::Value> handle) - { - m_referenced = qPersistentNew(handle); - m_referenced.MakeWeak(static_cast<void*>(this), wrcallback); - } - - static void wrcallback(v8::Persistent<v8::Value> handle, void *params) - { - CircularReferenceHandle *crh = static_cast<CircularReferenceHandle*>(params); - qPersistentDispose(handle); - crh->m_referenced.Clear(); - } - - static void gccallback(QV8GCCallback::Node *n) - { - CircularReferenceHandle *crh = static_cast<CircularReferenceHandle*>(n); - crh->m_engine->addRelationshipForGC(crh, crh->m_referenced); - } - - void setEngine(QDeclarativeEngine* declarativeEngine) - { - m_engine = QDeclarativeEnginePrivate::get(declarativeEngine)->v8engine(); - } - -private: - v8::Persistent<v8::Value> m_referenced; - int *m_dtorCount; - QV8Engine* m_engine; -}; -Q_DECLARE_METATYPE(CircularReferenceHandle*) - -class MyDynamicCreationDestructionObject : public QObject -{ - Q_OBJECT - Q_PROPERTY (int intProperty READ intProperty WRITE setIntProperty NOTIFY intPropertyChanged) - -public: - MyDynamicCreationDestructionObject(QObject *parent = 0) : QObject(parent), m_intProperty(0), m_dtorCount(0) - { - } - - ~MyDynamicCreationDestructionObject() - { - if (m_dtorCount) { - (*m_dtorCount)++; - } - } - - int intProperty() const { return m_intProperty; } - void setIntProperty(int val) { m_intProperty = val; emit intPropertyChanged(); } - - Q_INVOKABLE MyDynamicCreationDestructionObject *createNew() - { - // no parent == ownership transfers to JS; same dtor counter. - MyDynamicCreationDestructionObject *retn = new MyDynamicCreationDestructionObject; - retn->setDtorCount(m_dtorCount); - return retn; - } - - void setDtorCount(int *dtorCount) - { - m_dtorCount = dtorCount; - } - -signals: - void intPropertyChanged(); - -private: - int m_intProperty; - int *m_dtorCount; -}; - -class WriteCounter : public QObject -{ - Q_OBJECT - Q_PROPERTY(int value READ value WRITE setValue); -public: - WriteCounter() : m_value(0), m_count(0) {} - - int value() const { return m_value; } - void setValue(int v) { m_value = v; ++m_count; } - - int count() const { return m_count; } - -private: - int m_value; - int m_count; -}; - -class MySequenceConversionObject : public QObject -{ - Q_OBJECT - - Q_PROPERTY (QList<int> intListProperty READ intListProperty WRITE setIntListProperty NOTIFY intListPropertyChanged) - Q_PROPERTY (QList<int> intListProperty2 READ intListProperty2 WRITE setIntListProperty2 NOTIFY intListProperty2Changed) - Q_PROPERTY (QList<qreal> qrealListProperty READ qrealListProperty WRITE setQrealListProperty NOTIFY qrealListPropertyChanged) - Q_PROPERTY (QList<bool> boolListProperty READ boolListProperty WRITE setBoolListProperty NOTIFY boolListPropertyChanged) - Q_PROPERTY (QList<QString> stringListProperty READ stringListProperty WRITE setStringListProperty NOTIFY stringListPropertyChanged) - Q_PROPERTY (QList<QUrl> urlListProperty READ urlListProperty WRITE setUrlListProperty NOTIFY urlListPropertyChanged) - Q_PROPERTY (QStringList qstringListProperty READ qstringListProperty WRITE setQStringListProperty NOTIFY qstringListPropertyChanged) - - Q_PROPERTY (QList<QPoint> pointListProperty READ pointListProperty WRITE setPointListProperty NOTIFY pointListPropertyChanged) - Q_PROPERTY (QList<QVariant> variantListProperty READ variantListProperty WRITE setVariantListProperty NOTIFY variantListPropertyChanged) - - Q_PROPERTY (qint32 maxIndex READ maxIndex CONSTANT) - Q_PROPERTY (quint32 tooBigIndex READ tooBigIndex CONSTANT) - Q_PROPERTY (qint32 negativeIndex READ negativeIndex CONSTANT) - -public: - MySequenceConversionObject() - { - m_intList << 1 << 2 << 3 << 4; - m_intList2 << 1 << 2 << 3 << 4; - m_qrealList << 1.1 << 2.2 << 3.3 << 4.4; - 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() {} - - qint32 maxIndex() const - { - return INT_MAX; - } - quint32 tooBigIndex() const - { - quint32 retn = 7; - retn += INT_MAX; - return retn; - } - qint32 negativeIndex() const - { - return -5; - } - - QList<int> intListProperty() const { return m_intList; } - void setIntListProperty(const QList<int> &list) { m_intList = list; emit intListPropertyChanged(); } - QList<int> intListProperty2() const { return m_intList2; } - void setIntListProperty2(const QList<int> &list) { m_intList2 = list; emit intListProperty2Changed(); } - QList<qreal> qrealListProperty() const { return m_qrealList; } - void setQrealListProperty(const QList<qreal> &list) { m_qrealList = list; emit qrealListPropertyChanged(); } - QList<bool> boolListProperty() const { return m_boolList; } - void setBoolListProperty(const QList<bool> &list) { m_boolList = list; emit boolListPropertyChanged(); } - QList<QString> stringListProperty() const { return m_stringList; } - void setStringListProperty(const QList<QString> &list) { m_stringList = list; emit stringListPropertyChanged(); } - QList<QUrl> urlListProperty() const { return m_urlList; } - void setUrlListProperty(const QList<QUrl> &list) { m_urlList = list; emit urlListPropertyChanged(); } - QStringList qstringListProperty() const { return m_qstringList; } - void setQStringListProperty(const QStringList &list) { m_qstringList = list; emit qstringListPropertyChanged(); } - QList<QPoint> pointListProperty() const { return m_pointList; } - void setPointListProperty(const QList<QPoint> &list) { m_pointList = list; emit pointListPropertyChanged(); } - QList<QVariant> variantListProperty() const { return m_variantList; } - void setVariantListProperty(const QList<QVariant> &list) { m_variantList = list; emit variantListPropertyChanged(); } - - // now for "copy resource" sequences: - Q_INVOKABLE QList<int> generateIntSequence() const { QList<int> retn; retn << 1 << 2 << 3; return retn; } - Q_INVOKABLE QList<qreal> generateQrealSequence() const { QList<qreal> retn; retn << 1.1 << 2.2 << 3.3; return retn; } - Q_INVOKABLE QList<bool> generateBoolSequence() const { QList<bool> retn; retn << true << false << true; return retn; } - Q_INVOKABLE QList<QString> generateStringSequence() const { QList<QString> retn; retn << "one" << "two" << "three"; return retn; } - Q_INVOKABLE QList<QUrl> generateUrlSequence() const { QList<QUrl> retn; retn << QUrl("http://www.example1.com") << QUrl("http://www.example2.com") << QUrl("http://www.example3.com"); return retn; } - Q_INVOKABLE QStringList generateQStringSequence() const { QStringList retn; retn << "one" << "two" << "three"; return retn; } - - // "reference resource" underlying qobject deletion test: - Q_INVOKABLE MySequenceConversionObject *generateTestObject() const { return new MySequenceConversionObject; } - Q_INVOKABLE void deleteTestObject(QObject *object) const { delete object; } - -signals: - void intListPropertyChanged(); - void intListProperty2Changed(); - void qrealListPropertyChanged(); - void boolListPropertyChanged(); - void stringListPropertyChanged(); - void urlListPropertyChanged(); - void qstringListPropertyChanged(); - void pointListPropertyChanged(); - void variantListPropertyChanged(); - -private: - QList<int> m_intList; - QList<int> m_intList2; - QList<qreal> m_qrealList; - QList<bool> m_boolList; - QList<QString> m_stringList; - QList<QUrl> m_urlList; - QStringList m_qstringList; - - QList<QPoint> m_pointList; // not a supported sequence type - QList<QVariant> m_variantList; // not a supported sequence type, but QVariantList support is hardcoded. -}; - -class MyDeleteObject : public QObject -{ - Q_OBJECT - Q_PROPERTY(QObject *nestedObject READ nestedObject NOTIFY nestedObjectChanged); - Q_PROPERTY(int deleteNestedObject READ deleteNestedObject NOTIFY deleteNestedObjectChanged); - -public: - MyDeleteObject() : m_nestedObject(new MyQmlObject) {} - - QObject *nestedObject() const { return m_nestedObject; } - int deleteNestedObject() { delete m_nestedObject; m_nestedObject = 0; return 1; } - -signals: - void nestedObjectChanged(); - void deleteNestedObjectChanged(); - -private: - MyQmlObject *m_nestedObject; -}; - -void registerTypes(); - -#endif // TESTTYPES_H - |