1
/****************************************************************************
3
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
4
** Contact: http://www.qt-project.org/legal
6
** This file is part of the test suite of the Qt Toolkit.
8
** $QT_BEGIN_LICENSE:LGPL$
9
** Commercial License Usage
10
** Licensees holding valid commercial Qt licenses may use this file in
11
** accordance with the commercial license agreement provided with the
12
** Software or, alternatively, in accordance with the terms contained in
13
** a written agreement between you and Digia. For licensing terms and
14
** conditions see http://qt.digia.com/licensing. For further information
15
** use the contact form at http://qt.digia.com/contact-us.
17
** GNU Lesser General Public License Usage
18
** Alternatively, this file may be used under the terms of the GNU Lesser
19
** General Public License version 2.1 as published by the Free Software
20
** Foundation and appearing in the file LICENSE.LGPL included in the
21
** packaging of this file. Please review the following information to
22
** ensure the GNU Lesser General Public License version 2.1 requirements
23
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
25
** In addition, as a special exception, Digia gives you certain additional
26
** rights. These rights are described in the Digia Qt LGPL Exception
27
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
29
** GNU General Public License Usage
30
** Alternatively, this file may be used under the terms of the GNU
31
** General Public License version 3.0 as published by the Free Software
32
** Foundation and appearing in the file LICENSE.GPL included in the
33
** packaging of this file. Please review the following information to
34
** ensure the GNU General Public License version 3.0 requirements will be
35
** met: http://www.gnu.org/copyleft/gpl.html.
40
****************************************************************************/
44
#include <QtCore/qobject.h>
45
#include <QtCore/qurl.h>
49
class NestedObject : public QObject
52
Q_PROPERTY(int dummy READ dummy);
53
Q_PROPERTY(int result READ result FINAL CONSTANT);
56
int dummy() const { return 7; }
57
int result() const { return 37; }
60
class ResultObject : public QObject
63
Q_PROPERTY(int result READ result WRITE setResult FINAL)
64
Q_PROPERTY(NestedObject *nested READ nested CONSTANT)
65
Q_PROPERTY(NestedObject *nested2 READ nested2 FINAL CONSTANT)
67
ResultObject() : m_result(0), m_resultCounter(0) {}
69
int resultCounter() const { return m_resultCounter; }
70
void resetResultCounter() { m_resultCounter = 0; }
72
int result() const { return m_result; }
73
void setResult(int result) { m_result = result; m_resultCounter++; }
75
NestedObject *nested() { return &m_nested; }
76
NestedObject *nested2() { return &m_nested2; }
82
NestedObject m_nested;
83
NestedObject m_nested2;
86
class ConversionObject : public QObject
90
Q_PROPERTY(bool boolProp READ boolProp WRITE setBoolProp NOTIFY boolPropChanged)
91
Q_PROPERTY(int intProp READ intProp WRITE setIntProp NOTIFY intPropChanged)
92
Q_PROPERTY(float floatProp READ floatProp WRITE setFloatProp NOTIFY floatPropChanged)
93
Q_PROPERTY(double doubleProp READ doubleProp WRITE setDoubleProp NOTIFY doublePropChanged)
94
Q_PROPERTY(qreal qrealProp READ qrealProp WRITE setQrealProp NOTIFY qrealPropChanged)
95
Q_PROPERTY(QString qstringProp READ qstringProp WRITE setQstringProp NOTIFY qstringPropChanged)
96
Q_PROPERTY(QUrl qurlProp READ qurlProp WRITE setQurlProp NOTIFY qurlPropChanged)
97
Q_PROPERTY(QVector3D vec3Prop READ vec3Prop WRITE setVec3Prop NOTIFY vec3PropChanged)
98
Q_PROPERTY(QJSValue jsvalueProp READ jsvalueProp WRITE setJsvalueProp NOTIFY jsvaluePropChanged)
101
ConversionObject() : m_boolProp(false), m_intProp(0), m_floatProp(0.0), m_doubleProp(0.0), m_qrealProp(0.0) {}
102
~ConversionObject() {}
104
bool boolProp() const { return m_boolProp; }
105
void setBoolProp(bool v) { m_boolProp = v; emit boolPropChanged(); }
106
int intProp() const { return m_intProp; }
107
void setIntProp(int v) { m_intProp = v; emit intPropChanged(); }
108
float floatProp() const { return m_floatProp; }
109
void setFloatProp(float v) { m_floatProp = v; emit floatPropChanged(); }
110
double doubleProp() const { return m_doubleProp; }
111
void setDoubleProp(double v) { m_doubleProp = v; emit doublePropChanged(); }
112
qreal qrealProp() const { return m_qrealProp; }
113
void setQrealProp(qreal v) { m_qrealProp = v; emit qrealPropChanged(); }
114
QString qstringProp() const { return m_qstringProp; }
115
void setQstringProp(const QString& v) { m_qstringProp = v; emit qstringPropChanged(); }
116
QUrl qurlProp() const { return m_qurlProp; }
117
void setQurlProp(const QUrl& v) { m_qurlProp = v; emit qurlPropChanged(); }
118
QVector3D vec3Prop() const { return m_vec3Prop; }
119
void setVec3Prop(const QVector3D& v) { m_vec3Prop = v; emit vec3PropChanged(); }
120
QJSValue jsvalueProp() const { return m_jsvalueProp; }
121
void setJsvalueProp(const QJSValue &v) { m_jsvalueProp = v; emit jsvaluePropChanged(); }
124
void boolPropChanged();
125
void intPropChanged();
126
void floatPropChanged();
127
void doublePropChanged();
128
void qrealPropChanged();
129
void qstringPropChanged();
130
void qurlPropChanged();
131
void vec3PropChanged();
132
void jsvaluePropChanged();
140
QString m_qstringProp;
142
QVector3D m_vec3Prop;
143
QJSValue m_jsvalueProp;
146
class JSValueTest : public QObject
149
Q_PROPERTY(QJSValue boolVar READ boolVar WRITE setBoolVar NOTIFY boolVarChanged)
150
Q_PROPERTY(QJSValue intVar READ intVar WRITE setIntVar NOTIFY intVarChanged)
151
Q_PROPERTY(QJSValue realVar READ realVar WRITE setRealVar NOTIFY realVarChanged)
152
Q_PROPERTY(QJSValue stringVar READ stringVar WRITE setStringVar NOTIFY stringVarChanged)
153
Q_PROPERTY(QJSValue urlVar READ urlVar WRITE setUrlVar NOTIFY urlVarChanged)
154
Q_PROPERTY(QJSValue colorVar READ colorVar WRITE setColorVar NOTIFY colorVarChanged)
155
Q_PROPERTY(QJSValue objectVar READ objectVar WRITE setObjectVar NOTIFY objectVarChanged)
156
Q_PROPERTY(QJSValue nullVar READ nullVar WRITE setNullVar NOTIFY nullVarChanged)
157
Q_PROPERTY(QJSValue varVar READ varVar WRITE setVarVar NOTIFY varVarChanged)
163
QJSValue boolVar() const { return m_boolVar; }
164
void setBoolVar(const QJSValue &v) { m_boolVar = v; emit boolVarChanged(); }
166
QJSValue intVar() const { return m_intVar; }
167
void setIntVar(const QJSValue &v) { m_intVar = v; emit intVarChanged(); }
169
QJSValue realVar() const { return m_realVar; }
170
void setRealVar(const QJSValue &v) { m_realVar = v; emit realVarChanged(); }
172
QJSValue stringVar() const { return m_stringVar; }
173
void setStringVar(const QJSValue &v) { m_stringVar = v; emit stringVarChanged(); }
175
QJSValue urlVar() const { return m_urlVar; }
176
void setUrlVar(const QJSValue &v) { m_urlVar = v; emit urlVarChanged(); }
178
QJSValue colorVar() const { return m_colorVar; }
179
void setColorVar(const QJSValue &v) { m_colorVar = v; emit colorVarChanged(); }
181
QJSValue objectVar() const { return m_objectVar; }
182
void setObjectVar(const QJSValue &v) { m_objectVar = v; emit objectVarChanged(); }
184
QJSValue nullVar() const { return m_nullVar; }
185
void setNullVar(const QJSValue &v) { m_nullVar = v; emit nullVarChanged(); }
187
QJSValue varVar() const { return m_varVar; }
188
void setVarVar(const QJSValue &v) { m_varVar = v; emit varVarChanged(); }
191
void boolVarChanged();
192
void intVarChanged();
193
void realVarChanged();
194
void stringVarChanged();
195
void urlVarChanged();
196
void colorVarChanged();
197
void objectVarChanged();
198
void nullVarChanged();
199
void varVarChanged();
205
QJSValue m_stringVar;
208
QJSValue m_objectVar;
213
void registerTypes();
215
#endif // TESTTYPES_H