summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRobin Burchell <robin+qt@viroteck.net>2012-09-01 13:57:32 +0200
committerQt by Nokia <qt-info@nokia.com>2012-09-03 23:01:06 +0200
commite5b200fa06e01a7ff7b0943b9c8bca564a7320c4 (patch)
treed3f2ad1c791d96f02a6874d646a1f94779128118 /src
parent427c66394d21e004f35c349d23b02f63014eb225 (diff)
Register Qt 4.7 import on-demand, instead of at startup.
This is a slightly less awkward approach (keeps backwards-compatibility) while speeding up startup for applications that don't use the old import path. Also prints a warning to let developers know they should migrate their code when possible. Completely disabling the Qt 4.7 import is still possible by setting QT_NO_IMPORT_QT47_QML. This takes around 10-15ms off a very simple "hello world" on my macbook. As an added bonus, forward-port a similar approach to 4.8's a26f545d8e25af74fb43d16c9afa79f6e04463e7 and don't register graphical types in a non-graphical application as someone (very naughtily) apparently forgot to get it integrated to Qt 5 first. Change-Id: I7821523750b3ab6770f367788725d0da70c5ec1f Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com> Reviewed-by: Alan Alpert <416365416c@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/declarative/graphicsitems/qdeclarativeitemsmodule.cpp12
-rw-r--r--src/declarative/graphicsitems/qdeclarativeitemsmodule_p.h1
-rw-r--r--src/declarative/qml/qdeclarativeengine.cpp11
-rw-r--r--src/declarative/qml/qdeclarativeengine_p.h1
-rw-r--r--src/declarative/qml/qdeclarativemetatype.cpp20
-rw-r--r--src/declarative/qml/qdeclarativevaluetype.cpp10
-rw-r--r--src/declarative/qml/qdeclarativevaluetype_p.h1
-rw-r--r--src/declarative/util/qdeclarativeutilmodule.cpp140
-rw-r--r--src/declarative/util/qdeclarativeutilmodule_p.h1
9 files changed, 124 insertions, 73 deletions
diff --git a/src/declarative/graphicsitems/qdeclarativeitemsmodule.cpp b/src/declarative/graphicsitems/qdeclarativeitemsmodule.cpp
index 5a923271..d7083e1a 100644
--- a/src/declarative/graphicsitems/qdeclarativeitemsmodule.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeitemsmodule.cpp
@@ -96,6 +96,9 @@ static QDeclarativePrivate::AutoParentResult qgraphicsobject_autoParent(QObject
void QDeclarativeItemModule::defineModule()
{
+ if (QApplication::type() == QApplication::Tty)
+ return;
+
QDeclarativePrivate::RegisterAutoParent autoparent = { 0, &qgraphicsobject_autoParent };
QDeclarativePrivate::qmlregister(QDeclarativePrivate::AutoParentRegistration, &autoparent);
#ifdef QT_NO_MOVIE
@@ -199,8 +202,13 @@ void QDeclarativeItemModule::defineModule()
qmlRegisterRevision<QDeclarativeImplicitSizePaintedItem,0>("QtQuick",1,0);
qmlRegisterRevision<QDeclarativeImplicitSizePaintedItem,1>("QtQuick",1,1);
qmlRegisterUncreatableType<QDeclarativeLayoutMirroringAttached>("QtQuick",1,1,"LayoutMirroring", QDeclarativeLayoutMirroringAttached::tr("LayoutMirroring is only available via attached properties"));
+}
+
+void QDeclarativeItemModule::defineModuleCompat()
+{
+ if (QApplication::type() == QApplication::Tty)
+ return;
-#ifndef QT_NO_IMPORT_QT47_QML
#ifdef QT_NO_MOVIE
qmlRegisterTypeNotAvailable("Qt",4,7,"AnimatedImage",
qApp->translate("QDeclarativeAnimatedImage","Qt was built without support for QMovie"));
@@ -257,5 +265,5 @@ void QDeclarativeItemModule::defineModule()
qmlRegisterUncreatableType<QDeclarativeKeyNavigationAttached>("Qt",4,7,"KeyNavigation",QDeclarativeKeyNavigationAttached::tr("KeyNavigation is only available via attached properties"));
qmlRegisterUncreatableType<QDeclarativeKeysAttached>("Qt",4,7,"Keys",QDeclarativeKeysAttached::tr("Keys is only available via attached properties"));
-#endif
}
+
diff --git a/src/declarative/graphicsitems/qdeclarativeitemsmodule_p.h b/src/declarative/graphicsitems/qdeclarativeitemsmodule_p.h
index 4e22360c..1d009085 100644
--- a/src/declarative/graphicsitems/qdeclarativeitemsmodule_p.h
+++ b/src/declarative/graphicsitems/qdeclarativeitemsmodule_p.h
@@ -54,6 +54,7 @@ class QDeclarativeItemModule
{
public:
static void defineModule();
+ static void defineModuleCompat();
};
QT_END_NAMESPACE
diff --git a/src/declarative/qml/qdeclarativeengine.cpp b/src/declarative/qml/qdeclarativeengine.cpp
index bbf2b6be..b38a4991 100644
--- a/src/declarative/qml/qdeclarativeengine.cpp
+++ b/src/declarative/qml/qdeclarativeengine.cpp
@@ -188,13 +188,16 @@ void QDeclarativeEnginePrivate::defineModule()
qmlRegisterType<QObject>("QtQuick",1,0,"QtObject");
qmlRegisterType<QDeclarativeWorkerScript>("QtQuick",1,0,"WorkerScript");
+ qmlRegisterType<QDeclarativeBinding>();
+}
+
+void QDeclarativeEnginePrivate::defineModuleCompat()
+{
#ifndef QT_NO_IMPORT_QT47_QML
qmlRegisterType<QDeclarativeComponent>("Qt",4,7,"Component");
qmlRegisterType<QObject>("Qt",4,7,"QtObject");
qmlRegisterType<QDeclarativeWorkerScript>("Qt",4,7,"WorkerScript");
#endif
-
- qmlRegisterType<QDeclarativeBinding>();
}
/*!
@@ -356,10 +359,10 @@ QDeclarativeEnginePrivate::QDeclarativeEnginePrivate(QDeclarativeEngine *e)
{
if (!qt_QmlQtModule_registered) {
qt_QmlQtModule_registered = true;
- QDeclarativeItemModule::defineModule();
- QDeclarativeUtilModule::defineModule();
QDeclarativeEnginePrivate::defineModule();
+ QDeclarativeItemModule::defineModule();
QDeclarativeValueTypeFactory::registerValueTypes();
+ QDeclarativeUtilModule::defineModule();
}
globalClass = new QDeclarativeGlobalScriptClass(&scriptEngine);
}
diff --git a/src/declarative/qml/qdeclarativeengine_p.h b/src/declarative/qml/qdeclarativeengine_p.h
index c4b55156..d5659878 100644
--- a/src/declarative/qml/qdeclarativeengine_p.h
+++ b/src/declarative/qml/qdeclarativeengine_p.h
@@ -324,6 +324,7 @@ public:
static QString urlToLocalFileOrQrc(const QUrl& url);
static void defineModule();
+ static void defineModuleCompat();
static bool qml_debugging_enabled;
};
diff --git a/src/declarative/qml/qdeclarativemetatype.cpp b/src/declarative/qml/qdeclarativemetatype.cpp
index 7786bea4..a045623d 100644
--- a/src/declarative/qml/qdeclarativemetatype.cpp
+++ b/src/declarative/qml/qdeclarativemetatype.cpp
@@ -45,6 +45,9 @@
#include "private/qdeclarativeproxymetaobject_p.h"
#include "private/qdeclarativecustomparser_p.h"
#include "private/qdeclarativeguard_p.h"
+#include "private/qdeclarativeengine_p.h"
+#include "private/qdeclarativeitemsmodule_p.h"
+#include "private/qdeclarativeutilmodule_p.h"
#include <QtCore/qdebug.h>
#include <QtCore/qstringlist.h>
@@ -690,6 +693,23 @@ int QDeclarativePrivate::qmlregister(RegistrationType type, void *data)
*/
bool QDeclarativeMetaType::isModule(const QByteArray &module, int versionMajor, int versionMinor)
{
+#ifndef QT_NO_IMPORT_QT47_QML
+ // "import Qt 4.7" should have died off, but unfortunately, it was in a
+ // major release. We don't register 4.7 types by default, as it's a
+ // performance penalty. Instead, register them on-demand.
+ if (strcmp(module.constData(), "Qt") == 0 && versionMajor == 4 && versionMinor == 7) {
+ static bool qt47Registered = false;
+ if (!qt47Registered) {
+ qWarning() << Q_FUNC_INFO << "Qt 4.7 import detected; please note that Qt 4.7 is directly reusable as QtQuick 1.x with no code changes. Continuing, but startup time will be slower.";
+ qt47Registered = true;
+ QDeclarativeEnginePrivate::defineModuleCompat();
+ QDeclarativeItemModule::defineModuleCompat();
+ QDeclarativeValueTypeFactory::registerValueTypesCompat();
+ QDeclarativeUtilModule::defineModuleCompat();
+ }
+ }
+#endif
+
QDeclarativeMetaTypeData *data = metaTypeData();
QDeclarativeMetaTypeData::ModuleInfoHash::Iterator it = data->modules.find(module);
return it != data->modules.end()
diff --git a/src/declarative/qml/qdeclarativevaluetype.cpp b/src/declarative/qml/qdeclarativevaluetype.cpp
index c18ea9d8..6a0eac98 100644
--- a/src/declarative/qml/qdeclarativevaluetype.cpp
+++ b/src/declarative/qml/qdeclarativevaluetype.cpp
@@ -44,6 +44,7 @@
#include "private/qdeclarativemetatype_p.h"
#include "private/qfont_p.h"
+#include <QtWidgets/qapplication.h>
#include <QtCore/qdebug.h>
QT_BEGIN_NAMESPACE
@@ -106,10 +107,15 @@ void QDeclarativeValueTypeFactory::registerValueTypes()
{
qmlRegisterValueTypeEnums<QDeclarativeEasingValueType>("QtQuick",1,0,"Easing");
qmlRegisterValueTypeEnums<QDeclarativeFontValueType>("QtQuick",1,0,"Font");
-#ifndef QT_NO_IMPORT_QT47_QML
+}
+
+void QDeclarativeValueTypeFactory::registerValueTypesCompat()
+{
+ if (QApplication::type() == QApplication::Tty)
+ return;
+
qmlRegisterValueTypeEnums<QDeclarativeEasingValueType>("Qt",4,7,"Easing");
qmlRegisterValueTypeEnums<QDeclarativeFontValueType>("Qt",4,7,"Font");
-#endif
}
QDeclarativeValueType *QDeclarativeValueTypeFactory::valueType(int t)
diff --git a/src/declarative/qml/qdeclarativevaluetype_p.h b/src/declarative/qml/qdeclarativevaluetype_p.h
index 66afdf95..3fac009b 100644
--- a/src/declarative/qml/qdeclarativevaluetype_p.h
+++ b/src/declarative/qml/qdeclarativevaluetype_p.h
@@ -90,6 +90,7 @@ public:
static QDeclarativeValueType *valueType(int);
static void registerValueTypes();
+ static void registerValueTypesCompat();
QDeclarativeValueType *operator[](int idx) const {
if (idx >= (int)QVariant::UserType) return 0;
diff --git a/src/declarative/util/qdeclarativeutilmodule.cpp b/src/declarative/util/qdeclarativeutilmodule.cpp
index 669604e6..fd301232 100644
--- a/src/declarative/util/qdeclarativeutilmodule.cpp
+++ b/src/declarative/util/qdeclarativeutilmodule.cpp
@@ -73,40 +73,50 @@
#ifdef QT_XMLPATTERNS_LIB
#include "private/qdeclarativexmllistmodel_p.h"
#endif
+#include <qapplication.h>
void QDeclarativeUtilModule::defineModule()
{
- qmlRegisterUncreatableType<QDeclarativeApplication>("QtQuick",1,1,"Application", QDeclarativeApplication::tr("Application is an abstract class"));
+ if (QApplication::type() != QApplication::Tty) {
+ qmlRegisterUncreatableType<QDeclarativeApplication>("QtQuick",1,1,"Application", QDeclarativeApplication::tr("Application is an abstract class"));
+
+ qmlRegisterType<QDeclarativeAnchorAnimation>("QtQuick",1,0,"AnchorAnimation");
+ qmlRegisterType<QDeclarativeAnchorChanges>("QtQuick",1,0,"AnchorChanges");
+ qmlRegisterType<QDeclarativeBehavior>("QtQuick",1,0,"Behavior");
+ qmlRegisterType<QDeclarativeColorAnimation>("QtQuick",1,0,"ColorAnimation");
+ qmlRegisterType<QDeclarativeSmoothedAnimation>("QtQuick",1,0,"SmoothedAnimation");
+ qmlRegisterType<QDeclarativeFontLoader>("QtQuick",1,0,"FontLoader");
+ qmlRegisterType<QDeclarativeNumberAnimation>("QtQuick",1,0,"NumberAnimation");
+ qmlRegisterType<QDeclarativePackage>("QtQuick",1,0,"Package");
+ qmlRegisterType<QDeclarativeParallelAnimation>("QtQuick",1,0,"ParallelAnimation");
+ qmlRegisterType<QDeclarativeParentAnimation>("QtQuick",1,0,"ParentAnimation");
+ qmlRegisterType<QDeclarativeParentChange>("QtQuick",1,0,"ParentChange");
+ qmlRegisterType<QDeclarativePauseAnimation>("QtQuick",1,0,"PauseAnimation");
+ qmlRegisterType<QDeclarativePropertyAction>("QtQuick",1,0,"PropertyAction");
+ qmlRegisterType<QDeclarativePropertyAnimation>("QtQuick",1,0,"PropertyAnimation");
+ qmlRegisterType<QDeclarativeRotationAnimation>("QtQuick",1,0,"RotationAnimation");
+ qmlRegisterType<QDeclarativeScriptAction>("QtQuick",1,0,"ScriptAction");
+ qmlRegisterType<QDeclarativeSequentialAnimation>("QtQuick",1,0,"SequentialAnimation");
+ qmlRegisterType<QDeclarativeSpringAnimation>("QtQuick",1,0,"SpringAnimation");
+ qmlRegisterType<QDeclarativeSystemPalette>("QtQuick",1,0,"SystemPalette");
+ qmlRegisterType<QDeclarativeTransition>("QtQuick",1,0,"Transition");
+ qmlRegisterType<QDeclarativeVector3dAnimation>("QtQuick",1,0,"Vector3dAnimation");
+
+ qmlRegisterType<QDeclarativeAnchors>();
+ qmlRegisterType<QDeclarativeStateOperation>();
+ qmlRegisterType<QDeclarativeAnchorSet>();
+
+ qmlRegisterUncreatableType<QDeclarativeAbstractAnimation>("QtQuick",1,0,"Animation",QDeclarativeAbstractAnimation::tr("Animation is an abstract class"));
+ }
- qmlRegisterType<QDeclarativeAnchorAnimation>("QtQuick",1,0,"AnchorAnimation");
- qmlRegisterType<QDeclarativeAnchorChanges>("QtQuick",1,0,"AnchorChanges");
- qmlRegisterType<QDeclarativeBehavior>("QtQuick",1,0,"Behavior");
qmlRegisterType<QDeclarativeBind>("QtQuick",1,0,"Binding");
- qmlRegisterType<QDeclarativeColorAnimation>("QtQuick",1,0,"ColorAnimation");
qmlRegisterType<QDeclarativeConnections>("QtQuick",1,0,"Connections");
- qmlRegisterType<QDeclarativeSmoothedAnimation>("QtQuick",1,0,"SmoothedAnimation");
- qmlRegisterType<QDeclarativeFontLoader>("QtQuick",1,0,"FontLoader");
- qmlRegisterType<QDeclarativeListElement>("QtQuick",1,0,"ListElement");
- qmlRegisterType<QDeclarativeNumberAnimation>("QtQuick",1,0,"NumberAnimation");
- qmlRegisterType<QDeclarativePackage>("QtQuick",1,0,"Package");
- qmlRegisterType<QDeclarativeParallelAnimation>("QtQuick",1,0,"ParallelAnimation");
- qmlRegisterType<QDeclarativeParentAnimation>("QtQuick",1,0,"ParentAnimation");
- qmlRegisterType<QDeclarativeParentChange>("QtQuick",1,0,"ParentChange");
- qmlRegisterType<QDeclarativePauseAnimation>("QtQuick",1,0,"PauseAnimation");
- qmlRegisterType<QDeclarativePropertyAction>("QtQuick",1,0,"PropertyAction");
- qmlRegisterType<QDeclarativePropertyAnimation>("QtQuick",1,0,"PropertyAnimation");
- qmlRegisterType<QDeclarativeRotationAnimation>("QtQuick",1,0,"RotationAnimation");
- qmlRegisterType<QDeclarativeScriptAction>("QtQuick",1,0,"ScriptAction");
- qmlRegisterType<QDeclarativeSequentialAnimation>("QtQuick",1,0,"SequentialAnimation");
- qmlRegisterType<QDeclarativeSpringAnimation>("QtQuick",1,0,"SpringAnimation");
- qmlRegisterType<QDeclarativeStateChangeScript>("QtQuick",1,0,"StateChangeScript");
+ qmlRegisterType<QDeclarativeTimer>("QtQuick",1,0,"Timer");
qmlRegisterType<QDeclarativeStateGroup>("QtQuick",1,0,"StateGroup");
qmlRegisterType<QDeclarativeState>("QtQuick",1,0,"State");
- qmlRegisterType<QDeclarativeSystemPalette>("QtQuick",1,0,"SystemPalette");
- qmlRegisterType<QDeclarativeTimer>("QtQuick",1,0,"Timer");
- qmlRegisterType<QDeclarativeTransition>("QtQuick",1,0,"Transition");
- qmlRegisterType<QDeclarativeVector3dAnimation>("QtQuick",1,0,"Vector3dAnimation");
-#ifndef QT_XMLPATTERNS_LIB
+ qmlRegisterType<QDeclarativeStateChangeScript>("QtQuick",1,0,"StateChangeScript");
+ qmlRegisterType<QDeclarativeListElement>("QtQuick",1,0,"ListElement");
+#ifdef QT_NO_XMLPATTERNS
qmlRegisterTypeNotAvailable("QtQuick",1,0,"XmlListModel",
qApp->translate("QDeclarativeXmlListModel","Qt was built without support for xmlpatterns"));
qmlRegisterTypeNotAvailable("QtQuick",1,0,"XmlRole",
@@ -115,47 +125,49 @@ void QDeclarativeUtilModule::defineModule()
qmlRegisterType<QDeclarativeXmlListModel>("QtQuick",1,0,"XmlListModel");
qmlRegisterType<QDeclarativeXmlListModelRole>("QtQuick",1,0,"XmlRole");
#endif
-
- qmlRegisterType<QDeclarativeAnchors>();
- qmlRegisterType<QDeclarativeStateOperation>();
- qmlRegisterType<QDeclarativeAnchorSet>();
-
- qmlRegisterUncreatableType<QDeclarativeAbstractAnimation>("QtQuick",1,0,"Animation",QDeclarativeAbstractAnimation::tr("Animation is an abstract class"));
-
- qmlRegisterCustomType<QDeclarativeListModel>("QtQuick",1,0,"ListModel", new QDeclarativeListModelParser);
- qmlRegisterCustomType<QDeclarativePropertyChanges>("QtQuick",1,0,"PropertyChanges", new QDeclarativePropertyChangesParser);
qmlRegisterCustomType<QDeclarativeConnections>("QtQuick",1,0,"Connections", new QDeclarativeConnectionsParser);
+ qmlRegisterCustomType<QDeclarativePropertyChanges>("QtQuick",1,0,"PropertyChanges", new QDeclarativePropertyChangesParser);
+ qmlRegisterCustomType<QDeclarativeListModel>("QtQuick",1,0,"ListModel", new QDeclarativeListModelParser);
+}
+void QDeclarativeUtilModule::defineModuleCompat()
+{
#ifndef QT_NO_IMPORT_QT47_QML
- qmlRegisterType<QDeclarativeAnchorAnimation>("Qt",4,7,"AnchorAnimation");
- qmlRegisterType<QDeclarativeAnchorChanges>("Qt",4,7,"AnchorChanges");
- qmlRegisterType<QDeclarativeBehavior>("Qt",4,7,"Behavior");
+ if (QApplication::type() != QApplication::Tty) {
+ qmlRegisterType<QDeclarativeAnchorAnimation>("Qt",4,7,"AnchorAnimation");
+ qmlRegisterType<QDeclarativeAnchorChanges>("Qt",4,7,"AnchorChanges");
+ qmlRegisterType<QDeclarativeBehavior>("Qt",4,7,"Behavior");
+ qmlRegisterType<QDeclarativeColorAnimation>("Qt",4,7,"ColorAnimation");
+ qmlRegisterType<QDeclarativeSmoothedAnimation>("Qt",4,7,"SmoothedAnimation");
+ qmlRegisterType<QDeclarativeFontLoader>("Qt",4,7,"FontLoader");
+ qmlRegisterType<QDeclarativeNumberAnimation>("Qt",4,7,"NumberAnimation");
+ qmlRegisterType<QDeclarativePackage>("Qt",4,7,"Package");
+ qmlRegisterType<QDeclarativeParallelAnimation>("Qt",4,7,"ParallelAnimation");
+ qmlRegisterType<QDeclarativeParentAnimation>("Qt",4,7,"ParentAnimation");
+ qmlRegisterType<QDeclarativeParentChange>("Qt",4,7,"ParentChange");
+ qmlRegisterType<QDeclarativePauseAnimation>("Qt",4,7,"PauseAnimation");
+ qmlRegisterType<QDeclarativePropertyAction>("Qt",4,7,"PropertyAction");
+ qmlRegisterType<QDeclarativePropertyAnimation>("Qt",4,7,"PropertyAnimation");
+ qmlRegisterType<QDeclarativeRotationAnimation>("Qt",4,7,"RotationAnimation");
+ qmlRegisterType<QDeclarativeScriptAction>("Qt",4,7,"ScriptAction");
+ qmlRegisterType<QDeclarativeSequentialAnimation>("Qt",4,7,"SequentialAnimation");
+ qmlRegisterType<QDeclarativeSpringAnimation>("Qt",4,7,"SpringAnimation");
+ qmlRegisterType<QDeclarativeSystemPalette>("Qt",4,7,"SystemPalette");
+ qmlRegisterType<QDeclarativeTransition>("Qt",4,7,"Transition");
+ qmlRegisterType<QDeclarativeVector3dAnimation>("Qt",4,7,"Vector3dAnimation");
+
+ qmlRegisterUncreatableType<QDeclarativeAbstractAnimation>("Qt",4,7,"Animation",QDeclarativeAbstractAnimation::tr("Animation is an abstract class"));
+ }
+
qmlRegisterType<QDeclarativeBind>("Qt",4,7,"Binding");
- qmlRegisterType<QDeclarativeColorAnimation>("Qt",4,7,"ColorAnimation");
qmlRegisterType<QDeclarativeConnections>("Qt",4,7,"Connections");
- qmlRegisterType<QDeclarativeSmoothedAnimation>("Qt",4,7,"SmoothedAnimation");
- qmlRegisterType<QDeclarativeFontLoader>("Qt",4,7,"FontLoader");
- qmlRegisterType<QDeclarativeListElement>("Qt",4,7,"ListElement");
- qmlRegisterType<QDeclarativeNumberAnimation>("Qt",4,7,"NumberAnimation");
- qmlRegisterType<QDeclarativePackage>("Qt",4,7,"Package");
- qmlRegisterType<QDeclarativeParallelAnimation>("Qt",4,7,"ParallelAnimation");
- qmlRegisterType<QDeclarativeParentAnimation>("Qt",4,7,"ParentAnimation");
- qmlRegisterType<QDeclarativeParentChange>("Qt",4,7,"ParentChange");
- qmlRegisterType<QDeclarativePauseAnimation>("Qt",4,7,"PauseAnimation");
- qmlRegisterType<QDeclarativePropertyAction>("Qt",4,7,"PropertyAction");
- qmlRegisterType<QDeclarativePropertyAnimation>("Qt",4,7,"PropertyAnimation");
- qmlRegisterType<QDeclarativeRotationAnimation>("Qt",4,7,"RotationAnimation");
- qmlRegisterType<QDeclarativeScriptAction>("Qt",4,7,"ScriptAction");
- qmlRegisterType<QDeclarativeSequentialAnimation>("Qt",4,7,"SequentialAnimation");
- qmlRegisterType<QDeclarativeSpringAnimation>("Qt",4,7,"SpringAnimation");
- qmlRegisterType<QDeclarativeStateChangeScript>("Qt",4,7,"StateChangeScript");
+ qmlRegisterType<QDeclarativeTimer>("Qt",4,7,"Timer");
qmlRegisterType<QDeclarativeStateGroup>("Qt",4,7,"StateGroup");
qmlRegisterType<QDeclarativeState>("Qt",4,7,"State");
- qmlRegisterType<QDeclarativeSystemPalette>("Qt",4,7,"SystemPalette");
- qmlRegisterType<QDeclarativeTimer>("Qt",4,7,"Timer");
- qmlRegisterType<QDeclarativeTransition>("Qt",4,7,"Transition");
- qmlRegisterType<QDeclarativeVector3dAnimation>("Qt",4,7,"Vector3dAnimation");
-#ifndef QT_XMLPATTERNS_LIB
+ qmlRegisterType<QDeclarativeStateChangeScript>("Qt",4,7,"StateChangeScript");
+ qmlRegisterType<QDeclarativeListElement>("Qt",4,7,"ListElement");
+
+#ifdef QT_NO_XMLPATTERNS
qmlRegisterTypeNotAvailable("Qt",4,7,"XmlListModel",
qApp->translate("QDeclarativeXmlListModel","Qt was built without support for xmlpatterns"));
qmlRegisterTypeNotAvailable("Qt",4,7,"XmlRole",
@@ -164,11 +176,9 @@ void QDeclarativeUtilModule::defineModule()
qmlRegisterType<QDeclarativeXmlListModel>("Qt",4,7,"XmlListModel");
qmlRegisterType<QDeclarativeXmlListModelRole>("Qt",4,7,"XmlRole");
#endif
-
- qmlRegisterUncreatableType<QDeclarativeAbstractAnimation>("Qt",4,7,"Animation",QDeclarativeAbstractAnimation::tr("Animation is an abstract class"));
-
- qmlRegisterCustomType<QDeclarativeListModel>("Qt", 4,7, "ListModel", new QDeclarativeListModelParser);
- qmlRegisterCustomType<QDeclarativePropertyChanges>("Qt", 4, 7, "PropertyChanges", new QDeclarativePropertyChangesParser);
qmlRegisterCustomType<QDeclarativeConnections>("Qt", 4, 7, "Connections", new QDeclarativeConnectionsParser);
+ qmlRegisterCustomType<QDeclarativePropertyChanges>("Qt", 4, 7, "PropertyChanges", new QDeclarativePropertyChangesParser);
+ qmlRegisterCustomType<QDeclarativeListModel>("Qt", 4,7, "ListModel", new QDeclarativeListModelParser);
#endif
}
+
diff --git a/src/declarative/util/qdeclarativeutilmodule_p.h b/src/declarative/util/qdeclarativeutilmodule_p.h
index ceefd274..c0597e6c 100644
--- a/src/declarative/util/qdeclarativeutilmodule_p.h
+++ b/src/declarative/util/qdeclarativeutilmodule_p.h
@@ -54,6 +54,7 @@ class QDeclarativeUtilModule
{
public:
static void defineModule();
+ static void defineModuleCompat();
};
QT_END_NAMESPACE