summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--demos/declarative/minehunt/main.cpp3
-rw-r--r--doc/src/declarative/extending-examples.qdoc8
-rw-r--r--doc/src/declarative/extending.qdoc31
-rw-r--r--examples/declarative/extending/adding/main.cpp2
-rw-r--r--examples/declarative/extending/adding/person.cpp1
-rw-r--r--examples/declarative/extending/attached/birthdayparty.cpp3
-rw-r--r--examples/declarative/extending/attached/main.cpp7
-rw-r--r--examples/declarative/extending/attached/person.cpp4
-rw-r--r--examples/declarative/extending/binding/birthdayparty.cpp2
-rw-r--r--examples/declarative/extending/binding/happybirthday.cpp1
-rw-r--r--examples/declarative/extending/binding/main.cpp9
-rw-r--r--examples/declarative/extending/binding/person.cpp4
-rw-r--r--examples/declarative/extending/coercion/birthdayparty.cpp1
-rw-r--r--examples/declarative/extending/coercion/main.cpp7
-rw-r--r--examples/declarative/extending/coercion/person.cpp6
-rw-r--r--examples/declarative/extending/default/birthdayparty.cpp1
-rw-r--r--examples/declarative/extending/default/main.cpp5
-rw-r--r--examples/declarative/extending/default/person.cpp3
-rw-r--r--examples/declarative/extending/extended/lineedit.cpp1
-rw-r--r--examples/declarative/extending/extended/main.cpp3
-rw-r--r--examples/declarative/extending/grouped/birthdayparty.cpp1
-rw-r--r--examples/declarative/extending/grouped/main.cpp6
-rw-r--r--examples/declarative/extending/grouped/person.cpp4
-rw-r--r--examples/declarative/extending/properties/birthdayparty.cpp1
-rw-r--r--examples/declarative/extending/properties/main.cpp3
-rw-r--r--examples/declarative/extending/properties/person.cpp1
-rw-r--r--examples/declarative/extending/signal/birthdayparty.cpp2
-rw-r--r--examples/declarative/extending/signal/main.cpp7
-rw-r--r--examples/declarative/extending/signal/person.cpp4
-rw-r--r--examples/declarative/extending/valuesource/birthdayparty.cpp2
-rw-r--r--examples/declarative/extending/valuesource/happybirthday.cpp1
-rw-r--r--examples/declarative/extending/valuesource/main.cpp9
-rw-r--r--examples/declarative/extending/valuesource/person.cpp4
-rw-r--r--src/declarative/declarative.pro1
-rw-r--r--src/declarative/graphicsitems/qmlgraphicsitemsmodule.cpp6
-rw-r--r--src/declarative/qml/qml.h39
-rw-r--r--src/declarative/qml/qmlbinding.cpp2
-rw-r--r--src/declarative/qml/qmlcomponent.cpp1
-rw-r--r--src/declarative/qml/qmlcustomparser.cpp8
-rw-r--r--src/declarative/qml/qmlcustomparser_p.h10
-rw-r--r--src/declarative/qml/qmlengine.cpp14
-rw-r--r--src/declarative/qml/qmlengine_p.h2
-rw-r--r--src/declarative/qml/qmlworkerscript.cpp4
-rw-r--r--src/declarative/util/qmlanimation.cpp24
-rw-r--r--src/declarative/util/qmlbehavior.cpp2
-rw-r--r--src/declarative/util/qmlbind.cpp2
-rw-r--r--src/declarative/util/qmlconnection.cpp2
-rw-r--r--src/declarative/util/qmldatetimeformatter.cpp2
-rw-r--r--src/declarative/util/qmleasefollow.cpp2
-rw-r--r--src/declarative/util/qmlfontloader.cpp2
-rw-r--r--src/declarative/util/qmlgraphicsutilmodule.cpp118
-rw-r--r--src/declarative/util/qmlgraphicsutilmodule_p.h63
-rw-r--r--src/declarative/util/qmllistmodel.cpp35
-rw-r--r--src/declarative/util/qmllistmodel_p.h32
-rw-r--r--src/declarative/util/qmlnumberformatter.cpp2
-rw-r--r--src/declarative/util/qmlpackage.cpp20
-rw-r--r--src/declarative/util/qmlpackage_p.h16
-rw-r--r--src/declarative/util/qmlpropertychanges.cpp11
-rw-r--r--src/declarative/util/qmlpropertychanges_p.h11
-rw-r--r--src/declarative/util/qmlspringfollow.cpp2
-rw-r--r--src/declarative/util/qmlstate.cpp3
-rw-r--r--src/declarative/util/qmlstategroup.cpp2
-rw-r--r--src/declarative/util/qmlstateoperations.cpp6
-rw-r--r--src/declarative/util/qmlstyledtext_p.h1
-rw-r--r--src/declarative/util/qmlsystempalette.cpp2
-rw-r--r--src/declarative/util/qmltimer.cpp2
-rw-r--r--src/declarative/util/qmltransition.cpp2
-rw-r--r--src/declarative/util/qmlxmllistmodel.cpp44
-rw-r--r--src/declarative/util/qmlxmllistmodel_p.h33
-rw-r--r--src/declarative/util/qnumberformat.cpp2
-rw-r--r--src/declarative/util/util.pri2
-rw-r--r--src/declarative/widgets/graphicslayouts.cpp319
-rw-r--r--src/declarative/widgets/widgets.pri9
-rw-r--r--src/plugins/qmlmodules/qmlmodules.pro2
-rw-r--r--src/plugins/qmlmodules/widgets/graphicslayouts.cpp260
-rw-r--r--src/plugins/qmlmodules/widgets/graphicslayouts_p.h (renamed from src/declarative/widgets/graphicslayouts_p.h)58
-rw-r--r--src/plugins/qmlmodules/widgets/graphicswidgets.cpp40
-rw-r--r--src/plugins/qmlmodules/widgets/graphicswidgets_p.h (renamed from src/declarative/widgets/graphicswidgets_p.h)0
-rw-r--r--src/plugins/qmlmodules/widgets/widgets.cpp (renamed from src/declarative/widgets/graphicswidgets.cpp)43
-rw-r--r--src/plugins/qmlmodules/widgets/widgets.pro15
-rw-r--r--tests/auto/declarative/layouts/data/layouts.qml1
-rw-r--r--tests/auto/declarative/qmlecmascript/testtypes.cpp15
-rw-r--r--tests/auto/declarative/qmlecmascript/testtypes.h2
-rw-r--r--tests/auto/declarative/qmlecmascript/tst_qmlecmascript.cpp3
-rw-r--r--tests/auto/declarative/qmlgraphicspositioners/tst_qmlgraphicspositioners.cpp6
-rw-r--r--tests/auto/declarative/qmlgraphicswebview/testtypes.cpp5
-rw-r--r--tests/auto/declarative/qmlgraphicswebview/testtypes.h2
-rw-r--r--tests/auto/declarative/qmlgraphicswebview/tst_qmlgraphicswebview.cpp6
-rw-r--r--tests/auto/declarative/qmllanguage/testtypes.cpp21
-rw-r--r--tests/auto/declarative/qmllanguage/testtypes.h2
-rw-r--r--tests/auto/declarative/qmllanguage/tst_qmllanguage.cpp16
-rw-r--r--tests/auto/declarative/qmllistreference/tst_qmllistreference.cpp7
-rw-r--r--tests/auto/declarative/qmlmetaproperty/tst_qmlmetaproperty.cpp11
-rw-r--r--tests/auto/declarative/qmlmetatype/tst_qmlmetatype.cpp14
-rw-r--r--tests/auto/declarative/qmlmoduleplugin/plugin/plugin.cpp2
-rw-r--r--tests/auto/declarative/qmlstates/tst_qmlstates.cpp8
-rw-r--r--tests/auto/declarative/qmlvaluetypes/testtypes.cpp9
-rw-r--r--tests/auto/declarative/qmlvaluetypes/testtypes.h2
-rw-r--r--tests/auto/declarative/qmlvaluetypes/tst_qmlvaluetypes.cpp7
-rw-r--r--tests/benchmarks/declarative/binding/testtypes.cpp5
-rw-r--r--tests/benchmarks/declarative/binding/testtypes.h2
-rw-r--r--tests/benchmarks/declarative/binding/tst_binding.cpp9
-rw-r--r--tests/benchmarks/declarative/qmlcomponent/testtypes.cpp5
-rw-r--r--tests/benchmarks/declarative/qmlcomponent/testtypes.h2
-rw-r--r--tests/benchmarks/declarative/qmlcomponent/tst_qmlcomponent.cpp9
-rw-r--r--tests/benchmarks/declarative/qmltime/qmltime.cpp3
-rw-r--r--tests/benchmarks/declarative/script/tst_script.cpp8
-rw-r--r--tools/qmlviewer/main.cpp6
-rw-r--r--tools/qmlviewer/qfxtester.cpp12
-rw-r--r--tools/qmlviewer/qfxtester.h2
-rw-r--r--tools/qmlviewer/qmlfolderlistmodel.cpp8
-rw-r--r--tools/qmlviewer/qmlfolderlistmodel.h2
-rw-r--r--tools/qmlviewer/qmlviewer.cpp7
-rw-r--r--tools/qmlviewer/qmlviewer.h2
114 files changed, 989 insertions, 657 deletions
diff --git a/demos/declarative/minehunt/main.cpp b/demos/declarative/minehunt/main.cpp
index a897919..0b2d818 100644
--- a/demos/declarative/minehunt/main.cpp
+++ b/demos/declarative/minehunt/main.cpp
@@ -92,7 +92,6 @@ private:
};
QML_DECLARE_TYPE(Tile);
-QML_DEFINE_TYPE(0,0,0,Tile,Tile);
class MyWidget : public QWidget
{
@@ -321,6 +320,8 @@ int main(int argc, char ** argv)
int width = 370;
int height = 480;
+ QML_REGISTER_TYPE(0,0,0,Tile,Tile);
+
for (int i = 1; i < argc; ++i) {
QString arg = argv[i];
if (arg == "-frameless") {
diff --git a/doc/src/declarative/extending-examples.qdoc b/doc/src/declarative/extending-examples.qdoc
index b84ae0e..b912a1d 100644
--- a/doc/src/declarative/extending-examples.qdoc
+++ b/doc/src/declarative/extending-examples.qdoc
@@ -69,7 +69,7 @@ Q_DECLARE_METATYPE() functionality.
The Person class implementation is quite basic. The property accessors simply
return members of the object instance.
-The implementation must also include the QML_DEFINE_TYPE() macro. This macro
+The implementation must also be registered using the QML_REGISTER_TYPE() macro. This macro
registers the Person class with QML as a type in the People library version 1.0,
and defines the mapping between the C++ and QML class names.
@@ -160,13 +160,13 @@ previous example. However, as we have repurposed the People class as a common
base for Boy and Girl, we want to prevent it from being instantiated from QML
directly - an explicit Boy or Girl should be instantiated instead.
-\snippet examples/declarative/extending/coercion/person.cpp 0
+\snippet examples/declarative/extending/coercion/main.cpp 0
While we want to disallow instantiating Person from within QML, it still needs
to be registered with the QML engine, so that it can be used as a property type
and other types can be coerced to it. To register a type, without defining a
-named mapping into QML, we use the QML_DEFINE_NOCREATE_TYPE() macro instead of
-the QML_DEFINE_TYPE() macro used previously.
+named mapping into QML, we call the QML_REGISTER_NOCREATE_TYPE() macro instead of
+the QML_REGISTER_TYPE() macro used previously.
\section2 Define Boy and Girl
diff --git a/doc/src/declarative/extending.qdoc b/doc/src/declarative/extending.qdoc
index 396ddab..5da4adb 100644
--- a/doc/src/declarative/extending.qdoc
+++ b/doc/src/declarative/extending.qdoc
@@ -72,7 +72,7 @@ Custom C++ types are made available to QML using these two macros:
\quotation
\code
#define QML_DECLARE_TYPE(T)
-#define QML_DEFINE_TYPE(URI,VMAJ,VMIN,QmlName,T)
+#define QML_REGISTER_TYPE(URI,VMAJ,VMIN,QmlName,T)
\endcode
Register the C++ type \a T with the QML system, and make it available in QML
@@ -80,9 +80,8 @@ under the name \a QmlName in library URI version VMAJ.VMIN.
\a T and \a QmlName may be the same.
Generally the QML_DECLARE_TYPE() macro should be included immediately following
-the type declaration (usually in its header file), and the QML_DEFINE_TYPE()
-macro in the implementation file. QML_DEFINE_TYPE() must not be present in
-a header file.
+the type declaration (usually in its header file), and the QML_REGISTER_TYPE()
+macro called by the implementation.
Type \a T must be a concrete type that inherits QObject and has a default
constructor.
@@ -153,15 +152,14 @@ from registering a new QML type. The following macros are used instead:
\quotation
\code
#define QML_DECLARE_INTERFACE(T)
- #define QML_DEFINE_INTERFACE(T)
+ #define QML_REGISTER_INTERFACE(T)
\endcode
Register the C++ interface \a T with the QML system.
Generally the QML_DECLARE_INTERFACE() macro should be included immediately
following the interface declaration (usually in its header file), and the
-QML_DEFINE_INTERFACE() macro in an implementation file. QML_DEFINE_INTERFACE()
-must not be present in a header file.
+QML_REGISTER_INTERFACE() macro called by the implementation.
Following registration, QML can coerce objects that implement this interface
for assignment to appropriately typed properties.
@@ -194,7 +192,7 @@ type used in the previous section, but the assignment is valid as both the Boy
and Girl objects inherit from Person.
To assign to a property, the property's type must have been registered with QML.
-Both the QML_DEFINE_TYPE() and QML_DEFINE_INTERFACE() macros already shown can
+Both the QML_REGISTER_TYPE() and QML_REGISTER_INTERFACE() macros already shown can
be used to register a type with QML. Additionally, if a type that acts purely
as a base class that cannot be instantiated from QML needs to be
registered these macros can be used:
@@ -202,18 +200,17 @@ registered these macros can be used:
\quotation
\code
#define QML_DECLARE_TYPE(T)
- #define QML_DEFINE_NOCREATE_TYPE(T)
+ #define QML_REGISTER_NOCREATE_TYPE(T)
\endcode
-Register the C++ type \a T with the QML system. QML_DEFINE_NOCREATE_TYPE()
-differs from QML_DEFINE_TYPE() in that it does not define a mapping between the
+Register the C++ type \a T with the QML system. QML_REGISTER_NOCREATE_TYPE()
+differs from QML_REGISTER_TYPE() in that it does not define a mapping between the
C++ class and a QML element name, so the type is not instantiable from QML, but
it is available for type coercion.
Generally the QML_DECLARE_TYPE() macro should be included immediately following
the type declaration (usually in its header file), and the
-QML_DEFINE_NOCREATE_TYPE() macro in the implementation file.
-QML_DEFINE_NOCREATE_TYPE() must not be present in a header file.
+QML_REGISTER_NOCREATE_TYPE() macro called from the implementation.
Type \a T must inherit QObject, but there are no restrictions on whether it is
concrete or the signature of its constructor.
@@ -585,11 +582,11 @@ the appropriate property on the extension object is used instead.
When an extended type is installed, one of the
\code
- #define QML_DEFINE_EXTENDED_TYPE(URI, VMAJ, VFROM, VTO, QmlName,T, ExtendedT)
- #define QML_DEFINE_EXTENDED_NOCREATE_TYPE(T, ExtendedT)
+ #define QML_REGISTER_EXTENDED_TYPE(URI, VMAJ, VFROM, VTO, QmlName,T, ExtendedT)
+ #define QML_REGISTER_EXTENDED_NOCREATE_TYPE(T, ExtendedT)
\endcode
-macros should be used instead of the regular \c QML_DEFINE_TYPE or
-\c QML_DEFINE_NOCREATE_TYPE. The arguments are identical to the corresponding
+macros should be used instead of the regular \c QML_REGISTER_TYPE or
+\c QML_REGISTER_NOCREATE_TYPE. The arguments are identical to the corresponding
non-extension object macro, except for the ExtendedT parameter which is the type
of the extension object.
diff --git a/examples/declarative/extending/adding/main.cpp b/examples/declarative/extending/adding/main.cpp
index 74ea35c..0aeeecf 100644
--- a/examples/declarative/extending/adding/main.cpp
+++ b/examples/declarative/extending/adding/main.cpp
@@ -48,6 +48,8 @@ int main(int argc, char ** argv)
{
QCoreApplication app(argc, argv);
+ QML_REGISTER_TYPE(People, 1,0, Person, Person);
+
QmlEngine engine;
QmlComponent component(&engine, ":example.qml");
Person *person = qobject_cast<Person *>(component.create());
diff --git a/examples/declarative/extending/adding/person.cpp b/examples/declarative/extending/adding/person.cpp
index 9efa2b8..cdf08e0 100644
--- a/examples/declarative/extending/adding/person.cpp
+++ b/examples/declarative/extending/adding/person.cpp
@@ -66,5 +66,4 @@ void Person::setShoeSize(int s)
m_shoeSize = s;
}
-QML_DEFINE_TYPE(People, 1,0, Person, Person);
// ![0]
diff --git a/examples/declarative/extending/attached/birthdayparty.cpp b/examples/declarative/extending/attached/birthdayparty.cpp
index ffdda57..293628e 100644
--- a/examples/declarative/extending/attached/birthdayparty.cpp
+++ b/examples/declarative/extending/attached/birthdayparty.cpp
@@ -55,8 +55,6 @@ void BirthdayPartyAttached::setRsvp(const QDate &d)
m_rsvp = d;
}
-QML_DEFINE_NOCREATE_TYPE(BirthdayPartyAttached);
-
BirthdayParty::BirthdayParty(QObject *parent)
: QObject(parent), m_celebrant(0)
{
@@ -92,4 +90,3 @@ BirthdayPartyAttached *BirthdayParty::qmlAttachedProperties(QObject *object)
return new BirthdayPartyAttached(object);
}
-QML_DEFINE_TYPE(People, 1,0, BirthdayParty, BirthdayParty);
diff --git a/examples/declarative/extending/attached/main.cpp b/examples/declarative/extending/attached/main.cpp
index 27a9287..f4223a2 100644
--- a/examples/declarative/extending/attached/main.cpp
+++ b/examples/declarative/extending/attached/main.cpp
@@ -49,6 +49,13 @@ int main(int argc, char ** argv)
{
QCoreApplication app(argc, argv);
+ QML_REGISTER_NOCREATE_TYPE(BirthdayPartyAttached);
+ QML_REGISTER_TYPE(People, 1,0, BirthdayParty, BirthdayParty);
+ QML_REGISTER_NOCREATE_TYPE(ShoeDescription);
+ QML_REGISTER_NOCREATE_TYPE(Person);
+ QML_REGISTER_TYPE(People, 1,0, Boy, Boy);
+ QML_REGISTER_TYPE(People, 1,0, Girl, Girl);
+
QmlEngine engine;
QmlComponent component(&engine, ":example.qml");
BirthdayParty *party = qobject_cast<BirthdayParty *>(component.create());
diff --git a/examples/declarative/extending/attached/person.cpp b/examples/declarative/extending/attached/person.cpp
index 909505a..0a9e508 100644
--- a/examples/declarative/extending/attached/person.cpp
+++ b/examples/declarative/extending/attached/person.cpp
@@ -84,7 +84,6 @@ void ShoeDescription::setPrice(qreal p)
{
m_price = p;
}
-QML_DEFINE_NOCREATE_TYPE(ShoeDescription);
Person::Person(QObject *parent)
: QObject(parent)
@@ -106,18 +105,15 @@ ShoeDescription *Person::shoe()
return &m_shoe;
}
-QML_DEFINE_NOCREATE_TYPE(Person);
Boy::Boy(QObject * parent)
: Person(parent)
{
}
-QML_DEFINE_TYPE(People, 1,0, Boy, Boy);
Girl::Girl(QObject * parent)
: Person(parent)
{
}
-QML_DEFINE_TYPE(People, 1,0, Girl, Girl);
diff --git a/examples/declarative/extending/binding/birthdayparty.cpp b/examples/declarative/extending/binding/birthdayparty.cpp
index 62b9c7b..392c59a 100644
--- a/examples/declarative/extending/binding/birthdayparty.cpp
+++ b/examples/declarative/extending/binding/birthdayparty.cpp
@@ -58,7 +58,6 @@ void BirthdayPartyAttached::setRsvp(const QDate &d)
}
}
-QML_DEFINE_NOCREATE_TYPE(BirthdayPartyAttached);
BirthdayParty::BirthdayParty(QObject *parent)
: QObject(parent), m_celebrant(0)
@@ -113,4 +112,3 @@ BirthdayPartyAttached *BirthdayParty::qmlAttachedProperties(QObject *object)
return new BirthdayPartyAttached(object);
}
-QML_DEFINE_TYPE(People, 1,0, BirthdayParty, BirthdayParty);
diff --git a/examples/declarative/extending/binding/happybirthday.cpp b/examples/declarative/extending/binding/happybirthday.cpp
index 38f3c08..704d384 100644
--- a/examples/declarative/extending/binding/happybirthday.cpp
+++ b/examples/declarative/extending/binding/happybirthday.cpp
@@ -84,4 +84,3 @@ void HappyBirthday::advance()
m_target.write(m_lyrics.at(m_line));
}
-QML_DEFINE_TYPE(People, 1,0, HappyBirthday, HappyBirthday);
diff --git a/examples/declarative/extending/binding/main.cpp b/examples/declarative/extending/binding/main.cpp
index ba38e82..ea0e33a 100644
--- a/examples/declarative/extending/binding/main.cpp
+++ b/examples/declarative/extending/binding/main.cpp
@@ -43,12 +43,21 @@
#include <QmlComponent>
#include <QDebug>
#include "birthdayparty.h"
+#include "happybirthday.h"
#include "person.h"
int main(int argc, char ** argv)
{
QCoreApplication app(argc, argv);
+ QML_REGISTER_NOCREATE_TYPE(BirthdayPartyAttached);
+ QML_REGISTER_TYPE(People, 1,0, BirthdayParty, BirthdayParty);
+ QML_REGISTER_TYPE(People, 1,0, HappyBirthday, HappyBirthday);
+ QML_REGISTER_NOCREATE_TYPE(ShoeDescription);
+ QML_REGISTER_NOCREATE_TYPE(Person);
+ QML_REGISTER_TYPE(People, 1,0, Boy, Boy);
+ QML_REGISTER_TYPE(People, 1,0, Girl, Girl);
+
QmlEngine engine;
QmlComponent component(&engine, ":example.qml");
BirthdayParty *party = qobject_cast<BirthdayParty *>(component.create());
diff --git a/examples/declarative/extending/binding/person.cpp b/examples/declarative/extending/binding/person.cpp
index 50fb754..9a2248f 100644
--- a/examples/declarative/extending/binding/person.cpp
+++ b/examples/declarative/extending/binding/person.cpp
@@ -100,7 +100,6 @@ void ShoeDescription::setPrice(qreal p)
m_price = p;
emit shoeChanged();
}
-QML_DEFINE_NOCREATE_TYPE(ShoeDescription);
Person::Person(QObject *parent)
: QObject(parent)
@@ -126,18 +125,15 @@ ShoeDescription *Person::shoe()
return &m_shoe;
}
-QML_DEFINE_NOCREATE_TYPE(Person);
Boy::Boy(QObject * parent)
: Person(parent)
{
}
-QML_DEFINE_TYPE(People, 1,0, Boy, Boy);
Girl::Girl(QObject * parent)
: Person(parent)
{
}
-QML_DEFINE_TYPE(People, 1,0, Girl, Girl);
diff --git a/examples/declarative/extending/coercion/birthdayparty.cpp b/examples/declarative/extending/coercion/birthdayparty.cpp
index 15a4ca9..f0eb599 100644
--- a/examples/declarative/extending/coercion/birthdayparty.cpp
+++ b/examples/declarative/extending/coercion/birthdayparty.cpp
@@ -70,4 +70,3 @@ Person *BirthdayParty::guest(int index) const
return m_guests.at(index);
}
-QML_DEFINE_TYPE(People, 1,0, BirthdayParty, BirthdayParty);
diff --git a/examples/declarative/extending/coercion/main.cpp b/examples/declarative/extending/coercion/main.cpp
index ccbee83..b1a203f 100644
--- a/examples/declarative/extending/coercion/main.cpp
+++ b/examples/declarative/extending/coercion/main.cpp
@@ -49,6 +49,13 @@ int main(int argc, char ** argv)
{
QCoreApplication app(argc, argv);
+ QML_REGISTER_TYPE(People, 1,0, BirthdayParty, BirthdayParty);
+// ![0]
+ QML_REGISTER_NOCREATE_TYPE(Person);
+// ![0]
+ QML_REGISTER_TYPE(People, 1,0, Boy, Boy);
+ QML_REGISTER_TYPE(People, 1,0, Girl, Girl);
+
QmlEngine engine;
QmlComponent component(&engine, ":example.qml");
BirthdayParty *party = qobject_cast<BirthdayParty *>(component.create());
diff --git a/examples/declarative/extending/coercion/person.cpp b/examples/declarative/extending/coercion/person.cpp
index 9eef8f7..5b5203a 100644
--- a/examples/declarative/extending/coercion/person.cpp
+++ b/examples/declarative/extending/coercion/person.cpp
@@ -65,22 +65,16 @@ void Person::setShoeSize(int s)
m_shoeSize = s;
}
-// ![0]
-QML_DEFINE_NOCREATE_TYPE(Person);
-// ![0]
-
// ![1]
Boy::Boy(QObject * parent)
: Person(parent)
{
}
-QML_DEFINE_TYPE(People, 1,0, Boy, Boy);
Girl::Girl(QObject * parent)
: Person(parent)
{
}
-QML_DEFINE_TYPE(People, 1,0, Girl, Girl);
// ![1]
diff --git a/examples/declarative/extending/default/birthdayparty.cpp b/examples/declarative/extending/default/birthdayparty.cpp
index 15a4ca9..f0eb599 100644
--- a/examples/declarative/extending/default/birthdayparty.cpp
+++ b/examples/declarative/extending/default/birthdayparty.cpp
@@ -70,4 +70,3 @@ Person *BirthdayParty::guest(int index) const
return m_guests.at(index);
}
-QML_DEFINE_TYPE(People, 1,0, BirthdayParty, BirthdayParty);
diff --git a/examples/declarative/extending/default/main.cpp b/examples/declarative/extending/default/main.cpp
index ccbee83..ea51e00 100644
--- a/examples/declarative/extending/default/main.cpp
+++ b/examples/declarative/extending/default/main.cpp
@@ -49,6 +49,11 @@ int main(int argc, char ** argv)
{
QCoreApplication app(argc, argv);
+ QML_REGISTER_TYPE(People, 1,0, BirthdayParty, BirthdayParty);
+ QML_REGISTER_NOCREATE_TYPE(Person);
+ QML_REGISTER_TYPE(People, 1,0, Boy, Boy);
+ QML_REGISTER_TYPE(People, 1,0, Girl, Girl);
+
QmlEngine engine;
QmlComponent component(&engine, ":example.qml");
BirthdayParty *party = qobject_cast<BirthdayParty *>(component.create());
diff --git a/examples/declarative/extending/default/person.cpp b/examples/declarative/extending/default/person.cpp
index a0b4960..69216d3 100644
--- a/examples/declarative/extending/default/person.cpp
+++ b/examples/declarative/extending/default/person.cpp
@@ -65,18 +65,15 @@ void Person::setShoeSize(int s)
m_shoeSize = s;
}
-QML_DEFINE_NOCREATE_TYPE(Person);
Boy::Boy(QObject * parent)
: Person(parent)
{
}
-QML_DEFINE_TYPE(People, 1,0, Boy, Boy);
Girl::Girl(QObject * parent)
: Person(parent)
{
}
-QML_DEFINE_TYPE(People, 1,0, Girl, Girl);
diff --git a/examples/declarative/extending/extended/lineedit.cpp b/examples/declarative/extending/extended/lineedit.cpp
index ec86aad..0d8eb7f 100644
--- a/examples/declarative/extending/extended/lineedit.cpp
+++ b/examples/declarative/extending/extended/lineedit.cpp
@@ -103,4 +103,3 @@ void LineEditExtension::setBottomMargin(int m)
}
QML_DECLARE_TYPE(QLineEdit);
-QML_DEFINE_EXTENDED_TYPE(People, 1,0, QLineEdit, QLineEdit, LineEditExtension);
diff --git a/examples/declarative/extending/extended/main.cpp b/examples/declarative/extending/extended/main.cpp
index 9376af7..ad4bf50 100644
--- a/examples/declarative/extending/extended/main.cpp
+++ b/examples/declarative/extending/extended/main.cpp
@@ -43,11 +43,14 @@
#include <QmlComponent>
#include <QDebug>
#include <QLineEdit>
+#include "lineedit.h"
int main(int argc, char ** argv)
{
QApplication app(argc, argv);
+ QML_REGISTER_EXTENDED_TYPE(People, 1,0, QLineEdit, QLineEdit, LineEditExtension);
+
QmlEngine engine;
QmlComponent component(&engine, ":example.qml");
QLineEdit *edit = qobject_cast<QLineEdit *>(component.create());
diff --git a/examples/declarative/extending/grouped/birthdayparty.cpp b/examples/declarative/extending/grouped/birthdayparty.cpp
index 15a4ca9..f0eb599 100644
--- a/examples/declarative/extending/grouped/birthdayparty.cpp
+++ b/examples/declarative/extending/grouped/birthdayparty.cpp
@@ -70,4 +70,3 @@ Person *BirthdayParty::guest(int index) const
return m_guests.at(index);
}
-QML_DEFINE_TYPE(People, 1,0, BirthdayParty, BirthdayParty);
diff --git a/examples/declarative/extending/grouped/main.cpp b/examples/declarative/extending/grouped/main.cpp
index 79aaab5..a8dafd9 100644
--- a/examples/declarative/extending/grouped/main.cpp
+++ b/examples/declarative/extending/grouped/main.cpp
@@ -49,6 +49,12 @@ int main(int argc, char ** argv)
{
QCoreApplication app(argc, argv);
+ QML_REGISTER_TYPE(People, 1,0, BirthdayParty, BirthdayParty);
+ QML_REGISTER_NOCREATE_TYPE(ShoeDescription);
+ QML_REGISTER_NOCREATE_TYPE(Person);
+ QML_REGISTER_TYPE(People, 1,0, Boy, Boy);
+ QML_REGISTER_TYPE(People, 1,0, Girl, Girl);
+
QmlEngine engine;
QmlComponent component(&engine, ":example.qml");
BirthdayParty *party = qobject_cast<BirthdayParty *>(component.create());
diff --git a/examples/declarative/extending/grouped/person.cpp b/examples/declarative/extending/grouped/person.cpp
index 909505a..0a9e508 100644
--- a/examples/declarative/extending/grouped/person.cpp
+++ b/examples/declarative/extending/grouped/person.cpp
@@ -84,7 +84,6 @@ void ShoeDescription::setPrice(qreal p)
{
m_price = p;
}
-QML_DEFINE_NOCREATE_TYPE(ShoeDescription);
Person::Person(QObject *parent)
: QObject(parent)
@@ -106,18 +105,15 @@ ShoeDescription *Person::shoe()
return &m_shoe;
}
-QML_DEFINE_NOCREATE_TYPE(Person);
Boy::Boy(QObject * parent)
: Person(parent)
{
}
-QML_DEFINE_TYPE(People, 1,0, Boy, Boy);
Girl::Girl(QObject * parent)
: Person(parent)
{
}
-QML_DEFINE_TYPE(People, 1,0, Girl, Girl);
diff --git a/examples/declarative/extending/properties/birthdayparty.cpp b/examples/declarative/extending/properties/birthdayparty.cpp
index 23e6e58..2fbdad9 100644
--- a/examples/declarative/extending/properties/birthdayparty.cpp
+++ b/examples/declarative/extending/properties/birthdayparty.cpp
@@ -72,4 +72,3 @@ Person *BirthdayParty::guest(int index) const
}
// ![0]
-QML_DEFINE_TYPE(People, 1,0, BirthdayParty, BirthdayParty);
diff --git a/examples/declarative/extending/properties/main.cpp b/examples/declarative/extending/properties/main.cpp
index 97d7905..2211b89 100644
--- a/examples/declarative/extending/properties/main.cpp
+++ b/examples/declarative/extending/properties/main.cpp
@@ -49,6 +49,9 @@ int main(int argc, char ** argv)
{
QCoreApplication app(argc, argv);
+ QML_REGISTER_TYPE(People, 1,0, BirthdayParty, BirthdayParty);
+ QML_REGISTER_TYPE(People, 1,0, Person, Person);
+
QmlEngine engine;
QmlComponent component(&engine, ":example.qml");
BirthdayParty *party = qobject_cast<BirthdayParty *>(component.create());
diff --git a/examples/declarative/extending/properties/person.cpp b/examples/declarative/extending/properties/person.cpp
index d1b8bf4..92c54f5 100644
--- a/examples/declarative/extending/properties/person.cpp
+++ b/examples/declarative/extending/properties/person.cpp
@@ -65,4 +65,3 @@ void Person::setShoeSize(int s)
m_shoeSize = s;
}
-QML_DEFINE_TYPE(People, 1,0, Person, Person);
diff --git a/examples/declarative/extending/signal/birthdayparty.cpp b/examples/declarative/extending/signal/birthdayparty.cpp
index d8686f0..d57e075 100644
--- a/examples/declarative/extending/signal/birthdayparty.cpp
+++ b/examples/declarative/extending/signal/birthdayparty.cpp
@@ -55,7 +55,6 @@ void BirthdayPartyAttached::setRsvp(const QDate &d)
m_rsvp = d;
}
-QML_DEFINE_NOCREATE_TYPE(BirthdayPartyAttached);
BirthdayParty::BirthdayParty(QObject *parent)
: QObject(parent), m_celebrant(0)
@@ -98,4 +97,3 @@ BirthdayPartyAttached *BirthdayParty::qmlAttachedProperties(QObject *object)
return new BirthdayPartyAttached(object);
}
-QML_DEFINE_TYPE(People, 1,0, BirthdayParty, BirthdayParty);
diff --git a/examples/declarative/extending/signal/main.cpp b/examples/declarative/extending/signal/main.cpp
index eb3bb4b..9d8e253 100644
--- a/examples/declarative/extending/signal/main.cpp
+++ b/examples/declarative/extending/signal/main.cpp
@@ -49,6 +49,13 @@ int main(int argc, char ** argv)
{
QCoreApplication app(argc, argv);
+ QML_REGISTER_NOCREATE_TYPE(BirthdayPartyAttached);
+ QML_REGISTER_TYPE(People, 1,0, BirthdayParty, BirthdayParty);
+ QML_REGISTER_NOCREATE_TYPE(ShoeDescription);
+ QML_REGISTER_NOCREATE_TYPE(Person);
+ QML_REGISTER_TYPE(People, 1,0, Boy, Boy);
+ QML_REGISTER_TYPE(People, 1,0, Girl, Girl);
+
QmlEngine engine;
QmlComponent component(&engine, ":example.qml");
BirthdayParty *party = qobject_cast<BirthdayParty *>(component.create());
diff --git a/examples/declarative/extending/signal/person.cpp b/examples/declarative/extending/signal/person.cpp
index 909505a..0a9e508 100644
--- a/examples/declarative/extending/signal/person.cpp
+++ b/examples/declarative/extending/signal/person.cpp
@@ -84,7 +84,6 @@ void ShoeDescription::setPrice(qreal p)
{
m_price = p;
}
-QML_DEFINE_NOCREATE_TYPE(ShoeDescription);
Person::Person(QObject *parent)
: QObject(parent)
@@ -106,18 +105,15 @@ ShoeDescription *Person::shoe()
return &m_shoe;
}
-QML_DEFINE_NOCREATE_TYPE(Person);
Boy::Boy(QObject * parent)
: Person(parent)
{
}
-QML_DEFINE_TYPE(People, 1,0, Boy, Boy);
Girl::Girl(QObject * parent)
: Person(parent)
{
}
-QML_DEFINE_TYPE(People, 1,0, Girl, Girl);
diff --git a/examples/declarative/extending/valuesource/birthdayparty.cpp b/examples/declarative/extending/valuesource/birthdayparty.cpp
index a5b3fab..5b3fec1 100644
--- a/examples/declarative/extending/valuesource/birthdayparty.cpp
+++ b/examples/declarative/extending/valuesource/birthdayparty.cpp
@@ -55,7 +55,6 @@ void BirthdayPartyAttached::setRsvp(const QDate &d)
m_rsvp = d;
}
-QML_DEFINE_NOCREATE_TYPE(BirthdayPartyAttached);
BirthdayParty::BirthdayParty(QObject *parent)
: QObject(parent), m_celebrant(0)
@@ -108,4 +107,3 @@ BirthdayPartyAttached *BirthdayParty::qmlAttachedProperties(QObject *object)
return new BirthdayPartyAttached(object);
}
-QML_DEFINE_TYPE(People, 1,0, BirthdayParty, BirthdayParty);
diff --git a/examples/declarative/extending/valuesource/happybirthday.cpp b/examples/declarative/extending/valuesource/happybirthday.cpp
index fbbc9e9..306ec98 100644
--- a/examples/declarative/extending/valuesource/happybirthday.cpp
+++ b/examples/declarative/extending/valuesource/happybirthday.cpp
@@ -79,4 +79,3 @@ void HappyBirthday::advance()
m_target.write(m_lyrics.at(m_line));
}
-QML_DEFINE_TYPE(People, 1,0, HappyBirthday, HappyBirthday);
diff --git a/examples/declarative/extending/valuesource/main.cpp b/examples/declarative/extending/valuesource/main.cpp
index ba38e82..ea0e33a 100644
--- a/examples/declarative/extending/valuesource/main.cpp
+++ b/examples/declarative/extending/valuesource/main.cpp
@@ -43,12 +43,21 @@
#include <QmlComponent>
#include <QDebug>
#include "birthdayparty.h"
+#include "happybirthday.h"
#include "person.h"
int main(int argc, char ** argv)
{
QCoreApplication app(argc, argv);
+ QML_REGISTER_NOCREATE_TYPE(BirthdayPartyAttached);
+ QML_REGISTER_TYPE(People, 1,0, BirthdayParty, BirthdayParty);
+ QML_REGISTER_TYPE(People, 1,0, HappyBirthday, HappyBirthday);
+ QML_REGISTER_NOCREATE_TYPE(ShoeDescription);
+ QML_REGISTER_NOCREATE_TYPE(Person);
+ QML_REGISTER_TYPE(People, 1,0, Boy, Boy);
+ QML_REGISTER_TYPE(People, 1,0, Girl, Girl);
+
QmlEngine engine;
QmlComponent component(&engine, ":example.qml");
BirthdayParty *party = qobject_cast<BirthdayParty *>(component.create());
diff --git a/examples/declarative/extending/valuesource/person.cpp b/examples/declarative/extending/valuesource/person.cpp
index 909505a..0a9e508 100644
--- a/examples/declarative/extending/valuesource/person.cpp
+++ b/examples/declarative/extending/valuesource/person.cpp
@@ -84,7 +84,6 @@ void ShoeDescription::setPrice(qreal p)
{
m_price = p;
}
-QML_DEFINE_NOCREATE_TYPE(ShoeDescription);
Person::Person(QObject *parent)
: QObject(parent)
@@ -106,18 +105,15 @@ ShoeDescription *Person::shoe()
return &m_shoe;
}
-QML_DEFINE_NOCREATE_TYPE(Person);
Boy::Boy(QObject * parent)
: Person(parent)
{
}
-QML_DEFINE_TYPE(People, 1,0, Boy, Boy);
Girl::Girl(QObject * parent)
: Person(parent)
{
}
-QML_DEFINE_TYPE(People, 1,0, Girl, Girl);
diff --git a/src/declarative/declarative.pro b/src/declarative/declarative.pro
index 86a0370..05eb566 100644
--- a/src/declarative/declarative.pro
+++ b/src/declarative/declarative.pro
@@ -24,7 +24,6 @@ include(3rdparty/3rdparty.pri)
include(util/util.pri)
include(graphicsitems/graphicsitems.pri)
include(qml/qml.pri)
-include(widgets/widgets.pri)
include(debugger/debugger.pri)
symbian:TARGET.UID3=0x2001E623
diff --git a/src/declarative/graphicsitems/qmlgraphicsitemsmodule.cpp b/src/declarative/graphicsitems/qmlgraphicsitemsmodule.cpp
index 9263f49..121026e 100644
--- a/src/declarative/graphicsitems/qmlgraphicsitemsmodule.cpp
+++ b/src/declarative/graphicsitems/qmlgraphicsitemsmodule.cpp
@@ -80,12 +80,6 @@
#endif
#include "qmlgraphicsanchors_p.h"
-#define QML_REGISTER_TYPE(URI,VMAJ,VMIN,TYPE,CLASS) \
- qmlRegisterType<CLASS>(#URI, VMAJ, VMIN, #TYPE, #CLASS)
-
-#define QML_REGISTER_NOCREATE_TYPE(CLASS) \
- qmlRegisterType<CLASS>(#CLASS)
-
void QmlGraphicsItemModule::defineModule()
{
QML_REGISTER_TYPE(Qt,4,6,AnimatedImage,QmlGraphicsAnimatedImage);
diff --git a/src/declarative/qml/qml.h b/src/declarative/qml/qml.h
index 7972305..34873a2 100644
--- a/src/declarative/qml/qml.h
+++ b/src/declarative/qml/qml.h
@@ -88,40 +88,17 @@ QT_END_NAMESPACE
QT_BEGIN_NAMESPACE
-#if defined(Q_OS_SYMBIAN)
-#define QML_DEFINE_INTERFACE(INTERFACE) \
- static int defineInterface##INTERFACE = qmlRegisterInterface<INTERFACE>(#INTERFACE);
+#define QML_REGISTER_INTERFACE(INTERFACE) \
+ qmlRegisterInterface<INTERFACE>(#INTERFACE)
-#define QML_DEFINE_EXTENDED_TYPE(URI, VERSION_MAJ, VERSION_MIN, NAME, TYPE, EXTENSION) \
- static int registerExtended##TYPE = qmlRegisterExtendedType<TYPE,EXTENSION>(#URI, VERSION_MAJ, VERSION_MIN, #NAME, #TYPE);
+#define QML_REGISTER_EXTENDED_TYPE(URI, VERSION_MAJ, VERSION_MIN, NAME, TYPE, EXTENSION) \
+ qmlRegisterExtendedType<TYPE,EXTENSION>(#URI, VERSION_MAJ, VERSION_MIN, #NAME, #TYPE)
-#define QML_DEFINE_TYPE(URI, VERSION_MAJ, VERSION_MIN, NAME, TYPE) \
- static int defineType##TYPE = qmlRegisterType<TYPE>(#URI, VERSION_MAJ, VERSION_MIN, #NAME, #TYPE);
+#define QML_REGISTER_TYPE(URI,VMAJ,VMIN,TYPE,CLASS) \
+ qmlRegisterType<CLASS>(#URI, VMAJ, VMIN, #TYPE, #CLASS)
-#define QML_DEFINE_EXTENDED_NOCREATE_TYPE(TYPE, EXTENSION) \
- static int registerExtendedNoCreate##TYPE = qmlRegisterExtendedType<TYPE,EXTENSION>(#TYPE);
-
-#define QML_DEFINE_NOCREATE_TYPE(TYPE) \
- static int registerNoCreate##TYPE = qmlRegisterType<TYPE>(#TYPE);
-
-#else
-
-#define QML_DEFINE_INTERFACE(INTERFACE) \
- template<> QmlPrivate::InstanceType QmlPrivate::Define<INTERFACE *,0,0>::instance(qmlRegisterInterface<INTERFACE>(#INTERFACE));
-
-#define QML_DEFINE_EXTENDED_TYPE(URI, VERSION_MAJ, VERSION_MIN, NAME, TYPE, EXTENSION) \
- template<> QmlPrivate::InstanceType QmlPrivate::Define<TYPE *,(VERSION_MAJ), (VERSION_MIN)>::instance(qmlRegisterExtendedType<TYPE,EXTENSION>(#URI, VERSION_MAJ, VERSION_MIN, #NAME, #TYPE));
-
-#define QML_DEFINE_TYPE(URI, VERSION_MAJ, VERSION_MIN, NAME, TYPE) \
- template<> QmlPrivate::InstanceType QmlPrivate::Define<TYPE *,(VERSION_MAJ), (VERSION_MIN)>::instance(qmlRegisterType<TYPE>(#URI, VERSION_MAJ, VERSION_MIN, #NAME, #TYPE));
-
-#define QML_DEFINE_EXTENDED_NOCREATE_TYPE(TYPE, EXTENSION) \
- template<> QmlPrivate::InstanceType QmlPrivate::Define<TYPE *,0,0>::instance(qmlRegisterExtendedType<TYPE,EXTENSION>(#TYPE));
-
-#define QML_DEFINE_NOCREATE_TYPE(TYPE) \
- template<> QmlPrivate::InstanceType QmlPrivate::Define<TYPE *,0,0>::instance(qmlRegisterType<TYPE>(#TYPE));
-
-#endif
+#define QML_REGISTER_NOCREATE_TYPE(CLASS) \
+ qmlRegisterType<CLASS>(#CLASS)
class QmlContext;
class QmlEngine;
diff --git a/src/declarative/qml/qmlbinding.cpp b/src/declarative/qml/qmlbinding.cpp
index aeda28b..04801df 100644
--- a/src/declarative/qml/qmlbinding.cpp
+++ b/src/declarative/qml/qmlbinding.cpp
@@ -56,8 +56,6 @@
QT_BEGIN_NAMESPACE
-QML_DEFINE_NOCREATE_TYPE(QmlBinding);
-
QmlBindingData::QmlBindingData()
: updating(false), enabled(false)
{
diff --git a/src/declarative/qml/qmlcomponent.cpp b/src/declarative/qml/qmlcomponent.cpp
index 4ab4f70..1e1289e 100644
--- a/src/declarative/qml/qmlcomponent.cpp
+++ b/src/declarative/qml/qmlcomponent.cpp
@@ -121,7 +121,6 @@ Item {
}
\endqml
*/
-QML_DEFINE_TYPE(Qt,4,6,Component,QmlComponent);
/*!
\enum QmlComponent::Status
diff --git a/src/declarative/qml/qmlcustomparser.cpp b/src/declarative/qml/qmlcustomparser.cpp
index d781110..8e52b72 100644
--- a/src/declarative/qml/qmlcustomparser.cpp
+++ b/src/declarative/qml/qmlcustomparser.cpp
@@ -58,11 +58,11 @@ using namespace QmlParser;
By subclassing QmlCustomParser, you can add a parser for
building a particular type.
- The subclass must implement compile() and setCustomData(), and define
- itself in the meta type system with the macro:
+ The subclass must implement compile() and setCustomData(), and register
+ itself in the meta type system by calling the macro:
\code
- QML_DEFINE_CUSTOM_TYPE(Module, MajorVersion, MinorVersion, Name, TypeClass, ParserClass)
+ QML_REGISTER_CUSTOM_TYPE(Module, MajorVersion, MinorVersion, Name, TypeClass, ParserClass)
\endcode
*/
@@ -88,7 +88,7 @@ using namespace QmlParser;
by \a data, which is a block of data previously returned by a call
to compile().
- The \a object will be an instance of the TypeClass specified by QML_DEFINE_CUSTOM_TYPE.
+ The \a object will be an instance of the TypeClass specified by QML_REGISTER_CUSTOM_TYPE.
*/
QmlCustomParserNode
diff --git a/src/declarative/qml/qmlcustomparser_p.h b/src/declarative/qml/qmlcustomparser_p.h
index 7aebb0d..e198712 100644
--- a/src/declarative/qml/qmlcustomparser_p.h
+++ b/src/declarative/qml/qmlcustomparser_p.h
@@ -128,13 +128,9 @@ private:
QList<QmlError> exceptions;
};
-#if defined(Q_OS_SYMBIAN)
-# define QML_DEFINE_CUSTOM_TYPE(URI, VERSION_MAJ, VERSION_MIN, NAME, TYPE, CUSTOMTYPE) \
- static int defineCustomType##NAME = qmlRegisterCustomType<TYPE>(#URI, VERSION_MAJ, VERSION_MIN, #NAME, #TYPE, new CUSTOMTYPE);
-#else
-# define QML_DEFINE_CUSTOM_TYPE(URI, VERSION_MAJ, VERSION_MIN, NAME, TYPE, CUSTOMTYPE) \
- template<> QmlPrivate::InstanceType QmlPrivate::Define<TYPE *,(VERSION_MAJ), (VERSION_MIN)>::instance(qmlRegisterCustomType<TYPE>(#URI, VERSION_MAJ, VERSION_MIN, #NAME, #TYPE, new CUSTOMTYPE));
-#endif
+#define QML_REGISTER_CUSTOM_TYPE(URI, VERSION_MAJ, VERSION_MIN, NAME, TYPE, CUSTOMTYPE) \
+ qmlRegisterCustomType<TYPE>(#URI, VERSION_MAJ, VERSION_MIN, #NAME, #TYPE, new CUSTOMTYPE)
+
QT_END_NAMESPACE
diff --git a/src/declarative/qml/qmlengine.cpp b/src/declarative/qml/qmlengine.cpp
index c7e1e16..1c40ac7 100644
--- a/src/declarative/qml/qmlengine.cpp
+++ b/src/declarative/qml/qmlengine.cpp
@@ -100,6 +100,7 @@
#include <private/qscriptdeclarativeclass_p.h>
#include <private/qmlgraphicsitemsmodule_p.h>
+#include <private/qmlgraphicsutilmodule_p.h>
#ifdef Q_OS_WIN // for %APPDATA%
#include <qt_windows.h>
@@ -114,7 +115,6 @@ QT_BEGIN_NAMESPACE
DEFINE_BOOL_CONFIG_OPTION(qmlImportTrace, QML_IMPORT_TRACE)
-QML_DEFINE_TYPE(Qt,4,6,QtObject,QObject)
/*!
\qmlclass QtObject QObject
\brief The QtObject element is the most basic element in QML
@@ -143,6 +143,16 @@ struct StaticQtMetaObject : public QObject
static bool qt_QmlQtModule_registered = false;
+void QmlEnginePrivate::defineModule()
+{
+ QML_REGISTER_TYPE(Qt,4,6,Component,QmlComponent);
+ QML_REGISTER_TYPE(Qt,4,6,QtObject,QObject);
+ QML_REGISTER_TYPE(Qt,4,6,WorkerScript,QmlWorkerScript);
+ QML_REGISTER_TYPE(Qt,4,6,WorkerListModel,QmlWorkerListModel);
+
+ QML_REGISTER_NOCREATE_TYPE(QmlBinding);
+}
+
QmlEnginePrivate::QmlEnginePrivate(QmlEngine *e)
: captureProperties(false), rootContext(0), currentExpression(0), isDebugging(false),
contextClass(0), sharedContext(0), sharedScope(0), objectClass(0), valueTypeClass(0),
@@ -154,6 +164,8 @@ QmlEnginePrivate::QmlEnginePrivate(QmlEngine *e)
if (!qt_QmlQtModule_registered) {
qt_QmlQtModule_registered = true;
QmlGraphicsItemModule::defineModule();
+ QmlGraphicsUtilModule::defineModule();
+ QmlEnginePrivate::defineModule();
}
globalClass = new QmlGlobalScriptClass(&scriptEngine);
fileImportPath.append(QLibraryInfo::location(QLibraryInfo::DataPath)+QDir::separator()+QLatin1String("qml"));
diff --git a/src/declarative/qml/qmlengine_p.h b/src/declarative/qml/qmlengine_p.h
index 85c5fbe..b18ab24 100644
--- a/src/declarative/qml/qmlengine_p.h
+++ b/src/declarative/qml/qmlengine_p.h
@@ -331,6 +331,8 @@ public:
static QmlEnginePrivate *get(QScriptEngine *e) { return static_cast<QmlScriptEngine*>(e)->p; }
static QmlEngine *get(QmlEnginePrivate *p) { return p->q_func(); }
QmlContext *getContext(QScriptContext *);
+
+ static void defineModule();
};
QT_END_NAMESPACE
diff --git a/src/declarative/qml/qmlworkerscript.cpp b/src/declarative/qml/qmlworkerscript.cpp
index 9a48c4f..944d996 100644
--- a/src/declarative/qml/qmlworkerscript.cpp
+++ b/src/declarative/qml/qmlworkerscript.cpp
@@ -633,8 +633,6 @@ bool QmlWorkerScript::event(QEvent *event)
}
}
-QML_DEFINE_TYPE(Qt, 4, 6, WorkerScript, QmlWorkerScript);
-
void QmlWorkerListModelAgent::Data::clearChange()
{
changes.clear();
@@ -1038,8 +1036,6 @@ QVariant QmlWorkerListModel::data(int index, int role) const
QT_END_NAMESPACE
-QML_DEFINE_TYPE(Qt,4,6,WorkerListModel,QmlWorkerListModel)
-
#include "qmlworkerscript.moc"
diff --git a/src/declarative/util/qmlanimation.cpp b/src/declarative/util/qmlanimation.cpp
index 2f24167..63ded23 100644
--- a/src/declarative/util/qmlanimation.cpp
+++ b/src/declarative/util/qmlanimation.cpp
@@ -66,8 +66,6 @@
QT_BEGIN_NAMESPACE
-QML_DEFINE_NOCREATE_TYPE(QmlAbstractAnimation)
-
/*!
\qmlclass Animation QmlAbstractAnimation
\brief The Animation element is the base of all QML animations.
@@ -536,7 +534,7 @@ void QmlAbstractAnimation::timelineComplete()
\class QmlPauseAnimation
*/
-QML_DEFINE_TYPE(Qt,4,6,PauseAnimation,QmlPauseAnimation)
+
QmlPauseAnimation::QmlPauseAnimation(QObject *parent)
: QmlAbstractAnimation(*(new QmlPauseAnimationPrivate), parent)
{
@@ -648,7 +646,7 @@ void QmlColorAnimation::setTo(const QColor &t)
QmlPropertyAnimation::setTo(t);
}
-QML_DEFINE_TYPE(Qt,4,6,ColorAnimation,QmlColorAnimation)
+
/*!
\qmlclass ScriptAction QmlScriptAction
@@ -753,7 +751,7 @@ QAbstractAnimation *QmlScriptAction::qtAnimation()
return d->rsa;
}
-QML_DEFINE_TYPE(Qt,4,6,ScriptAction,QmlScriptAction)
+
/*!
\qmlclass PropertyAction QmlPropertyAction
@@ -1001,7 +999,7 @@ void QmlPropertyAction::transition(QmlStateActions &actions,
}
}
-QML_DEFINE_TYPE(Qt,4,6,PropertyAction,QmlPropertyAction)
+
/*!
\qmlclass ParentAction QmlParentAction
@@ -1204,7 +1202,7 @@ void QmlParentAction::transition(QmlStateActions &actions,
}
}
-QML_DEFINE_TYPE(Qt,4,6,ParentAction,QmlParentAction)
+
/*!
\qmlclass NumberAnimation QmlNumberAnimation
@@ -1267,7 +1265,7 @@ void QmlNumberAnimation::setTo(qreal t)
QmlPropertyAnimation::setTo(t);
}
-QML_DEFINE_TYPE(Qt,4,6,NumberAnimation,QmlNumberAnimation)
+
/*!
\qmlclass Vector3dAnimation QmlVector3dAnimation
@@ -1325,7 +1323,7 @@ void QmlVector3dAnimation::setTo(QVector3D t)
QmlPropertyAnimation::setTo(t);
}
-QML_DEFINE_TYPE(Qt,4,6,Vector3dAnimation,QmlVector3dAnimation)
+
/*!
\qmlclass RotationAnimation QmlRotationAnimation
@@ -1496,7 +1494,7 @@ void QmlRotationAnimation::setDirection(QmlRotationAnimation::RotationDirection
emit directionChanged();
}
-QML_DEFINE_TYPE(Qt,4,6,RotationAnimation,QmlRotationAnimation)
+
QmlAnimationGroup::QmlAnimationGroup(QObject *parent)
: QmlAbstractAnimation(*(new QmlAnimationGroupPrivate), parent)
@@ -1593,7 +1591,7 @@ void QmlSequentialAnimation::transition(QmlStateActions &actions,
}
}
-QML_DEFINE_TYPE(Qt,4,6,SequentialAnimation,QmlSequentialAnimation)
+
/*!
\qmlclass ParallelAnimation QmlParallelAnimation
@@ -1649,7 +1647,7 @@ void QmlParallelAnimation::transition(QmlStateActions &actions,
}
}
-QML_DEFINE_TYPE(Qt,4,6,ParallelAnimation,QmlParallelAnimation)
+
//convert a variant from string type to another animatable type
void QmlPropertyAnimationPrivate::convertVariant(QVariant &variant, int type)
@@ -2355,6 +2353,6 @@ void QmlPropertyAnimation::transition(QmlStateActions &actions,
}
}
-QML_DEFINE_TYPE(Qt,4,6,PropertyAnimation,QmlPropertyAnimation)
+
QT_END_NAMESPACE
diff --git a/src/declarative/util/qmlbehavior.cpp b/src/declarative/util/qmlbehavior.cpp
index d65d8cd..6c67e00 100644
--- a/src/declarative/util/qmlbehavior.cpp
+++ b/src/declarative/util/qmlbehavior.cpp
@@ -53,7 +53,7 @@
QT_BEGIN_NAMESPACE
-QML_DEFINE_TYPE(Qt,4,6,Behavior,QmlBehavior)
+
class QmlBehaviorPrivate : public QObjectPrivate
{
diff --git a/src/declarative/util/qmlbind.cpp b/src/declarative/util/qmlbind.cpp
index fc1562b..3924bff 100644
--- a/src/declarative/util/qmlbind.cpp
+++ b/src/declarative/util/qmlbind.cpp
@@ -68,7 +68,7 @@ public:
QmlNullableValue<QVariant> value;
};
-QML_DEFINE_TYPE(Qt,4,6,Binding,QmlBind)
+
/*!
\qmlclass Binding QmlBind
\brief The Binding element allows arbitrary property bindings to be created.
diff --git a/src/declarative/util/qmlconnection.cpp b/src/declarative/util/qmlconnection.cpp
index 3d04aaf..90290b9 100644
--- a/src/declarative/util/qmlconnection.cpp
+++ b/src/declarative/util/qmlconnection.cpp
@@ -282,6 +282,6 @@ void QmlConnection::setSignal(const QString& sig)
connectIfValid();
}
-QML_DEFINE_TYPE(Qt,4,6,Connection,QmlConnection)
+
QT_END_NAMESPACE
diff --git a/src/declarative/util/qmldatetimeformatter.cpp b/src/declarative/util/qmldatetimeformatter.cpp
index c44ca5e..112da1e 100644
--- a/src/declarative/util/qmldatetimeformatter.cpp
+++ b/src/declarative/util/qmldatetimeformatter.cpp
@@ -367,6 +367,6 @@ void QmlDateTimeFormatter::componentComplete()
d->updateText();
}
-QML_DEFINE_TYPE(Qt,4,6,DateTimeFormatter,QmlDateTimeFormatter)
+
QT_END_NAMESPACE
diff --git a/src/declarative/util/qmleasefollow.cpp b/src/declarative/util/qmleasefollow.cpp
index deb474a..6694678 100644
--- a/src/declarative/util/qmleasefollow.cpp
+++ b/src/declarative/util/qmleasefollow.cpp
@@ -51,7 +51,7 @@
QT_BEGIN_NAMESPACE
-QML_DEFINE_TYPE(Qt,4,6,EaseFollow,QmlEaseFollow);
+
class QmlEaseFollowPrivate : public QObjectPrivate
{
diff --git a/src/declarative/util/qmlfontloader.cpp b/src/declarative/util/qmlfontloader.cpp
index 4599b99..558c125 100644
--- a/src/declarative/util/qmlfontloader.cpp
+++ b/src/declarative/util/qmlfontloader.cpp
@@ -70,7 +70,7 @@ public:
QmlFontLoader::Status status;
};
-QML_DEFINE_TYPE(Qt,4,6,FontLoader,QmlFontLoader)
+
/*!
\qmlclass FontLoader QmlFontLoader
diff --git a/src/declarative/util/qmlgraphicsutilmodule.cpp b/src/declarative/util/qmlgraphicsutilmodule.cpp
new file mode 100644
index 0000000..13323be
--- /dev/null
+++ b/src/declarative/util/qmlgraphicsutilmodule.cpp
@@ -0,0 +1,118 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qmlgraphicsutilmodule_p.h"
+#include "qfxperf_p_p.h"
+#include "qmlanimation_p.h"
+#include "qmlanimation_p_p.h"
+#include "qmlbehavior_p.h"
+#include "qmlbind_p.h"
+#include "qmlconnection_p.h"
+#include "qmldatetimeformatter_p.h"
+#include "qmleasefollow_p.h"
+#include "qmlfontloader_p.h"
+#include "qmllistaccessor_p.h"
+#include "qmllistmodel_p.h"
+#include "qmlnullablevalue_p_p.h"
+#include "qmlnumberformatter_p.h"
+#include "qmlopenmetaobject_p.h"
+#include "qmlpackage_p.h"
+#include "qmlpixmapcache_p.h"
+#include "qmlpropertychanges_p.h"
+#include "qmlpropertymap.h"
+#include "qmlspringfollow_p.h"
+#include "qmlstategroup_p.h"
+#include "qmlstateoperations_p.h"
+#include "qmlstate_p.h"
+#include "qmlstate_p_p.h"
+#include "qmlstyledtext_p.h"
+#include "qmlsystempalette_p.h"
+#include "qmltimeline_p_p.h"
+#include "qmltimer_p.h"
+#include "qmltransitionmanager_p_p.h"
+#include "qmltransition_p.h"
+#include "qmlview.h"
+#include "qmlxmllistmodel_p.h"
+#include "qnumberformat_p.h"
+#include "qperformancelog_p_p.h"
+
+void QmlGraphicsUtilModule::defineModule()
+{
+ QML_REGISTER_TYPE(Qt,4,6,AnchorChanges,QmlAnchorChanges);
+ QML_REGISTER_TYPE(Qt,4,6,Behavior,QmlBehavior);
+ QML_REGISTER_TYPE(Qt,4,6,Binding,QmlBind);
+ QML_REGISTER_TYPE(Qt,4,6,ColorAnimation,QmlColorAnimation);
+ QML_REGISTER_TYPE(Qt,4,6,Connection,QmlConnection);
+ QML_REGISTER_TYPE(Qt,4,6,DateTimeFormatter,QmlDateTimeFormatter);
+ QML_REGISTER_TYPE(Qt,4,6,EaseFollow,QmlEaseFollow);;
+ QML_REGISTER_TYPE(Qt,4,6,FontLoader,QmlFontLoader);
+ QML_REGISTER_TYPE(Qt,4,6,ListElement,QmlListElement);
+ QML_REGISTER_TYPE(Qt,4,6,NumberAnimation,QmlNumberAnimation);
+ QML_REGISTER_TYPE(Qt,4,6,NumberFormatter,QmlNumberFormatter);;
+ QML_REGISTER_TYPE(Qt,4,6,Package,QmlPackage);
+ QML_REGISTER_TYPE(Qt,4,6,ParallelAnimation,QmlParallelAnimation);
+ QML_REGISTER_TYPE(Qt,4,6,ParentAction,QmlParentAction);
+ QML_REGISTER_TYPE(Qt,4,6,ParentChange,QmlParentChange);
+ QML_REGISTER_TYPE(Qt,4,6,PauseAnimation,QmlPauseAnimation);
+ QML_REGISTER_TYPE(Qt,4,6,PropertyAction,QmlPropertyAction);
+ QML_REGISTER_TYPE(Qt,4,6,PropertyAnimation,QmlPropertyAnimation);
+ QML_REGISTER_TYPE(Qt,4,6,RotationAnimation,QmlRotationAnimation);
+ QML_REGISTER_TYPE(Qt,4,6,ScriptAction,QmlScriptAction);
+ QML_REGISTER_TYPE(Qt,4,6,SequentialAnimation,QmlSequentialAnimation);
+ QML_REGISTER_TYPE(Qt,4,6,SpringFollow,QmlSpringFollow);
+ QML_REGISTER_TYPE(Qt,4,6,StateChangeScript,QmlStateChangeScript);
+ QML_REGISTER_TYPE(Qt,4,6,StateGroup,QmlStateGroup);
+ QML_REGISTER_TYPE(Qt,4,6,State,QmlState);
+ QML_REGISTER_TYPE(Qt,4,6,SystemPalette,QmlSystemPalette);
+ QML_REGISTER_TYPE(Qt,4,6,Timer,QmlTimer);
+ QML_REGISTER_TYPE(Qt,4,6,Transition,QmlTransition);
+ QML_REGISTER_TYPE(Qt,4,6,Vector3dAnimation,QmlVector3dAnimation);
+ QML_REGISTER_TYPE(Qt,4,6,XmlListModel,QmlXmlListModel);
+ QML_REGISTER_TYPE(Qt,4,6,XmlRole,QmlXmlListModelRole);
+
+ QML_REGISTER_NOCREATE_TYPE(QmlGraphicsAnchors);
+ QML_REGISTER_NOCREATE_TYPE(QmlAbstractAnimation);
+ QML_REGISTER_NOCREATE_TYPE(QmlStateOperation);
+ QML_REGISTER_NOCREATE_TYPE(QNumberFormat);
+
+ QML_REGISTER_CUSTOM_TYPE(Qt, 4,6, ListModel, QmlListModel, QmlListModelParser);
+ QML_REGISTER_CUSTOM_TYPE(Qt, 4,6, PropertyChanges, QmlPropertyChanges, QmlPropertyChangesParser);
+}
diff --git a/src/declarative/util/qmlgraphicsutilmodule_p.h b/src/declarative/util/qmlgraphicsutilmodule_p.h
new file mode 100644
index 0000000..68a16a9
--- /dev/null
+++ b/src/declarative/util/qmlgraphicsutilmodule_p.h
@@ -0,0 +1,63 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QMLGRAPHICSUTILMODULE_H
+#define QMLGRAPHICSUTILMODULE_H
+
+#include <qml.h>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(Declarative)
+
+class QmlGraphicsUtilModule
+{
+public:
+ static void defineModule();
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QMLGRAPHICSUTILMODULE_H
diff --git a/src/declarative/util/qmllistmodel.cpp b/src/declarative/util/qmllistmodel.cpp
index 8fda3ae..c5e797e 100644
--- a/src/declarative/util/qmllistmodel.cpp
+++ b/src/declarative/util/qmllistmodel.cpp
@@ -61,18 +61,10 @@ QT_BEGIN_NAMESPACE
#define DATA_ROLE_ID 1
#define DATA_ROLE_NAME "data"
-struct ListInstruction
+QmlListModelParser::ListInstruction *QmlListModelParser::ListModelData::instructions() const
{
- enum { Push, Pop, Value, Set } type;
- int dataIdx;
-};
-
-struct ListModelData
-{
- int dataOffset;
- int instrCount;
- ListInstruction *instructions() const { return (ListInstruction *)((char *)this + sizeof(ListModelData)); }
-};
+ return (QmlListModelParser::ListInstruction *)((char *)this + sizeof(ListModelData));
+}
static void dump(ModelNode *node, int ind);
@@ -737,17 +729,6 @@ void QmlListModel::setProperty(int index, const QString& property, const QVarian
emit itemsChanged(index,1,roles);
}
-class QmlListModelParser : public QmlCustomParser
-{
-public:
- QByteArray compile(const QList<QmlCustomParserProperty> &);
- bool compileProperty(const QmlCustomParserProperty &prop, QList<ListInstruction> &instr, QByteArray &data);
- void setCustomData(QObject *, const QByteArray &);
-
-private:
- bool definesEmptyList(const QString &);
-};
-
bool QmlListModelParser::compileProperty(const QmlCustomParserProperty &prop, QList<ListInstruction> &instr, QByteArray &data)
{
QList<QVariant> values = prop.assignedValues();
@@ -953,20 +934,12 @@ bool QmlListModelParser::definesEmptyList(const QString &s)
return false;
}
-QML_DEFINE_CUSTOM_TYPE(Qt, 4,6, ListModel, QmlListModel, QmlListModelParser)
-
/*!
\qmlclass ListElement
\brief The ListElement element defines a data item in a ListModel.
\sa ListModel
*/
-// ### FIXME
-class QmlListElement : public QObject
-{
-Q_OBJECT
-};
-QML_DEFINE_TYPE(Qt,4,6,ListElement,QmlListElement)
static void dump(ModelNode *node, int ind)
{
@@ -1007,6 +980,4 @@ ModelNode::~ModelNode()
QT_END_NAMESPACE
-QML_DECLARE_TYPE(QmlListElement)
-
#include <qmllistmodel.moc>
diff --git a/src/declarative/util/qmllistmodel_p.h b/src/declarative/util/qmllistmodel_p.h
index 4cf6746..e6ddb0e 100644
--- a/src/declarative/util/qmllistmodel_p.h
+++ b/src/declarative/util/qmllistmodel_p.h
@@ -43,6 +43,7 @@
#define QMLLISTMODEL_H
#include <qml.h>
+#include <private/qmlcustomparser_p.h>
#include <QtCore/QObject>
#include <QtCore/QStringList>
@@ -98,9 +99,40 @@ private:
ModelNode *_root;
};
+// ### FIXME
+class QmlListElement : public QObject
+{
+Q_OBJECT
+};
+
+class QmlListModelParser : public QmlCustomParser
+{
+public:
+ QByteArray compile(const QList<QmlCustomParserProperty> &);
+ void setCustomData(QObject *, const QByteArray &);
+
+private:
+ struct ListInstruction
+ {
+ enum { Push, Pop, Value, Set } type;
+ int dataIdx;
+ };
+ struct ListModelData
+ {
+ int dataOffset;
+ int instrCount;
+ ListInstruction *instructions() const;
+ };
+ bool compileProperty(const QmlCustomParserProperty &prop, QList<ListInstruction> &instr, QByteArray &data);
+
+ bool definesEmptyList(const QString &);
+};
+
+
QT_END_NAMESPACE
QML_DECLARE_TYPE(QmlListModel)
+QML_DECLARE_TYPE(QmlListElement)
QT_END_HEADER
diff --git a/src/declarative/util/qmlnumberformatter.cpp b/src/declarative/util/qmlnumberformatter.cpp
index f78abdf..b301191 100644
--- a/src/declarative/util/qmlnumberformatter.cpp
+++ b/src/declarative/util/qmlnumberformatter.cpp
@@ -255,6 +255,6 @@ void QmlNumberFormatter::componentComplete()
d->componentComplete = true;
d->updateText();
}
-QML_DEFINE_TYPE(Qt,4,6,NumberFormatter,QmlNumberFormatter);
+
QT_END_NAMESPACE
diff --git a/src/declarative/util/qmlpackage.cpp b/src/declarative/util/qmlpackage.cpp
index 82f776f..c9b9cbb 100644
--- a/src/declarative/util/qmlpackage.cpp
+++ b/src/declarative/util/qmlpackage.cpp
@@ -80,22 +80,6 @@ public:
}
};
-class QmlPackageAttached : public QObject
-{
-Q_OBJECT
-Q_PROPERTY(QString name READ name WRITE setName)
-public:
- QmlPackageAttached(QObject *parent);
- virtual ~QmlPackageAttached();
-
- QString name() const;
- void setName(const QString &n);
-
- static QHash<QObject *, QmlPackageAttached *> attached;
-private:
- QString _name;
-};
-
QHash<QObject *, QmlPackageAttached *> QmlPackageAttached::attached;
QmlPackageAttached::QmlPackageAttached(QObject *parent)
@@ -178,8 +162,6 @@ QmlPackageAttached *QmlPackage::qmlAttachedProperties(QObject *o)
return new QmlPackageAttached(o);
}
-QML_DEFINE_TYPE(Qt,4,6,Package,QmlPackage)
-QT_END_NAMESPACE
-#include <qmlpackage.moc>
+QT_END_NAMESPACE
diff --git a/src/declarative/util/qmlpackage_p.h b/src/declarative/util/qmlpackage_p.h
index 29b6bbe..63d878a 100644
--- a/src/declarative/util/qmlpackage_p.h
+++ b/src/declarative/util/qmlpackage_p.h
@@ -78,6 +78,22 @@ public:
static QmlPackageAttached *qmlAttachedProperties(QObject *);
};
+class QmlPackageAttached : public QObject
+{
+Q_OBJECT
+Q_PROPERTY(QString name READ name WRITE setName)
+public:
+ QmlPackageAttached(QObject *parent);
+ virtual ~QmlPackageAttached();
+
+ QString name() const;
+ void setName(const QString &n);
+
+ static QHash<QObject *, QmlPackageAttached *> attached;
+private:
+ QString _name;
+};
+
QT_END_NAMESPACE
QML_DECLARE_TYPE(QmlPackage)
diff --git a/src/declarative/util/qmlpropertychanges.cpp b/src/declarative/util/qmlpropertychanges.cpp
index 3abbadd..e1eae10 100644
--- a/src/declarative/util/qmlpropertychanges.cpp
+++ b/src/declarative/util/qmlpropertychanges.cpp
@@ -184,15 +184,6 @@ public:
QmlMetaProperty property(const QByteArray &);
};
-class QmlPropertyChangesParser : public QmlCustomParser
-{
-public:
- void compileList(QList<QPair<QByteArray, QVariant> > &list, const QByteArray &pre, const QmlCustomParserProperty &prop);
-
- virtual QByteArray compile(const QList<QmlCustomParserProperty> &);
- virtual void setCustomData(QObject *, const QByteArray &);
-};
-
void
QmlPropertyChangesParser::compileList(QList<QPair<QByteArray, QVariant> > &list,
const QByteArray &pre,
@@ -461,6 +452,4 @@ void QmlPropertyChanges::setIsExplicit(bool e)
d->isExplicit = e;
}
-QML_DEFINE_CUSTOM_TYPE(Qt, 4,6, PropertyChanges, QmlPropertyChanges, QmlPropertyChangesParser)
-
QT_END_NAMESPACE
diff --git a/src/declarative/util/qmlpropertychanges_p.h b/src/declarative/util/qmlpropertychanges_p.h
index 19dcf9d..62e977a 100644
--- a/src/declarative/util/qmlpropertychanges_p.h
+++ b/src/declarative/util/qmlpropertychanges_p.h
@@ -43,6 +43,7 @@
#define QMLPROPERTYCHANGES_H
#include "qmlstateoperations_p.h"
+#include <private/qmlcustomparser_p.h>
QT_BEGIN_HEADER
@@ -75,6 +76,16 @@ public:
virtual ActionList actions();
};
+class QmlPropertyChangesParser : public QmlCustomParser
+{
+public:
+ void compileList(QList<QPair<QByteArray, QVariant> > &list, const QByteArray &pre, const QmlCustomParserProperty &prop);
+
+ virtual QByteArray compile(const QList<QmlCustomParserProperty> &);
+ virtual void setCustomData(QObject *, const QByteArray &);
+};
+
+
QT_END_NAMESPACE
QML_DECLARE_TYPE(QmlPropertyChanges)
diff --git a/src/declarative/util/qmlspringfollow.cpp b/src/declarative/util/qmlspringfollow.cpp
index 6d4ecf2..1eafd9e 100644
--- a/src/declarative/util/qmlspringfollow.cpp
+++ b/src/declarative/util/qmlspringfollow.cpp
@@ -52,7 +52,7 @@
QT_BEGIN_NAMESPACE
-QML_DEFINE_TYPE(Qt,4,6,SpringFollow,QmlSpringFollow)
+
class QmlSpringFollowPrivate : public QObjectPrivate
{
diff --git a/src/declarative/util/qmlstate.cpp b/src/declarative/util/qmlstate.cpp
index ea99bd5..4d85c89 100644
--- a/src/declarative/util/qmlstate.cpp
+++ b/src/declarative/util/qmlstate.cpp
@@ -154,7 +154,7 @@ QmlStateOperation::QmlStateOperation(QObjectPrivate &dd, QObject *parent)
\sa {states-transitions}{States and Transitions}
*/
-QML_DEFINE_TYPE(Qt,4,6,State,QmlState)
+
QmlState::QmlState(QObject *parent)
: QObject(*(new QmlStatePrivate), parent)
{
@@ -473,7 +473,6 @@ void QmlState::apply(QmlStateGroup *group, QmlTransition *trans, QmlState *rever
d->transitionManager.transition(applyList, trans);
}
-QML_DEFINE_NOCREATE_TYPE(QmlStateOperation)
QmlStateOperation::ActionList QmlStateOperation::actions()
{
return ActionList();
diff --git a/src/declarative/util/qmlstategroup.cpp b/src/declarative/util/qmlstategroup.cpp
index 7a5db1b..e57575e 100644
--- a/src/declarative/util/qmlstategroup.cpp
+++ b/src/declarative/util/qmlstategroup.cpp
@@ -437,4 +437,4 @@ void QmlStateGroup::removeState(QmlState *state)
QT_END_NAMESPACE
-QML_DEFINE_TYPE(Qt,4,6,StateGroup,QmlStateGroup)
+
diff --git a/src/declarative/util/qmlstateoperations.cpp b/src/declarative/util/qmlstateoperations.cpp
index fff8774..c102888 100644
--- a/src/declarative/util/qmlstateoperations.cpp
+++ b/src/declarative/util/qmlstateoperations.cpp
@@ -162,7 +162,7 @@ void QmlParentChangePrivate::doChange(QmlGraphicsItem *targetParent, QmlGraphics
using a ParentAction.
*/
-QML_DEFINE_TYPE(Qt,4,6,ParentChange,QmlParentChange)
+
QmlParentChange::QmlParentChange(QObject *parent)
: QmlStateOperation(*(new QmlParentChangePrivate), parent)
{
@@ -322,7 +322,7 @@ public:
Alternatively you can use a ScriptAction to specify at which point in the transition
you want the StateChangeScript to be run.
*/
-QML_DEFINE_TYPE(Qt,4,6,StateChangeScript,QmlStateChangeScript)
+
QmlStateChangeScript::QmlStateChangeScript(QObject *parent)
: QmlStateOperation(*(new QmlStateChangeScriptPrivate), parent)
{
@@ -408,7 +408,7 @@ QString QmlStateChangeScript::typeName() const
For more information on anchors see \l {anchor-layout}{Anchor Layouts}.
*/
-QML_DEFINE_TYPE(Qt,4,6,AnchorChanges,QmlAnchorChanges)
+
class QmlAnchorChangesPrivate : public QObjectPrivate
{
diff --git a/src/declarative/util/qmlstyledtext_p.h b/src/declarative/util/qmlstyledtext_p.h
index 4698279..2c29832 100644
--- a/src/declarative/util/qmlstyledtext_p.h
+++ b/src/declarative/util/qmlstyledtext_p.h
@@ -50,6 +50,7 @@ class QPainter;
class QPointF;
class QString;
class QmlStyledTextPrivate;
+class QTextLayout;
class Q_DECLARATIVE_EXPORT QmlStyledText
{
diff --git a/src/declarative/util/qmlsystempalette.cpp b/src/declarative/util/qmlsystempalette.cpp
index cc4fb3e..9bc62bd 100644
--- a/src/declarative/util/qmlsystempalette.cpp
+++ b/src/declarative/util/qmlsystempalette.cpp
@@ -54,7 +54,7 @@ public:
QPalette::ColorGroup group;
};
-QML_DEFINE_TYPE(Qt,4,6,SystemPalette,QmlSystemPalette)
+
/*!
\qmlclass SystemPalette QmlSystemPalette
diff --git a/src/declarative/util/qmltimer.cpp b/src/declarative/util/qmltimer.cpp
index d3a1a7c..5f926fe 100644
--- a/src/declarative/util/qmltimer.cpp
+++ b/src/declarative/util/qmltimer.cpp
@@ -49,7 +49,7 @@
QT_BEGIN_NAMESPACE
-QML_DEFINE_TYPE(Qt,4,6,Timer,QmlTimer)
+
class QmlTimerPrivate : public QObjectPrivate
{
diff --git a/src/declarative/util/qmltransition.cpp b/src/declarative/util/qmltransition.cpp
index e90fc20..1a9ad05 100644
--- a/src/declarative/util/qmltransition.cpp
+++ b/src/declarative/util/qmltransition.cpp
@@ -124,7 +124,7 @@ void ParallelAnimationWrapper::updateState(QAbstractAnimation::State newState, Q
}
-QML_DEFINE_TYPE(Qt,4,6,Transition,QmlTransition)
+
QmlTransition::QmlTransition(QObject *parent)
: QObject(*(new QmlTransitionPrivate), parent)
{
diff --git a/src/declarative/util/qmlxmllistmodel.cpp b/src/declarative/util/qmlxmllistmodel.cpp
index 6c9c03e..a068094 100644
--- a/src/declarative/util/qmlxmllistmodel.cpp
+++ b/src/declarative/util/qmlxmllistmodel.cpp
@@ -60,8 +60,8 @@
QT_BEGIN_NAMESPACE
-QML_DEFINE_TYPE(Qt,4,6,XmlRole,QmlXmlListModelRole)
-QML_DEFINE_TYPE(Qt,4,6,XmlListModel,QmlXmlListModel)
+
+
typedef QPair<int, int> QmlXmlListRange;
@@ -107,46 +107,6 @@ typedef QPair<int, int> QmlXmlListRange;
\sa XmlListModel
*/
-class Q_DECLARATIVE_EXPORT QmlXmlListModelRole : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(QString name READ name WRITE setName)
- Q_PROPERTY(QString query READ query WRITE setQuery)
- Q_PROPERTY(bool isKey READ isKey WRITE setIsKey)
-
-public:
- QmlXmlListModelRole() : m_isKey(false) {}
- ~QmlXmlListModelRole() {}
-
- QString name() const { return m_name; }
- void setName(const QString &name) { m_name = name; }
-
- QString query() const { return m_query; }
- void setQuery(const QString &query)
- {
- if (query.startsWith(QLatin1Char('/'))) {
- qmlInfo(this) << tr("An XmlRole query must not start with '/'");
- return;
- }
- m_query = query;
- }
-
- bool isKey() const { return m_isKey; }
- void setIsKey(bool b) { m_isKey = b; }
-
- bool isValid() {
- return !m_name.isEmpty() && !m_query.isEmpty();
- }
-
-private:
- QString m_name;
- QString m_query;
- bool m_isKey;
-};
-QT_END_NAMESPACE
-QML_DECLARE_TYPE(QmlXmlListModelRole)
-QT_BEGIN_NAMESPACE
-
class QmlXmlQuery : public QThread
{
diff --git a/src/declarative/util/qmlxmllistmodel_p.h b/src/declarative/util/qmlxmllistmodel_p.h
index a6627e2..969afd1 100644
--- a/src/declarative/util/qmlxmllistmodel_p.h
+++ b/src/declarative/util/qmlxmllistmodel_p.h
@@ -127,9 +127,42 @@ private:
Q_DISABLE_COPY(QmlXmlListModel)
};
+class Q_DECLARATIVE_EXPORT QmlXmlListModelRole : public QObject
+{
+ Q_OBJECT
+ Q_PROPERTY(QString name READ name WRITE setName)
+ Q_PROPERTY(QString query READ query WRITE setQuery)
+
+public:
+ QmlXmlListModelRole() {}
+ ~QmlXmlListModelRole() {}
+
+ QString name() const { return m_name; }
+ void setName(const QString &name) { m_name = name; }
+
+ QString query() const { return m_query; }
+ void setQuery(const QString &query)
+ {
+ if (query.startsWith(QLatin1Char('/'))) {
+ qmlInfo(this) << tr("An XmlRole query must not start with '/'");
+ return;
+ }
+ m_query = query;
+ }
+
+ bool isValid() {
+ return !m_name.isEmpty() && !m_query.isEmpty();
+ }
+
+private:
+ QString m_name;
+ QString m_query;
+};
+
QT_END_NAMESPACE
QML_DECLARE_TYPE(QmlXmlListModel)
+QML_DECLARE_TYPE(QmlXmlListModelRole)
QT_END_HEADER
diff --git a/src/declarative/util/qnumberformat.cpp b/src/declarative/util/qnumberformat.cpp
index 42c12fe..2e83874 100644
--- a/src/declarative/util/qnumberformat.cpp
+++ b/src/declarative/util/qnumberformat.cpp
@@ -43,8 +43,6 @@
QT_BEGIN_NAMESPACE
-QML_DEFINE_NOCREATE_TYPE(QNumberFormat)
-
QNumberFormat::QNumberFormat(QObject *parent) : QObject(parent), _number(0), _type(Decimal),
_groupingSize(0)
{
diff --git a/src/declarative/util/util.pri b/src/declarative/util/util.pri
index b6a5c90..90a8a27 100644
--- a/src/declarative/util/util.pri
+++ b/src/declarative/util/util.pri
@@ -1,6 +1,7 @@
INCLUDEPATH += $$PWD
SOURCES += \
+ $$PWD/qmlgraphicsutilmodule.cpp\
$$PWD/qmlview.cpp \
$$PWD/qfxperf.cpp \
$$PWD/qperformancelog.cpp \
@@ -32,6 +33,7 @@ SOURCES += \
$$PWD/qmlstyledtext.cpp
HEADERS += \
+ $$PWD/qmlgraphicsutilmodule_p.h\
$$PWD/qmlview.h \
$$PWD/qfxperf_p_p.h \
$$PWD/qperformancelog_p_p.h \
diff --git a/src/declarative/widgets/graphicslayouts.cpp b/src/declarative/widgets/graphicslayouts.cpp
deleted file mode 100644
index 62e941a..0000000
--- a/src/declarative/widgets/graphicslayouts.cpp
+++ /dev/null
@@ -1,319 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtDeclarative module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, 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.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "graphicslayouts_p.h"
-
-#include <QtGui/qgraphicswidget.h>
-#include <QtCore/qdebug.h>
-
-QT_BEGIN_NAMESPACE
-
-QML_DEFINE_INTERFACE(QGraphicsLayoutItem)
-QML_DEFINE_INTERFACE(QGraphicsLayout)
-
-QML_DEFINE_TYPE(Qt,4,6,QGraphicsLinearLayoutStretchItem,QGraphicsLinearLayoutStretchItemObject)
-QML_DEFINE_TYPE(Qt,4,6,QGraphicsLinearLayout,QGraphicsLinearLayoutObject)
-QML_DEFINE_TYPE(Qt,4,6,QGraphicsGridLayout,QGraphicsGridLayoutObject)
-
-class LinearLayoutAttached : public QObject
-{
- Q_OBJECT
-
- Q_PROPERTY(int stretchFactor READ stretchFactor WRITE setStretchFactor NOTIFY stretchChanged)
- Q_PROPERTY(Qt::Alignment alignment READ alignment WRITE setAlignment NOTIFY alignmentChanged)
-public:
- LinearLayoutAttached(QObject *parent)
- : QObject(parent), _stretch(1), _alignment(Qt::AlignCenter)
- {
- }
-
- int stretchFactor() const { return _stretch; }
- void setStretchFactor(int f)
- {
- if (_stretch == f)
- return;
-
- _stretch = f;
- emit stretchChanged(reinterpret_cast<QGraphicsLayoutItem*>(parent()), _stretch);
- }
-
- Qt::Alignment alignment() const { return _alignment; }
- void setAlignment(Qt::Alignment a)
- {
- if (_alignment == a)
- return;
-
- _alignment = a;
- emit alignmentChanged(reinterpret_cast<QGraphicsLayoutItem*>(parent()), _alignment);
- }
-
-Q_SIGNALS:
- void stretchChanged(QGraphicsLayoutItem*,int);
- void alignmentChanged(QGraphicsLayoutItem*,Qt::Alignment);
-
-private:
- int _stretch;
- Qt::Alignment _alignment;
-};
-
-
-QGraphicsLinearLayoutStretchItemObject::QGraphicsLinearLayoutStretchItemObject(QObject *parent)
- : QObject(parent)
-{
-}
-
-QSizeF QGraphicsLinearLayoutStretchItemObject::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const
-{
- Q_UNUSED(which);
- Q_UNUSED(constraint);
- return QSizeF();
-}
-
-
-QGraphicsLinearLayoutObject::QGraphicsLinearLayoutObject(QObject *parent)
-: QObject(parent)
-{
-}
-
-QGraphicsLinearLayoutObject::~QGraphicsLinearLayoutObject()
-{
-}
-
-void QGraphicsLinearLayoutObject::insertLayoutItem(int index, QGraphicsLayoutItem *item)
-{
- insertItem(index, item);
-
- //connect attached properties
- if (LinearLayoutAttached *obj = attachedProperties.value(item)) {
- setStretchFactor(item, obj->stretchFactor());
- setAlignment(item, obj->alignment());
- QObject::connect(obj, SIGNAL(stretchChanged(QGraphicsLayoutItem*,int)),
- this, SLOT(updateStretch(QGraphicsLayoutItem*,int)));
- QObject::connect(obj, SIGNAL(alignmentChanged(QGraphicsLayoutItem*,Qt::Alignment)),
- this, SLOT(updateAlignment(QGraphicsLayoutItem*,Qt::Alignment)));
- //### need to disconnect when widget is removed?
- }
-}
-
-//### is there a better way to do this?
-void QGraphicsLinearLayoutObject::clearChildren()
-{
- for (int i = 0; i < count(); ++i)
- removeAt(i);
-}
-
-void QGraphicsLinearLayoutObject::updateStretch(QGraphicsLayoutItem *item, int stretch)
-{
- QGraphicsLinearLayout::setStretchFactor(item, stretch);
-}
-
-void QGraphicsLinearLayoutObject::updateAlignment(QGraphicsLayoutItem *item, Qt::Alignment alignment)
-{
- QGraphicsLinearLayout::setAlignment(item, alignment);
-}
-
-QHash<QGraphicsLayoutItem*, LinearLayoutAttached*> QGraphicsLinearLayoutObject::attachedProperties;
-LinearLayoutAttached *QGraphicsLinearLayoutObject::qmlAttachedProperties(QObject *obj)
-{
- // ### This is not allowed - you must attach to any object
- if (!qobject_cast<QGraphicsLayoutItem*>(obj))
- return 0;
- LinearLayoutAttached *rv = new LinearLayoutAttached(obj);
- attachedProperties.insert(qobject_cast<QGraphicsLayoutItem*>(obj), rv);
- return rv;
-}
-
-//////////////////////////////////////////////////////////////////////////////////////////////////////
-// QGraphicsGridLayout-related classes
-//////////////////////////////////////////////////////////////////////////////////////////////////////
-class GridLayoutAttached : public QObject
-{
- Q_OBJECT
-
- Q_PROPERTY(int row READ row WRITE setRow)
- Q_PROPERTY(int column READ column WRITE setColumn)
- Q_PROPERTY(int rowSpan READ rowSpan WRITE setRowSpan)
- Q_PROPERTY(int columnSpan READ columnSpan WRITE setColumnSpan)
- Q_PROPERTY(Qt::Alignment alignment READ alignment WRITE setAlignment)
-public:
- GridLayoutAttached(QObject *parent)
- : QObject(parent), _row(-1), _column(-1), _rowspan(1), _colspan(1), _alignment(-1)
- {
- }
-
- int row() const { return _row; }
- void setRow(int r)
- {
- if (_row == r)
- return;
-
- _row = r;
- //emit rowChanged(reinterpret_cast<QGraphicsLayoutItem*>(parent()), _row);
- }
-
- int column() const { return _column; }
- void setColumn(int c)
- {
- if (_column == c)
- return;
-
- _column = c;
- //emit columnChanged(reinterpret_cast<QGraphicsLayoutItem*>(parent()), _column);
- }
-
- int rowSpan() const { return _rowspan; }
- void setRowSpan(int rs)
- {
- if (_rowspan == rs)
- return;
-
- _rowspan = rs;
- //emit rowSpanChanged(reinterpret_cast<QGraphicsLayoutItem*>(parent()), _rowSpan);
- }
-
- int columnSpan() const { return _colspan; }
- void setColumnSpan(int cs)
- {
- if (_colspan == cs)
- return;
-
- _colspan = cs;
- //emit columnSpanChanged(reinterpret_cast<QGraphicsLayoutItem*>(parent()), _columnSpan);
- }
-
- Qt::Alignment alignment() const { return _alignment; }
- void setAlignment(Qt::Alignment a)
- {
- if (_alignment == a)
- return;
-
- _alignment = a;
- //emit alignmentChanged(reinterpret_cast<QGraphicsLayoutItem*>(parent()), _alignment);
- }
-
-Q_SIGNALS:
- //void rowChanged(QGraphicsLayoutItem*,int);
- //void columnSpanChanged(QGraphicsLayoutItem*,int);
- //void rowSpanChanged(QGraphicsLayoutItem*,int);
- //void columnChanged(QGraphicsLayoutItem*,int);
- //void alignmentChanged(QGraphicsLayoutItem*,Qt::Alignment);
-
-private:
- int _row;
- int _column;
- int _rowspan;
- int _colspan;
- Qt::Alignment _alignment;
-};
-
-
-QGraphicsGridLayoutObject::QGraphicsGridLayoutObject(QObject *parent)
-: QObject(parent)
-{
-}
-
-QGraphicsGridLayoutObject::~QGraphicsGridLayoutObject()
-{
-}
-
-void QGraphicsGridLayoutObject::addWidget(QGraphicsWidget *wid)
-{
- //use attached properties
- if (QObject *obj = attachedProperties.value(qobject_cast<QGraphicsLayoutItem*>(wid))) {
- int row = static_cast<GridLayoutAttached *>(obj)->row();
- int column = static_cast<GridLayoutAttached *>(obj)->column();
- int rowSpan = static_cast<GridLayoutAttached *>(obj)->rowSpan();
- int columnSpan = static_cast<GridLayoutAttached *>(obj)->columnSpan();
- if (row == -1 || column == -1) {
- qWarning() << "Must set row and column for an item in a grid layout";
- return;
- }
- addItem(wid, row, column, rowSpan, columnSpan);
- }
-}
-
-void QGraphicsGridLayoutObject::addLayoutItem(QGraphicsLayoutItem *item)
-{
- //use attached properties
- if (GridLayoutAttached *obj = attachedProperties.value(item)) {
- int row = obj->row();
- int column = obj->column();
- int rowSpan = obj->rowSpan();
- int columnSpan = obj->columnSpan();
- Qt::Alignment alignment = obj->alignment();
- if (row == -1 || column == -1) {
- qWarning() << "Must set row and column for an item in a grid layout";
- return;
- }
- addItem(item, row, column, rowSpan, columnSpan);
- if (alignment != -1)
- setAlignment(item,alignment);
- }
-}
-
-//### is there a better way to do this?
-void QGraphicsGridLayoutObject::clearChildren()
-{
- for (int i = 0; i < count(); ++i)
- removeAt(i);
-}
-
-qreal QGraphicsGridLayoutObject::spacing() const
-{
- if (verticalSpacing() == horizontalSpacing())
- return verticalSpacing();
- return -1; //###
-}
-
-QHash<QGraphicsLayoutItem*, GridLayoutAttached*> QGraphicsGridLayoutObject::attachedProperties;
-GridLayoutAttached *QGraphicsGridLayoutObject::qmlAttachedProperties(QObject *obj)
-{
- // ### This is not allowed - you must attach to any object
- if (!qobject_cast<QGraphicsLayoutItem*>(obj))
- return 0;
- GridLayoutAttached *rv = new GridLayoutAttached(obj);
- attachedProperties.insert(qobject_cast<QGraphicsLayoutItem*>(obj), rv);
- return rv;
-}
-
-QT_END_NAMESPACE
-
-#include <graphicslayouts.moc>
diff --git a/src/declarative/widgets/widgets.pri b/src/declarative/widgets/widgets.pri
deleted file mode 100644
index 4cae3ff..0000000
--- a/src/declarative/widgets/widgets.pri
+++ /dev/null
@@ -1,9 +0,0 @@
-INCLUDEPATH += $$PWD
-
-SOURCES += \
- $$PWD/graphicswidgets.cpp \
- $$PWD/graphicslayouts.cpp
-
-HEADERS += \
- $$PWD/graphicswidgets_p.h \
- $$PWD/graphicslayouts_p.h
diff --git a/src/plugins/qmlmodules/qmlmodules.pro b/src/plugins/qmlmodules/qmlmodules.pro
index b1dc0ef..0a6f444 100644
--- a/src/plugins/qmlmodules/qmlmodules.pro
+++ b/src/plugins/qmlmodules/qmlmodules.pro
@@ -1,4 +1,6 @@
TEMPLATE = subdirs
+SUBDIRS += widgets
+
contains(QT_CONFIG, multimedia): SUBDIRS += multimedia
diff --git a/src/plugins/qmlmodules/widgets/graphicslayouts.cpp b/src/plugins/qmlmodules/widgets/graphicslayouts.cpp
new file mode 100644
index 0000000..fc15ad2
--- /dev/null
+++ b/src/plugins/qmlmodules/widgets/graphicslayouts.cpp
@@ -0,0 +1,260 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "graphicslayouts_p.h"
+
+#include <QtGui/qgraphicswidget.h>
+#include <QtCore/qdebug.h>
+
+QT_BEGIN_NAMESPACE
+
+LinearLayoutAttached::LinearLayoutAttached(QObject *parent)
+: QObject(parent), _stretch(1), _alignment(Qt::AlignCenter)
+{
+}
+
+void LinearLayoutAttached::setStretchFactor(int f)
+{
+ if (_stretch == f)
+ return;
+
+ _stretch = f;
+ emit stretchChanged(reinterpret_cast<QGraphicsLayoutItem*>(parent()), _stretch);
+}
+
+void LinearLayoutAttached::setAlignment(Qt::Alignment a)
+{
+ if (_alignment == a)
+ return;
+
+ _alignment = a;
+ emit alignmentChanged(reinterpret_cast<QGraphicsLayoutItem*>(parent()), _alignment);
+}
+
+QGraphicsLinearLayoutStretchItemObject::QGraphicsLinearLayoutStretchItemObject(QObject *parent)
+ : QObject(parent)
+{
+}
+
+QSizeF QGraphicsLinearLayoutStretchItemObject::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const
+{
+Q_UNUSED(which);
+Q_UNUSED(constraint);
+return QSizeF();
+}
+
+
+QGraphicsLinearLayoutObject::QGraphicsLinearLayoutObject(QObject *parent)
+: QObject(parent)
+{
+}
+
+QGraphicsLinearLayoutObject::~QGraphicsLinearLayoutObject()
+{
+}
+
+void QGraphicsLinearLayoutObject::insertLayoutItem(int index, QGraphicsLayoutItem *item)
+{
+insertItem(index, item);
+
+//connect attached properties
+if (LinearLayoutAttached *obj = attachedProperties.value(item)) {
+ setStretchFactor(item, obj->stretchFactor());
+ setAlignment(item, obj->alignment());
+ QObject::connect(obj, SIGNAL(stretchChanged(QGraphicsLayoutItem*,int)),
+ this, SLOT(updateStretch(QGraphicsLayoutItem*,int)));
+ QObject::connect(obj, SIGNAL(alignmentChanged(QGraphicsLayoutItem*,Qt::Alignment)),
+ this, SLOT(updateAlignment(QGraphicsLayoutItem*,Qt::Alignment)));
+ //### need to disconnect when widget is removed?
+}
+}
+
+//### is there a better way to do this?
+void QGraphicsLinearLayoutObject::clearChildren()
+{
+for (int i = 0; i < count(); ++i)
+ removeAt(i);
+}
+
+void QGraphicsLinearLayoutObject::updateStretch(QGraphicsLayoutItem *item, int stretch)
+{
+QGraphicsLinearLayout::setStretchFactor(item, stretch);
+}
+
+void QGraphicsLinearLayoutObject::updateAlignment(QGraphicsLayoutItem *item, Qt::Alignment alignment)
+{
+QGraphicsLinearLayout::setAlignment(item, alignment);
+}
+
+QHash<QGraphicsLayoutItem*, LinearLayoutAttached*> QGraphicsLinearLayoutObject::attachedProperties;
+LinearLayoutAttached *QGraphicsLinearLayoutObject::qmlAttachedProperties(QObject *obj)
+{
+// ### This is not allowed - you must attach to any object
+if (!qobject_cast<QGraphicsLayoutItem*>(obj))
+ return 0;
+LinearLayoutAttached *rv = new LinearLayoutAttached(obj);
+attachedProperties.insert(qobject_cast<QGraphicsLayoutItem*>(obj), rv);
+return rv;
+}
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+// QGraphicsGridLayout-related classes
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+GridLayoutAttached::GridLayoutAttached(QObject *parent)
+: QObject(parent), _row(-1), _column(-1), _rowspan(1), _colspan(1), _alignment(-1)
+{
+}
+
+void GridLayoutAttached::setRow(int r)
+{
+ if (_row == r)
+ return;
+
+ _row = r;
+ //emit rowChanged(reinterpret_cast<QGraphicsLayoutItem*>(parent()), _row);
+}
+
+void GridLayoutAttached::setColumn(int c)
+{
+ if (_column == c)
+ return;
+
+ _column = c;
+ //emit columnChanged(reinterpret_cast<QGraphicsLayoutItem*>(parent()), _column);
+}
+
+void GridLayoutAttached::setRowSpan(int rs)
+{
+ if (_rowspan == rs)
+ return;
+
+ _rowspan = rs;
+ //emit rowSpanChanged(reinterpret_cast<QGraphicsLayoutItem*>(parent()), _rowSpan);
+}
+
+void GridLayoutAttached::setColumnSpan(int cs)
+{
+ if (_colspan == cs)
+ return;
+
+ _colspan = cs;
+ //emit columnSpanChanged(reinterpret_cast<QGraphicsLayoutItem*>(parent()), _columnSpan);
+}
+
+void GridLayoutAttached::setAlignment(Qt::Alignment a)
+{
+ if (_alignment == a)
+ return;
+
+ _alignment = a;
+ //emit alignmentChanged(reinterpret_cast<QGraphicsLayoutItem*>(parent()), _alignment);
+}
+
+QGraphicsGridLayoutObject::QGraphicsGridLayoutObject(QObject *parent)
+: QObject(parent)
+{
+}
+
+QGraphicsGridLayoutObject::~QGraphicsGridLayoutObject()
+{
+}
+
+void QGraphicsGridLayoutObject::addWidget(QGraphicsWidget *wid)
+{
+//use attached properties
+if (QObject *obj = attachedProperties.value(qobject_cast<QGraphicsLayoutItem*>(wid))) {
+ int row = static_cast<GridLayoutAttached *>(obj)->row();
+ int column = static_cast<GridLayoutAttached *>(obj)->column();
+ int rowSpan = static_cast<GridLayoutAttached *>(obj)->rowSpan();
+ int columnSpan = static_cast<GridLayoutAttached *>(obj)->columnSpan();
+ if (row == -1 || column == -1) {
+ qWarning() << "Must set row and column for an item in a grid layout";
+ return;
+ }
+ addItem(wid, row, column, rowSpan, columnSpan);
+}
+}
+
+void QGraphicsGridLayoutObject::addLayoutItem(QGraphicsLayoutItem *item)
+{
+//use attached properties
+if (GridLayoutAttached *obj = attachedProperties.value(item)) {
+ int row = obj->row();
+ int column = obj->column();
+ int rowSpan = obj->rowSpan();
+ int columnSpan = obj->columnSpan();
+ Qt::Alignment alignment = obj->alignment();
+ if (row == -1 || column == -1) {
+ qWarning() << "Must set row and column for an item in a grid layout";
+ return;
+ }
+ addItem(item, row, column, rowSpan, columnSpan);
+ if (alignment != -1)
+ setAlignment(item,alignment);
+}
+}
+
+//### is there a better way to do this?
+void QGraphicsGridLayoutObject::clearChildren()
+{
+for (int i = 0; i < count(); ++i)
+ removeAt(i);
+}
+
+qreal QGraphicsGridLayoutObject::spacing() const
+{
+if (verticalSpacing() == horizontalSpacing())
+ return verticalSpacing();
+return -1; //###
+}
+
+QHash<QGraphicsLayoutItem*, GridLayoutAttached*> QGraphicsGridLayoutObject::attachedProperties;
+GridLayoutAttached *QGraphicsGridLayoutObject::qmlAttachedProperties(QObject *obj)
+{
+// ### This is not allowed - you must attach to any object
+if (!qobject_cast<QGraphicsLayoutItem*>(obj))
+ return 0;
+GridLayoutAttached *rv = new GridLayoutAttached(obj);
+attachedProperties.insert(qobject_cast<QGraphicsLayoutItem*>(obj), rv);
+return rv;
+}
+
+QT_END_NAMESPACE
diff --git a/src/declarative/widgets/graphicslayouts_p.h b/src/plugins/qmlmodules/widgets/graphicslayouts_p.h
index 3076af1..5394ffa 100644
--- a/src/declarative/widgets/graphicslayouts_p.h
+++ b/src/plugins/qmlmodules/widgets/graphicslayouts_p.h
@@ -153,6 +153,64 @@ private:
}
};
+class LinearLayoutAttached : public QObject
+{
+ Q_OBJECT
+
+ Q_PROPERTY(int stretchFactor READ stretchFactor WRITE setStretchFactor NOTIFY stretchChanged)
+ Q_PROPERTY(Qt::Alignment alignment READ alignment WRITE setAlignment NOTIFY alignmentChanged)
+public:
+ LinearLayoutAttached(QObject *parent);
+
+ int stretchFactor() const { return _stretch; }
+ void setStretchFactor(int f);
+ Qt::Alignment alignment() const { return _alignment; }
+ void setAlignment(Qt::Alignment a);
+
+Q_SIGNALS:
+ void stretchChanged(QGraphicsLayoutItem*,int);
+ void alignmentChanged(QGraphicsLayoutItem*,Qt::Alignment);
+
+private:
+ int _stretch;
+ Qt::Alignment _alignment;
+};
+
+class GridLayoutAttached : public QObject
+{
+ Q_OBJECT
+
+ Q_PROPERTY(int row READ row WRITE setRow)
+ Q_PROPERTY(int column READ column WRITE setColumn)
+ Q_PROPERTY(int rowSpan READ rowSpan WRITE setRowSpan)
+ Q_PROPERTY(int columnSpan READ columnSpan WRITE setColumnSpan)
+ Q_PROPERTY(Qt::Alignment alignment READ alignment WRITE setAlignment)
+public:
+ GridLayoutAttached(QObject *parent);
+
+ int row() const { return _row; }
+ void setRow(int r);
+
+ int column() const { return _column; }
+ void setColumn(int c);
+
+ int rowSpan() const { return _rowspan; }
+ void setRowSpan(int rs);
+
+ int columnSpan() const { return _colspan; }
+ void setColumnSpan(int cs);
+
+ Qt::Alignment alignment() const { return _alignment; }
+ void setAlignment(Qt::Alignment a);
+
+private:
+ int _row;
+ int _column;
+ int _rowspan;
+ int _colspan;
+ Qt::Alignment _alignment;
+};
+
QT_END_NAMESPACE
QML_DECLARE_INTERFACE(QGraphicsLayoutItem)
diff --git a/src/plugins/qmlmodules/widgets/graphicswidgets.cpp b/src/plugins/qmlmodules/widgets/graphicswidgets.cpp
new file mode 100644
index 0000000..062e516
--- /dev/null
+++ b/src/plugins/qmlmodules/widgets/graphicswidgets.cpp
@@ -0,0 +1,40 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtDeclarative module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
diff --git a/src/declarative/widgets/graphicswidgets_p.h b/src/plugins/qmlmodules/widgets/graphicswidgets_p.h
index 6255d2b..6255d2b 100644
--- a/src/declarative/widgets/graphicswidgets_p.h
+++ b/src/plugins/qmlmodules/widgets/graphicswidgets_p.h
diff --git a/src/declarative/widgets/graphicswidgets.cpp b/src/plugins/qmlmodules/widgets/widgets.cpp
index bb4dc74..72d5ce1 100644
--- a/src/declarative/widgets/graphicswidgets.cpp
+++ b/src/plugins/qmlmodules/widgets/widgets.cpp
@@ -1,10 +1,10 @@
/****************************************************************************
**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
-** This file is part of the QtDeclarative module of the Qt Toolkit.
+** This file is part of the plugins of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** No Commercial Usage
@@ -39,6 +39,10 @@
**
****************************************************************************/
+#include <QtDeclarative/qmlextensionplugin.h>
+#include <QtDeclarative/qml.h>
+
+#include "graphicslayouts_p.h"
#include "graphicswidgets_p.h"
QT_BEGIN_NAMESPACE
@@ -106,12 +110,37 @@ private:
}
};
-QML_DEFINE_EXTENDED_TYPE(Qt,4,6,QGraphicsView,QGraphicsView,QGraphicsViewDeclarativeUI)
-QML_DEFINE_EXTENDED_TYPE(Qt,4,6,QGraphicsScene,QGraphicsScene,QGraphicsSceneDeclarativeUI)
-QML_DEFINE_EXTENDED_TYPE(Qt,4,6,QGraphicsWidget,QGraphicsWidget,QGraphicsWidgetDeclarativeUI)
+class QWidgetsQmlModule : public QmlExtensionPlugin
+{
+ Q_OBJECT
+public:
+ QStringList keys() const
+ {
+ return QStringList() << QLatin1String("Qt.widgets");
+ }
-QML_DEFINE_INTERFACE(QGraphicsItem)
+ virtual void initialize(QmlEngine *engine, const char *uri)
+ {
+ Q_UNUSED(uri);
+ Q_UNUSED(engine);
+
+ Q_ASSERT(QLatin1String(uri) == QLatin1String("Qt.widgets"));
+
+ QML_REGISTER_INTERFACE(QGraphicsLayoutItem);
+ QML_REGISTER_INTERFACE(QGraphicsLayout);
+ QML_REGISTER_TYPE(Qt,4,6,QGraphicsLinearLayoutStretchItem,QGraphicsLinearLayoutStretchItemObject);
+ QML_REGISTER_TYPE(Qt,4,6,QGraphicsLinearLayout,QGraphicsLinearLayoutObject);
+ QML_REGISTER_TYPE(Qt,4,6,QGraphicsGridLayout,QGraphicsGridLayoutObject);
+ QML_REGISTER_EXTENDED_TYPE(Qt,4,6,QGraphicsView,QGraphicsView,QGraphicsViewDeclarativeUI);
+ QML_REGISTER_EXTENDED_TYPE(Qt,4,6,QGraphicsScene,QGraphicsScene,QGraphicsSceneDeclarativeUI);
+ QML_REGISTER_EXTENDED_TYPE(Qt,4,6,QGraphicsWidget,QGraphicsWidget,QGraphicsWidgetDeclarativeUI);
+ QML_REGISTER_INTERFACE(QGraphicsItem);
+ }
+};
QT_END_NAMESPACE
-#include <graphicswidgets.moc>
+#include "widgets.moc"
+
+Q_EXPORT_PLUGIN2(qtwidgetsqmlmodule, QT_PREPEND_NAMESPACE(QWidgetsQmlModule));
+
diff --git a/src/plugins/qmlmodules/widgets/widgets.pro b/src/plugins/qmlmodules/widgets/widgets.pro
new file mode 100644
index 0000000..5cc8dcc
--- /dev/null
+++ b/src/plugins/qmlmodules/widgets/widgets.pro
@@ -0,0 +1,15 @@
+TARGET = widgets
+include(../../qpluginbase.pri)
+
+QT += declarative
+
+SOURCES += \
+ graphicslayouts.cpp \
+ widgets.cpp
+
+HEADERS += \
+ graphicswidgets_p.h \
+ graphicslayouts_p.h
+
+QTDIR_build:DESTDIR = $$QT_BUILD_TREE/plugins/qmlmodules
+target.path = $$[QT_INSTALL_PLUGINS]/plugins/qmlmodules
diff --git a/tests/auto/declarative/layouts/data/layouts.qml b/tests/auto/declarative/layouts/data/layouts.qml
index 00d785d..1792500 100644
--- a/tests/auto/declarative/layouts/data/layouts.qml
+++ b/tests/auto/declarative/layouts/data/layouts.qml
@@ -1,4 +1,5 @@
import Qt 4.6
+import Qt.widgets 4.6
Item {
id: resizable
diff --git a/tests/auto/declarative/qmlecmascript/testtypes.cpp b/tests/auto/declarative/qmlecmascript/testtypes.cpp
index 3c6b256..6a04704 100644
--- a/tests/auto/declarative/qmlecmascript/testtypes.cpp
+++ b/tests/auto/declarative/qmlecmascript/testtypes.cpp
@@ -72,11 +72,14 @@ private:
int m_value;
};
-QML_DEFINE_TYPE(Qt.test, 1,0, MyQmlObject,MyQmlObject);
-QML_DEFINE_TYPE(Qt.test, 1,0, MyDeferredObject,MyDeferredObject);
-QML_DEFINE_TYPE(Qt.test, 1,0, MyQmlContainer,MyQmlContainer);
-QML_DEFINE_EXTENDED_TYPE(Qt.test, 1,0, MyBaseExtendedObject,MyBaseExtendedObject,BaseExtensionObject);
-QML_DEFINE_EXTENDED_TYPE(Qt.test, 1,0, MyExtendedObject,MyExtendedObject,ExtensionObject);
-QML_DEFINE_TYPE(Qt.test, 1,0, MyTypeObject, MyTypeObject);
+void registerTypes()
+{
+ QML_REGISTER_TYPE(Qt.test, 1,0, MyQmlObject,MyQmlObject);
+ QML_REGISTER_TYPE(Qt.test, 1,0, MyDeferredObject,MyDeferredObject);
+ QML_REGISTER_TYPE(Qt.test, 1,0, MyQmlContainer,MyQmlContainer);
+ QML_REGISTER_EXTENDED_TYPE(Qt.test, 1,0, MyBaseExtendedObject,MyBaseExtendedObject,BaseExtensionObject);
+ QML_REGISTER_EXTENDED_TYPE(Qt.test, 1,0, MyExtendedObject,MyExtendedObject,ExtensionObject);
+ QML_REGISTER_TYPE(Qt.test, 1,0, MyTypeObject, MyTypeObject);
+}
#include "testtypes.moc"
diff --git a/tests/auto/declarative/qmlecmascript/testtypes.h b/tests/auto/declarative/qmlecmascript/testtypes.h
index f511c29..9d7d0a7 100644
--- a/tests/auto/declarative/qmlecmascript/testtypes.h
+++ b/tests/auto/declarative/qmlecmascript/testtypes.h
@@ -592,5 +592,7 @@ private:
QVariantList m_actuals;
};
+void registerTypes();
+
#endif // TESTTYPES_H
diff --git a/tests/auto/declarative/qmlecmascript/tst_qmlecmascript.cpp b/tests/auto/declarative/qmlecmascript/tst_qmlecmascript.cpp
index b30ad1c..88f06ad 100644
--- a/tests/auto/declarative/qmlecmascript/tst_qmlecmascript.cpp
+++ b/tests/auto/declarative/qmlecmascript/tst_qmlecmascript.cpp
@@ -76,6 +76,7 @@ public:
tst_qmlecmascript() {}
private slots:
+ void initTestCase();
void assignBasicTypes();
void idShortcutInvalidates();
void boolPropertiesEvaluateAsBool();
@@ -129,6 +130,8 @@ private:
QmlEngine engine;
};
+void tst_qmlecmascript::initTestCase() { registerTypes(); }
+
void tst_qmlecmascript::assignBasicTypes()
{
{
diff --git a/tests/auto/declarative/qmlgraphicspositioners/tst_qmlgraphicspositioners.cpp b/tests/auto/declarative/qmlgraphicspositioners/tst_qmlgraphicspositioners.cpp
index 5089dc5..27db5fe 100644
--- a/tests/auto/declarative/qmlgraphicspositioners/tst_qmlgraphicspositioners.cpp
+++ b/tests/auto/declarative/qmlgraphicspositioners/tst_qmlgraphicspositioners.cpp
@@ -239,7 +239,7 @@ void tst_QmlGraphicsPositioners::test_vertical_animated()
void tst_QmlGraphicsPositioners::test_grid()
{
- QmlView *canvas = createView("data/grid.qml");
+ QmlView *canvas = createView(SRCDIR "/data/grid.qml");
QmlGraphicsRectangle *one = canvas->rootObject()->findChild<QmlGraphicsRectangle*>("one");
QVERIFY(one != 0);
@@ -266,7 +266,7 @@ void tst_QmlGraphicsPositioners::test_grid()
void tst_QmlGraphicsPositioners::test_grid_spacing()
{
- QmlView *canvas = createView("data/grid-spacing.qml");
+ QmlView *canvas = createView(SRCDIR "/data/grid-spacing.qml");
QmlGraphicsRectangle *one = canvas->rootObject()->findChild<QmlGraphicsRectangle*>("one");
QVERIFY(one != 0);
@@ -421,7 +421,7 @@ void tst_QmlGraphicsPositioners::test_propertychanges()
void tst_QmlGraphicsPositioners::test_repeater()
{
- QmlView *canvas = createView("data/repeater.qml");
+ QmlView *canvas = createView(SRCDIR "/data/repeater.qml");
QmlGraphicsRectangle *one = canvas->rootObject()->findChild<QmlGraphicsRectangle*>("one");
QVERIFY(one != 0);
diff --git a/tests/auto/declarative/qmlgraphicswebview/testtypes.cpp b/tests/auto/declarative/qmlgraphicswebview/testtypes.cpp
index 00c1b67..676d19a 100644
--- a/tests/auto/declarative/qmlgraphicswebview/testtypes.cpp
+++ b/tests/auto/declarative/qmlgraphicswebview/testtypes.cpp
@@ -46,4 +46,7 @@ void MyWebView::drawContents(QPainter *p, const QRect &r)
QmlGraphicsWebView::drawContents(p,r);
}
-QML_DEFINE_TYPE(Test,1,0,MyWebView,MyWebView);
+void registerTypes()
+{
+ QML_REGISTER_TYPE(Test,1,0,MyWebView,MyWebView);
+}
diff --git a/tests/auto/declarative/qmlgraphicswebview/testtypes.h b/tests/auto/declarative/qmlgraphicswebview/testtypes.h
index 0b3176d..fa9a301 100644
--- a/tests/auto/declarative/qmlgraphicswebview/testtypes.h
+++ b/tests/auto/declarative/qmlgraphicswebview/testtypes.h
@@ -61,4 +61,6 @@ private:
QML_DECLARE_TYPE(MyWebView);
+void registerTypes();
+
#endif // TESTTYPES_H
diff --git a/tests/auto/declarative/qmlgraphicswebview/tst_qmlgraphicswebview.cpp b/tests/auto/declarative/qmlgraphicswebview/tst_qmlgraphicswebview.cpp
index 5815e22..f4f8a33 100644
--- a/tests/auto/declarative/qmlgraphicswebview/tst_qmlgraphicswebview.cpp
+++ b/tests/auto/declarative/qmlgraphicswebview/tst_qmlgraphicswebview.cpp
@@ -60,6 +60,7 @@ public:
tst_qmlgraphicswebview() {}
private slots:
+ void initTestCase();
void basicProperties();
void settings();
void historyNav();
@@ -86,6 +87,11 @@ private:
}
};
+void tst_qmlgraphicswebview::initTestCase()
+{
+ registerTypes();
+}
+
static QString strippedHtml(QString html)
{
html.replace(QRegExp("\\s+"),"");
diff --git a/tests/auto/declarative/qmllanguage/testtypes.cpp b/tests/auto/declarative/qmllanguage/testtypes.cpp
index a295054..9ffe28a 100644
--- a/tests/auto/declarative/qmllanguage/testtypes.cpp
+++ b/tests/auto/declarative/qmllanguage/testtypes.cpp
@@ -40,15 +40,18 @@
****************************************************************************/
#include "testtypes.h"
-QML_DEFINE_INTERFACE(MyInterface);
-QML_DEFINE_TYPE(Test,1,0,MyQmlObject,MyQmlObject);
-QML_DEFINE_TYPE(Test,1,0,MyTypeObject,MyTypeObject);
-QML_DEFINE_TYPE(Test,1,0,MyContainer,MyContainer);
-QML_DEFINE_TYPE(Test,1,0,MyPropertyValueSource,MyPropertyValueSource);
-QML_DEFINE_TYPE(Test,1,0,MyDotPropertyObject,MyDotPropertyObject);
-QML_DEFINE_TYPE(Test,1,0,MyNamespacedType,MyNamespace::MyNamespacedType);
-QML_DEFINE_TYPE(Test,1,0,MySecondNamespacedType,MyNamespace::MySecondNamespacedType);
-QML_DEFINE_NOCREATE_TYPE(MyGroupedObject);
+void registerTypes()
+{
+ QML_REGISTER_INTERFACE(MyInterface);
+ QML_REGISTER_TYPE(Test,1,0,MyQmlObject,MyQmlObject);
+ QML_REGISTER_TYPE(Test,1,0,MyTypeObject,MyTypeObject);
+ QML_REGISTER_TYPE(Test,1,0,MyContainer,MyContainer);
+ QML_REGISTER_TYPE(Test,1,0,MyPropertyValueSource,MyPropertyValueSource);
+ QML_REGISTER_TYPE(Test,1,0,MyDotPropertyObject,MyDotPropertyObject);
+ QML_REGISTER_TYPE(Test,1,0,MyNamespacedType,MyNamespace::MyNamespacedType);
+ QML_REGISTER_TYPE(Test,1,0,MySecondNamespacedType,MyNamespace::MySecondNamespacedType);
+ QML_REGISTER_NOCREATE_TYPE(MyGroupedObject);
+}
QVariant myCustomVariantTypeConverter(const QString &data)
{
diff --git a/tests/auto/declarative/qmllanguage/testtypes.h b/tests/auto/declarative/qmllanguage/testtypes.h
index 27b45e4..9fd0973 100644
--- a/tests/auto/declarative/qmllanguage/testtypes.h
+++ b/tests/auto/declarative/qmllanguage/testtypes.h
@@ -542,4 +542,6 @@ namespace MyNamespace {
QML_DECLARE_TYPE(MyNamespace::MyNamespacedType);
QML_DECLARE_TYPE(MyNamespace::MySecondNamespacedType);
+void registerTypes();
+
#endif // TESTTYPES_H
diff --git a/tests/auto/declarative/qmllanguage/tst_qmllanguage.cpp b/tests/auto/declarative/qmllanguage/tst_qmllanguage.cpp
index 4090e1d..5f9cb1b 100644
--- a/tests/auto/declarative/qmllanguage/tst_qmllanguage.cpp
+++ b/tests/auto/declarative/qmllanguage/tst_qmllanguage.cpp
@@ -182,6 +182,15 @@ inline QUrl TEST_FILE(const char *filename)
void tst_qmllanguage::initTestCase()
{
+ registerTypes();
+
+ QML_REGISTER_TYPE(com.nokia.Test, 0, 0, TestTP, TestType)
+ QML_REGISTER_TYPE(com.nokia.Test, 1, 0, Test, TestType)
+ QML_REGISTER_TYPE(com.nokia.Test, 1, 5, Test, TestType)
+ QML_REGISTER_TYPE(com.nokia.Test, 1, 8, Test, TestType2)
+ QML_REGISTER_TYPE(com.nokia.Test, 1, 9, OldTest, TestType)
+ QML_REGISTER_TYPE(com.nokia.Test, 1, 12, Test, TestType2)
+
// Create locale-specific file
// For POSIX, this will just be data/I18nType.qml, since POSIX is 7-bit
// For iso8859-1 locale, this will just be data/I18nType?????.qml where ????? is 5 8-bit characters
@@ -1058,13 +1067,6 @@ void tst_qmllanguage::testType(const QString& qml, const QString& type)
QML_DECLARE_TYPE(TestType)
QML_DECLARE_TYPE(TestType2)
-QML_DEFINE_TYPE(com.nokia.Test, 0, 0, TestTP, TestType)
-QML_DEFINE_TYPE(com.nokia.Test, 1, 0, Test, TestType)
-QML_DEFINE_TYPE(com.nokia.Test, 1, 5, Test, TestType)
-QML_DEFINE_TYPE(com.nokia.Test, 1, 8, Test, TestType2)
-QML_DEFINE_TYPE(com.nokia.Test, 1, 9, OldTest, TestType)
-QML_DEFINE_TYPE(com.nokia.Test, 1, 12, Test, TestType2)
-
// Import tests (QT-558)
void tst_qmllanguage::importsBuiltin_data()
diff --git a/tests/auto/declarative/qmllistreference/tst_qmllistreference.cpp b/tests/auto/declarative/qmllistreference/tst_qmllistreference.cpp
index 6122f1e..db9f218 100644
--- a/tests/auto/declarative/qmllistreference/tst_qmllistreference.cpp
+++ b/tests/auto/declarative/qmllistreference/tst_qmllistreference.cpp
@@ -67,6 +67,7 @@ public:
tst_qmllistreference() {}
private slots:
+ void initTestCase();
void qmllistreference();
void qmllistreference_invalid();
void isValid();
@@ -101,7 +102,11 @@ public:
QmlListProperty<TestType> property;
};
QML_DECLARE_TYPE(TestType);
-QML_DEFINE_NOCREATE_TYPE(TestType);
+
+void tst_qmllistreference::initTestCase()
+{
+ QML_REGISTER_NOCREATE_TYPE(TestType);
+}
void tst_qmllistreference::qmllistreference()
{
diff --git a/tests/auto/declarative/qmlmetaproperty/tst_qmlmetaproperty.cpp b/tests/auto/declarative/qmlmetaproperty/tst_qmlmetaproperty.cpp
index 540d658..7bb3e96 100644
--- a/tests/auto/declarative/qmlmetaproperty/tst_qmlmetaproperty.cpp
+++ b/tests/auto/declarative/qmlmetaproperty/tst_qmlmetaproperty.cpp
@@ -54,7 +54,6 @@ public:
};
QML_DECLARE_TYPE(MyQmlObject);
-QML_DEFINE_TYPE(Test,1,0,MyQmlObject,MyQmlObject);
class MyAttached : public QObject
{
@@ -88,7 +87,6 @@ private:
};
QML_DECLARE_TYPE(MyContainer);
-QML_DEFINE_TYPE(Test,1,0,MyContainer,MyContainer);
QML_DECLARE_TYPEINFO(MyContainer, QML_HAS_ATTACHED_PROPERTIES)
class tst_qmlmetaproperty : public QObject
@@ -98,6 +96,7 @@ public:
tst_qmlmetaproperty() {}
private slots:
+ void initTestCase();
// Constructors
void qmlmetaproperty();
@@ -126,6 +125,13 @@ private:
QmlEngine engine;
};
+void tst_qmlmetaproperty::initTestCase()
+{
+ QML_REGISTER_TYPE(Test,1,0,MyQmlObject,MyQmlObject);
+ QML_REGISTER_TYPE(Test,1,0,PropertyObject,PropertyObject);
+ QML_REGISTER_TYPE(Test,1,0,MyContainer,MyContainer);
+}
+
void tst_qmlmetaproperty::qmlmetaproperty()
{
QmlMetaProperty prop;
@@ -209,7 +215,6 @@ private:
};
QML_DECLARE_TYPE(PropertyObject);
-QML_DEFINE_TYPE(Test,1,0,PropertyObject,PropertyObject);
void tst_qmlmetaproperty::qmlmetaproperty_object()
{
diff --git a/tests/auto/declarative/qmlmetatype/tst_qmlmetatype.cpp b/tests/auto/declarative/qmlmetatype/tst_qmlmetatype.cpp
index 750ccf8..027b607 100644
--- a/tests/auto/declarative/qmlmetatype/tst_qmlmetatype.cpp
+++ b/tests/auto/declarative/qmlmetatype/tst_qmlmetatype.cpp
@@ -60,6 +60,8 @@ public:
tst_qmlmetatype() {}
private slots:
+ void initTestCase();
+
void copy();
void qmlParserStatusCast();
@@ -81,7 +83,6 @@ public:
int foo() { return 0; }
};
QML_DECLARE_TYPE(TestType);
-QML_DEFINE_TYPE(Test, 1, 0, TestType, TestType);
class ParserStatusTestType : public QObject, public QmlParserStatus
{
@@ -89,7 +90,6 @@ class ParserStatusTestType : public QObject, public QmlParserStatus
Q_CLASSINFO("DefaultProperty", "foo"); // Missing default property
};
QML_DECLARE_TYPE(ParserStatusTestType);
-QML_DEFINE_TYPE(Test, 1, 0, ParserStatusTestType, ParserStatusTestType);
class ValueSourceTestType : public QObject, public QmlPropertyValueSource
{
@@ -99,7 +99,6 @@ public:
virtual void setTarget(const QmlMetaProperty &) {}
};
QML_DECLARE_TYPE(ValueSourceTestType);
-QML_DEFINE_TYPE(Test, 1, 0, ValueSourceTestType, ValueSourceTestType);
class ValueInterceptorTestType : public QObject, public QmlPropertyValueInterceptor
{
@@ -110,7 +109,6 @@ public:
virtual void write(const QVariant &) {}
};
QML_DECLARE_TYPE(ValueInterceptorTestType);
-QML_DEFINE_TYPE(Test, 1, 0, ValueInterceptorTestType, ValueInterceptorTestType);
#define COPY_TEST(cpptype, metatype, value, defaultvalue) \
@@ -131,6 +129,14 @@ QML_DEFINE_TYPE(Test, 1, 0, ValueInterceptorTestType, ValueInterceptorTestType);
QVERIFY(v == (value)); \
}
+void tst_qmlmetatype::initTestCase()
+{
+ QML_REGISTER_TYPE(Test, 1, 0, TestType, TestType);
+ QML_REGISTER_TYPE(Test, 1, 0, ParserStatusTestType, ParserStatusTestType);
+ QML_REGISTER_TYPE(Test, 1, 0, ValueSourceTestType, ValueSourceTestType);
+ QML_REGISTER_TYPE(Test, 1, 0, ValueInterceptorTestType, ValueInterceptorTestType);
+}
+
void tst_qmlmetatype::copy()
{
QVERIFY(QmlMetaType::copy(QMetaType::Void, 0, 0));
diff --git a/tests/auto/declarative/qmlmoduleplugin/plugin/plugin.cpp b/tests/auto/declarative/qmlmoduleplugin/plugin/plugin.cpp
index ddd1e5e..6354d31 100644
--- a/tests/auto/declarative/qmlmoduleplugin/plugin/plugin.cpp
+++ b/tests/auto/declarative/qmlmoduleplugin/plugin/plugin.cpp
@@ -61,7 +61,6 @@ private:
};
QML_DECLARE_TYPE(MyPluginType);
-QML_DEFINE_TYPE(com.nokia.AutoTestQmlPluginType,1,0,MyPluginType,MyPluginType);
class MyPlugin : public QmlModulePlugin
@@ -81,6 +80,7 @@ public:
void defineModule(const QString& uri)
{
Q_ASSERT(uri == "com.nokia.AutoTestQmlPluginType");
+ QML_REGISTER_TYPE(com.nokia.AutoTestQmlPluginType,1,0,MyPluginType,MyPluginType);
}
};
diff --git a/tests/auto/declarative/qmlstates/tst_qmlstates.cpp b/tests/auto/declarative/qmlstates/tst_qmlstates.cpp
index b910c85..c372a15 100644
--- a/tests/auto/declarative/qmlstates/tst_qmlstates.cpp
+++ b/tests/auto/declarative/qmlstates/tst_qmlstates.cpp
@@ -56,6 +56,8 @@ private:
static QByteArray fullDataPath(const QString &path);
private slots:
+ void initTestCase();
+
void basicChanges();
void basicExtension();
void basicBinding();
@@ -344,7 +346,11 @@ Q_SIGNALS:
};
QML_DECLARE_TYPE(MyRect)
-QML_DEFINE_TYPE(Qt.test, 1, 0, MyRectangle,MyRect);
+
+void tst_qmlstates::initTestCase()
+{
+ QML_REGISTER_TYPE(Qt.test, 1, 0, MyRectangle,MyRect);
+}
void tst_qmlstates::signalOverride()
{
diff --git a/tests/auto/declarative/qmlvaluetypes/testtypes.cpp b/tests/auto/declarative/qmlvaluetypes/testtypes.cpp
index c51b777..aa8bd6e 100644
--- a/tests/auto/declarative/qmlvaluetypes/testtypes.cpp
+++ b/tests/auto/declarative/qmlvaluetypes/testtypes.cpp
@@ -40,6 +40,9 @@
****************************************************************************/
#include "testtypes.h"
-QML_DEFINE_TYPE(Test, 1, 0, MyTypeObject, MyTypeObject);
-QML_DEFINE_TYPE(Test, 1, 0, MyConstantValueSource, MyConstantValueSource);
-QML_DEFINE_TYPE(Test, 1, 0, MyOffsetValueInterceptor, MyOffsetValueInterceptor);
+void registerTypes()
+{
+ QML_REGISTER_TYPE(Test, 1, 0, MyTypeObject, MyTypeObject);
+ QML_REGISTER_TYPE(Test, 1, 0, MyConstantValueSource, MyConstantValueSource);
+ QML_REGISTER_TYPE(Test, 1, 0, MyOffsetValueInterceptor, MyOffsetValueInterceptor);
+}
diff --git a/tests/auto/declarative/qmlvaluetypes/testtypes.h b/tests/auto/declarative/qmlvaluetypes/testtypes.h
index b57fbff..5f9dde1 100644
--- a/tests/auto/declarative/qmlvaluetypes/testtypes.h
+++ b/tests/auto/declarative/qmlvaluetypes/testtypes.h
@@ -149,4 +149,6 @@ private:
};
QML_DECLARE_TYPE(MyOffsetValueInterceptor);
+void registerTypes();
+
#endif // TESTTYPES_H
diff --git a/tests/auto/declarative/qmlvaluetypes/tst_qmlvaluetypes.cpp b/tests/auto/declarative/qmlvaluetypes/tst_qmlvaluetypes.cpp
index 4faa0bc..f28dc51 100644
--- a/tests/auto/declarative/qmlvaluetypes/tst_qmlvaluetypes.cpp
+++ b/tests/auto/declarative/qmlvaluetypes/tst_qmlvaluetypes.cpp
@@ -53,6 +53,8 @@ public:
tst_qmlvaluetypes() {}
private slots:
+ void initTestCase();
+
void point();
void pointf();
void size();
@@ -80,6 +82,11 @@ private:
QmlEngine engine;
};
+void tst_qmlvaluetypes::initTestCase()
+{
+ registerTypes();
+}
+
inline QUrl TEST_FILE(const QString &filename)
{
return QUrl::fromLocalFile(QLatin1String(SRCDIR) + QLatin1String("/data/") + filename);
diff --git a/tests/benchmarks/declarative/binding/testtypes.cpp b/tests/benchmarks/declarative/binding/testtypes.cpp
index 3a9f59b..043c8ab 100644
--- a/tests/benchmarks/declarative/binding/testtypes.cpp
+++ b/tests/benchmarks/declarative/binding/testtypes.cpp
@@ -40,4 +40,7 @@
****************************************************************************/
#include "testtypes.h"
-QML_DEFINE_TYPE(Test, 1, 0, MyQmlObject, MyQmlObject);
+void registerTypes()
+{
+ QML_REGISTER_TYPE(Test, 1, 0, MyQmlObject, MyQmlObject);
+}
diff --git a/tests/benchmarks/declarative/binding/testtypes.h b/tests/benchmarks/declarative/binding/testtypes.h
index d4e0a1a..a4f16d0 100644
--- a/tests/benchmarks/declarative/binding/testtypes.h
+++ b/tests/benchmarks/declarative/binding/testtypes.h
@@ -78,4 +78,6 @@ private:
};
QML_DECLARE_TYPE(MyQmlObject);
+void registerTypes();
+
#endif // TESTTYPES_H
diff --git a/tests/benchmarks/declarative/binding/tst_binding.cpp b/tests/benchmarks/declarative/binding/tst_binding.cpp
index 74a3407..8fae924 100644
--- a/tests/benchmarks/declarative/binding/tst_binding.cpp
+++ b/tests/benchmarks/declarative/binding/tst_binding.cpp
@@ -57,8 +57,8 @@ public:
virtual ~tst_binding();
public slots:
- void init();
- void cleanup();
+ void initTestCase();
+ void cleanupTestCase();
private slots:
void objectproperty_data();
@@ -78,11 +78,12 @@ tst_binding::~tst_binding()
{
}
-void tst_binding::init()
+void tst_binding::initTestCase()
{
+ registerTypes();
}
-void tst_binding::cleanup()
+void tst_binding::cleanupTestCase()
{
}
diff --git a/tests/benchmarks/declarative/qmlcomponent/testtypes.cpp b/tests/benchmarks/declarative/qmlcomponent/testtypes.cpp
index f0bc1f9..acdc395 100644
--- a/tests/benchmarks/declarative/qmlcomponent/testtypes.cpp
+++ b/tests/benchmarks/declarative/qmlcomponent/testtypes.cpp
@@ -40,4 +40,7 @@
****************************************************************************/
#include "testtypes.h"
-QML_DEFINE_TYPE(Qt.test, 4, 6, MyQmlObject, MyQmlObject);
+void registerTypes()
+{
+ QML_REGISTER_TYPE(Qt.test, 4, 6, MyQmlObject, MyQmlObject);
+}
diff --git a/tests/benchmarks/declarative/qmlcomponent/testtypes.h b/tests/benchmarks/declarative/qmlcomponent/testtypes.h
index d4e0a1a..a4f16d0 100644
--- a/tests/benchmarks/declarative/qmlcomponent/testtypes.h
+++ b/tests/benchmarks/declarative/qmlcomponent/testtypes.h
@@ -78,4 +78,6 @@ private:
};
QML_DECLARE_TYPE(MyQmlObject);
+void registerTypes();
+
#endif // TESTTYPES_H
diff --git a/tests/benchmarks/declarative/qmlcomponent/tst_qmlcomponent.cpp b/tests/benchmarks/declarative/qmlcomponent/tst_qmlcomponent.cpp
index 647edbf..afd1cdf 100644
--- a/tests/benchmarks/declarative/qmlcomponent/tst_qmlcomponent.cpp
+++ b/tests/benchmarks/declarative/qmlcomponent/tst_qmlcomponent.cpp
@@ -58,8 +58,8 @@ public:
virtual ~tst_qmlcomponent();
public slots:
- void init();
- void cleanup();
+ void initTestCase();
+ void cleanupTestCase();
private slots:
void creation_data();
@@ -77,11 +77,12 @@ tst_qmlcomponent::~tst_qmlcomponent()
{
}
-void tst_qmlcomponent::init()
+void tst_qmlcomponent::initTestCase()
{
+ registerTypes();
}
-void tst_qmlcomponent::cleanup()
+void tst_qmlcomponent::cleanupTestCase()
{
}
diff --git a/tests/benchmarks/declarative/qmltime/qmltime.cpp b/tests/benchmarks/declarative/qmltime/qmltime.cpp
index 8e312be..b791934 100644
--- a/tests/benchmarks/declarative/qmltime/qmltime.cpp
+++ b/tests/benchmarks/declarative/qmltime/qmltime.cpp
@@ -76,7 +76,6 @@ private:
QGraphicsRectItem m_item;
};
QML_DECLARE_TYPE(Timer);
-QML_DEFINE_TYPE(QmlTime, 1, 0, Timer, Timer);
Timer *Timer::m_timer = 0;
@@ -157,6 +156,8 @@ int main(int argc, char ** argv)
{
QApplication app(argc, argv);
+ QML_REGISTER_TYPE(QmlTime, 1, 0, Timer, Timer);
+
uint iterations = 1024;
QString filename;
bool willParent = false;
diff --git a/tests/benchmarks/declarative/script/tst_script.cpp b/tests/benchmarks/declarative/script/tst_script.cpp
index 15902e4..a11fe31 100644
--- a/tests/benchmarks/declarative/script/tst_script.cpp
+++ b/tests/benchmarks/declarative/script/tst_script.cpp
@@ -61,6 +61,8 @@ public:
tst_script() {}
private slots:
+ void initTestCase();
+
void property_js();
void property_getter();
void property_getter_js();
@@ -94,6 +96,11 @@ private slots:
private:
};
+void tst_script::initTestCase()
+{
+ QML_REGISTER_TYPE(Qt.test, 1, 0, TestObject, TestObject);
+}
+
inline QUrl TEST_FILE(const QString &filename)
{
return QUrl::fromLocalFile(QLatin1String(SRCDIR) + QLatin1String("/data/") + filename);
@@ -129,7 +136,6 @@ private:
int m_x;
};
QML_DECLARE_TYPE(TestObject);
-QML_DEFINE_TYPE(Qt.test, 1, 0, TestObject, TestObject);
TestObject::TestObject(QObject *parent)
: QObject(parent), m_x(0)
diff --git a/tools/qmlviewer/main.cpp b/tools/qmlviewer/main.cpp
index 57c445f..0f51da2 100644
--- a/tools/qmlviewer/main.cpp
+++ b/tools/qmlviewer/main.cpp
@@ -46,6 +46,8 @@
#include <QApplication>
#include <QTranslator>
#include <QDebug>
+#include "qfxtester.h"
+#include "qmlfolderlistmodel.h"
QT_USE_NAMESPACE
@@ -150,6 +152,10 @@ int main(int argc, char ** argv)
app.setOrganizationName("Nokia");
app.setOrganizationDomain("nokia.com");
+ QmlViewer::registerTypes();
+ QmlGraphicsTester::registerTypes();
+ QmlFolderListModel::registerTypes();
+
bool frameless = false;
bool resizeview = false;
QString fileName;
diff --git a/tools/qmlviewer/qfxtester.cpp b/tools/qmlviewer/qfxtester.cpp
index c3c0124..b2e4054 100644
--- a/tools/qmlviewer/qfxtester.cpp
+++ b/tools/qmlviewer/qfxtester.cpp
@@ -52,10 +52,6 @@
QT_BEGIN_NAMESPACE
-QML_DEFINE_TYPE(Qt.VisualTest, 4,6, VisualTest, QmlGraphicsVisualTest);
-QML_DEFINE_TYPE(Qt.VisualTest, 4,6, Frame, QmlGraphicsVisualTestFrame);
-QML_DEFINE_TYPE(Qt.VisualTest, 4,6, Mouse, QmlGraphicsVisualTestMouse);
-QML_DEFINE_TYPE(Qt.VisualTest, 4,6, Key, QmlGraphicsVisualTestKey);
QmlGraphicsTester::QmlGraphicsTester(const QString &script, QmlViewer::ScriptOptions opts,
QmlView *parent)
@@ -375,4 +371,12 @@ void QmlGraphicsTester::updateCurrentTime(int msec)
complete();
}
+void QmlGraphicsTester::registerTypes()
+{
+ QML_REGISTER_TYPE(Qt.VisualTest, 4,6, VisualTest, QmlGraphicsVisualTest);
+ QML_REGISTER_TYPE(Qt.VisualTest, 4,6, Frame, QmlGraphicsVisualTestFrame);
+ QML_REGISTER_TYPE(Qt.VisualTest, 4,6, Mouse, QmlGraphicsVisualTestMouse);
+ QML_REGISTER_TYPE(Qt.VisualTest, 4,6, Key, QmlGraphicsVisualTestKey);
+}
+
QT_END_NAMESPACE
diff --git a/tools/qmlviewer/qfxtester.h b/tools/qmlviewer/qfxtester.h
index 4b8ff9f..bae807b 100644
--- a/tools/qmlviewer/qfxtester.h
+++ b/tools/qmlviewer/qfxtester.h
@@ -206,6 +206,8 @@ public:
QmlGraphicsTester(const QString &script, QmlViewer::ScriptOptions options, QmlView *parent);
~QmlGraphicsTester();
+ static void registerTypes();
+
virtual int duration() const;
void run();
diff --git a/tools/qmlviewer/qmlfolderlistmodel.cpp b/tools/qmlviewer/qmlfolderlistmodel.cpp
index 698df54..aec7756 100644
--- a/tools/qmlviewer/qmlfolderlistmodel.cpp
+++ b/tools/qmlviewer/qmlfolderlistmodel.cpp
@@ -401,7 +401,7 @@ bool QmlFolderListModel::showOnlyReadable() const
return d->model.filter() & QDir::Readable;
}
-void QmlFolderListModel::setShowOnlyReadable(bool on)
+void QmlFolderListModel::setShowOnlyReadable(bool on)
{
if (!(d->model.filter() & QDir::Readable) == !on)
return;
@@ -411,8 +411,10 @@ void QmlFolderListModel::setShowOnlyReadable(bool on)
d->model.setFilter(d->model.filter() & ~QDir::Readable);
}
-
-QML_DEFINE_TYPE(Qt,4,6,FolderListModel,QmlFolderListModel)
+void QmlFolderListModel::registerTypes()
+{
+ QML_REGISTER_TYPE(Qt,4,6,FolderListModel,QmlFolderListModel);
+}
QT_END_NAMESPACE
diff --git a/tools/qmlviewer/qmlfolderlistmodel.h b/tools/qmlviewer/qmlfolderlistmodel.h
index c180e97..1a1c299 100644
--- a/tools/qmlviewer/qmlfolderlistmodel.h
+++ b/tools/qmlviewer/qmlfolderlistmodel.h
@@ -69,6 +69,8 @@ public:
QmlFolderListModel(QObject *parent = 0);
~QmlFolderListModel();
+ static void registerTypes();
+
virtual QHash<int,QVariant> data(int index, const QList<int> &roles = (QList<int>())) const;
virtual QVariant data(int index, int role) const;
virtual int count() const;
diff --git a/tools/qmlviewer/qmlviewer.cpp b/tools/qmlviewer/qmlviewer.cpp
index f881cd7..789c960 100644
--- a/tools/qmlviewer/qmlviewer.cpp
+++ b/tools/qmlviewer/qmlviewer.cpp
@@ -139,8 +139,6 @@ QT_END_NAMESPACE
QML_DECLARE_TYPE(Screen)
-QML_DEFINE_TYPE(QmlViewer, 1, 0, Screen, Screen)
-
QT_BEGIN_NAMESPACE
class SizedMenuBar : public QMenuBar
@@ -1460,6 +1458,11 @@ void QmlViewer::setUseNativeFileBrowser(bool use)
useQmlFileBrowser = !use;
}
+void QmlViewer::registerTypes()
+{
+ QML_REGISTER_TYPE(QmlViewer, 1, 0, Screen, Screen);
+}
+
QT_END_NAMESPACE
#include "qmlviewer.moc"
diff --git a/tools/qmlviewer/qmlviewer.h b/tools/qmlviewer/qmlviewer.h
index c7f87ed..ac7b9a0 100644
--- a/tools/qmlviewer/qmlviewer.h
+++ b/tools/qmlviewer/qmlviewer.h
@@ -72,6 +72,8 @@ public:
QmlViewer(QWidget *parent=0, Qt::WindowFlags flags=0);
~QmlViewer();
+ static void registerTypes();
+
enum ScriptOption {
Play = 0x00000001,
Record = 0x00000002,