aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml
diff options
context:
space:
mode:
authorChris Adams <christopher.adams@nokia.com>2012-05-23 18:05:10 +1000
committerQt by Nokia <qt-info@nokia.com>2012-06-21 09:58:56 +0200
commit03342a435a88656d64d1445991a4421d244fcb45 (patch)
treec70121da638aed1d8ef1240cae8acf5fddf35dff /src/qml/qml
parentb89c6459d760e68c629c0d318d2afd494a2a415a (diff)
Put basic language types into QtQml import
This import is automatically registered by the engine. It provides basic language types (Component and QtObject). Note that the QtQuick import still has these types registered into it, so this commit doesn't break existing code. Change-Id: I8ff190f057fc92969020cf8e896da1649ca3069b Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
Diffstat (limited to 'src/qml/qml')
-rw-r--r--src/qml/qml/qqmlengine.cpp29
-rw-r--r--src/qml/qml/qqmlengine_p.h3
-rw-r--r--src/qml/qml/qqmlvaluetype.cpp7
-rw-r--r--src/qml/qml/qqmlvaluetype_p.h3
4 files changed, 25 insertions, 17 deletions
diff --git a/src/qml/qml/qqmlengine.cpp b/src/qml/qml/qqmlengine.cpp
index ca1ac84046..3017c7336c 100644
--- a/src/qml/qml/qqmlengine.cpp
+++ b/src/qml/qml/qqmlengine.cpp
@@ -104,7 +104,8 @@ QT_BEGIN_NAMESPACE
void qmlRegisterBaseTypes(const char *uri, int versionMajor, int versionMinor)
{
QQmlEnginePrivate::registerBaseTypes(uri, versionMajor, versionMinor);
- QQmlValueTypeFactory::registerBaseTypes(uri, versionMajor, versionMinor);
+ QQmlEnginePrivate::registerQtQuick2Types(uri, versionMajor, versionMinor);
+ QQmlValueTypeFactory::registerValueTypes(uri, versionMajor, versionMinor);
}
/*!
@@ -165,19 +166,30 @@ void qmlRegisterBaseTypes(const char *uri, int versionMajor, int versionMinor)
bool QQmlEnginePrivate::qml_debugging_enabled = false;
+// these types are part of the QML language
void QQmlEnginePrivate::registerBaseTypes(const char *uri, int versionMajor, int versionMinor)
{
qmlRegisterType<QQmlComponent>(uri,versionMajor,versionMinor,"Component");
qmlRegisterType<QObject>(uri,versionMajor,versionMinor,"QtObject");
- qmlRegisterType<QQuickListElement>(uri, versionMajor, versionMinor,"ListElement");
- qmlRegisterCustomType<QQuickListModel>(uri, versionMajor, versionMinor,"ListModel", new QQuickListModelParser);
- qmlRegisterType<QQuickWorkerScript>(uri,versionMajor,versionMinor,"WorkerScript");
}
-void QQmlEnginePrivate::defineModule()
+
+// These QtQuick types' implementation resides in the QtQml module
+void QQmlEnginePrivate::registerQtQuick2Types(const char *uri, int versionMajor, int versionMinor)
{
- registerBaseTypes("QtQuick", 2, 0);
- qmlRegisterUncreatableType<QQmlLocale>("QtQuick",2,0,"Locale",QQmlEngine::tr("Locale cannot be instantiated. Use Qt.locale()"));
+ qmlRegisterType<QQuickListElement>(uri, versionMajor, versionMinor, "ListElement");
+ qmlRegisterCustomType<QQuickListModel>(uri, versionMajor, versionMinor, "ListModel", new QQuickListModelParser);
+ qmlRegisterType<QQuickWorkerScript>(uri, versionMajor, versionMinor, "WorkerScript");
+}
+
+void QQmlEnginePrivate::defineQtQuick2Module()
+{
+ // register the base types into the QtQuick namespace
+ registerBaseTypes("QtQuick",2,0);
+
+ // register the QtQuick2 types which are implemented in the QtQml module.
+ registerQtQuick2Types("QtQuick",2,0);
+ qmlRegisterUncreatableType<QQmlLocale>("QtQuick", 2, 0, "Locale", QQmlEngine::tr("Locale cannot be instantiated. Use Qt.locale()"));
}
@@ -602,7 +614,8 @@ void QQmlEnginePrivate::init()
static bool firstTime = true;
if (firstTime) {
- qmlRegisterType<QQmlComponent>("QML", 1, 0, "Component");
+ qmlRegisterType<QQmlComponent>("QML", 1, 0, "Component"); // required for the Compiler.
+ registerBaseTypes("QtQml", 2, 0); // import which provides language building blocks.
QQmlData::init();
firstTime = false;
diff --git a/src/qml/qml/qqmlengine_p.h b/src/qml/qml/qqmlengine_p.h
index f74ded8159..b90d597be6 100644
--- a/src/qml/qml/qqmlengine_p.h
+++ b/src/qml/qml/qqmlengine_p.h
@@ -267,7 +267,8 @@ public:
inline static QQmlEngine *get(QQmlEnginePrivate *p);
static void registerBaseTypes(const char *uri, int versionMajor, int versionMinor);
- static void defineModule();
+ static void registerQtQuick2Types(const char *uri, int versionMajor, int versionMinor);
+ static void defineQtQuick2Module();
static bool qml_debugging_enabled;
diff --git a/src/qml/qml/qqmlvaluetype.cpp b/src/qml/qml/qqmlvaluetype.cpp
index b96c2f65a4..c0759a31b4 100644
--- a/src/qml/qml/qqmlvaluetype.cpp
+++ b/src/qml/qml/qqmlvaluetype.cpp
@@ -72,16 +72,11 @@ bool QQmlValueTypeFactory::isValueType(int idx)
return false;
}
-void QQmlValueTypeFactory::registerBaseTypes(const char *uri, int versionMajor, int versionMinor)
+void QQmlValueTypeFactory::registerValueTypes(const char *uri, int versionMajor, int versionMinor)
{
qmlRegisterValueTypeEnums<QQmlEasingValueType>(uri, versionMajor, versionMinor, "Easing");
}
-void QQmlValueTypeFactory::registerValueTypes()
-{
- registerBaseTypes("QtQuick", 2, 0);
-}
-
QQmlValueType *QQmlValueTypeFactory::valueType(int t)
{
QQmlValueType *rv = 0;
diff --git a/src/qml/qml/qqmlvaluetype_p.h b/src/qml/qml/qqmlvaluetype_p.h
index 776847af6f..f704da2c8e 100644
--- a/src/qml/qml/qqmlvaluetype_p.h
+++ b/src/qml/qml/qqmlvaluetype_p.h
@@ -145,8 +145,7 @@ public:
static bool isValueType(int);
static QQmlValueType *valueType(int);
- static void registerBaseTypes(const char *uri, int versionMajor, int versionMinor);
- static void registerValueTypes();
+ static void registerValueTypes(const char *uri, int versionMajor, int versionMinor);
QQmlValueType *operator[](int idx) const {
if (idx >= (int)QVariant::UserType)