7b25784041231ba9dcc4d35e51b786228ddfa9d3
[profile/ivi/qtdeclarative.git] / tests / auto / declarative / qdeclarativelanguage / testtypes.cpp
1 /****************************************************************************
2 **
3 ** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
4 ** All rights reserved.
5 ** Contact: http://www.qt-project.org/
6 **
7 ** This file is part of the test suite of the Qt Toolkit.
8 **
9 ** $QT_BEGIN_LICENSE:LGPL$
10 ** GNU Lesser General Public License Usage
11 ** This file may be used under the terms of the GNU Lesser General Public
12 ** License version 2.1 as published by the Free Software Foundation and
13 ** appearing in the file LICENSE.LGPL included in the packaging of this
14 ** file. Please review the following information to ensure the GNU Lesser
15 ** General Public License version 2.1 requirements will be met:
16 ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
17 **
18 ** In addition, as a special exception, Nokia gives you certain additional
19 ** rights. These rights are described in the Nokia Qt LGPL Exception
20 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
21 **
22 ** GNU General Public License Usage
23 ** Alternatively, this file may be used under the terms of the GNU General
24 ** Public License version 3.0 as published by the Free Software Foundation
25 ** and appearing in the file LICENSE.GPL included in the packaging of this
26 ** file. Please review the following information to ensure the GNU General
27 ** Public License version 3.0 requirements will be met:
28 ** http://www.gnu.org/copyleft/gpl.html.
29 **
30 ** Other Usage
31 ** Alternatively, this file may be used in accordance with the terms and
32 ** conditions contained in a signed written agreement between you and Nokia.
33 **
34 **
35 **
36 **
37 **
38 ** $QT_END_LICENSE$
39 **
40 ****************************************************************************/
41 #include "testtypes.h"
42
43 void registerTypes()
44 {
45     qmlRegisterInterface<MyInterface>("MyInterface");
46     qmlRegisterType<MyQmlObject>("Test",1,0,"MyQmlObject");
47     qmlRegisterType<MyTypeObject>("Test",1,0,"MyTypeObject");
48     qmlRegisterType<MyContainer>("Test",1,0,"MyContainer");
49     qmlRegisterType<MyPropertyValueSource>("Test",1,0,"MyPropertyValueSource");
50     qmlRegisterType<MyDotPropertyObject>("Test",1,0,"MyDotPropertyObject");
51     qmlRegisterType<MyNamespace::MyNamespacedType>("Test",1,0,"MyNamespacedType");
52     qmlRegisterType<MyNamespace::MySecondNamespacedType>("Test",1,0,"MySecondNamespacedType");
53     qmlRegisterType<MyParserStatus>("Test",1,0,"MyParserStatus");
54     qmlRegisterType<MyGroupedObject>();
55     qmlRegisterType<MyRevisionedClass>("Test",1,0,"MyRevisionedClass");
56     qmlRegisterType<MyRevisionedClass,1>("Test",1,1,"MyRevisionedClass");
57     qmlRegisterType<MyRevisionedIllegalOverload>("Test",1,0,"MyRevisionedIllegalOverload");
58     qmlRegisterType<MyRevisionedLegalOverload>("Test",1,0,"MyRevisionedLegalOverload");
59
60     // Register the uncreatable base class
61     qmlRegisterRevision<MyRevisionedBaseClassRegistered,1>("Test",1,1);
62     // MyRevisionedSubclass 1.0 uses MyRevisionedClass revision 0
63     qmlRegisterType<MyRevisionedSubclass>("Test",1,0,"MyRevisionedSubclass");
64     // MyRevisionedSubclass 1.1 uses MyRevisionedClass revision 1
65     qmlRegisterType<MyRevisionedSubclass,1>("Test",1,1,"MyRevisionedSubclass");
66
67     // Only version 1.0, but its super class is registered in version 1.1 also
68     qmlRegisterType<MySubclass>("Test",1,0,"MySubclass");
69
70     qmlRegisterCustomType<MyCustomParserType>("Test", 1, 0, "MyCustomParserType", new MyCustomParserTypeParser);
71
72     qmlRegisterTypeNotAvailable("Test",1,0,"UnavailableType", "UnavailableType is unavailable for testing");
73
74     qmlRegisterType<MyQmlObject>("Test.Version",1,0,"MyQmlObject");
75     qmlRegisterType<MyTypeObject>("Test.Version",1,0,"MyTypeObject");
76     qmlRegisterType<MyTypeObject>("Test.Version",2,0,"MyTypeObject");
77
78     qmlRegisterType<MyVersion2Class>("Test.VersionOrder", 2,0, "MyQmlObject");
79     qmlRegisterType<MyQmlObject>("Test.VersionOrder", 1,0, "MyQmlObject");
80 }
81
82 QVariant myCustomVariantTypeConverter(const QString &data)
83 {
84     MyCustomVariantType rv;
85     rv.a = data.toInt();
86     return QVariant::fromValue(rv);
87 }
88