diff options
author | Alex Blasche <alexander.blasche@digia.com> | 2013-10-11 16:43:21 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-10-14 13:18:16 +0200 |
commit | 997e06d80c095ac994391bfb5d69c5ec9a52a11f (patch) | |
tree | 19d8d15e4bdc23ba647562dbd64c92333c07ce37 /src/imports/positioning/positioning.cpp | |
parent | e200f05bc75d8f19df624bc3849d9c5bbf096873 (diff) | |
download | qtlocation-997e06d80c095ac994391bfb5d69c5ec9a52a11f.tar.gz |
Add proper version to QtPositioning and its QML API.
The QML API remains available under 5.0 though.
Change-Id: I037b82e5b12825db610e8458d6c82122ecde4f44
Reviewed-by: Erik Mattsson <erik.mattsson@appello.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
Diffstat (limited to 'src/imports/positioning/positioning.cpp')
-rw-r--r-- | src/imports/positioning/positioning.cpp | 34 |
1 files changed, 23 insertions, 11 deletions
diff --git a/src/imports/positioning/positioning.cpp b/src/imports/positioning/positioning.cpp index 031b06b2..0804a8ce 100644 --- a/src/imports/positioning/positioning.cpp +++ b/src/imports/positioning/positioning.cpp @@ -92,26 +92,38 @@ class QLocationDeclarativeModule: public QQmlExtensionPlugin public: virtual void registerTypes(const char *uri) { - if (QLatin1String(uri) == QLatin1String("QtPositioning")) { + if (QLatin1String(uri) == QStringLiteral("QtPositioning")) { // @uri QtPositioning 5.0 - qmlRegisterSingletonType<LocationSingleton>(uri, 5, 0, "QtPositioning", singleton_type_factory); - - QQml_addValueTypeProvider(getValueTypeProvider()); - qmlRegisterValueTypeEnums<GeoShapeValueType>(uri, 5, 0, "GeoShape"); - - qmlRegisterType<QDeclarativePosition>(uri, 5, 0, "Position"); - qmlRegisterType<QDeclarativePositionSource>(uri, 5, 0, "PositionSource"); - qmlRegisterType<QDeclarativeGeoAddress>(uri, 5, 0, "Address"); - - qmlRegisterType<QDeclarativeGeoLocation>(uri, 5, 0, "Location"); + int major = 5; + int minor = 0; qRegisterMetaType<QGeoCoordinate>("QGeoCoordinate"); qRegisterMetaType<QGeoAddress>("QGeoAddress"); qRegisterMetaType<QGeoRectangle>("QGeoRectangle"); qRegisterMetaType<QGeoCircle>("QGeoCircle"); qRegisterMetaType<QGeoLocation>("QGeoLocation"); + + QQml_addValueTypeProvider(getValueTypeProvider()); + + // Register the 5.0 types + // 5.0 is silent and not advertised + qmlRegisterSingletonType<LocationSingleton >(uri, major, minor, "QtPositioning", singleton_type_factory); + qmlRegisterValueTypeEnums<GeoShapeValueType >(uri, major, minor, "GeoShape"); + qmlRegisterType<QDeclarativePosition >(uri, major, minor, "Position"); + qmlRegisterType<QDeclarativePositionSource >(uri, major, minor, "PositionSource"); + qmlRegisterType<QDeclarativeGeoAddress >(uri, major, minor, "Address"); + qmlRegisterType<QDeclarativeGeoLocation >(uri, major, minor, "Location"); + + // Register the 5.2 types + minor = 2; + qmlRegisterSingletonType<LocationSingleton >(uri, major, minor, "QtPositioning", singleton_type_factory); + qmlRegisterValueTypeEnums<GeoShapeValueType >(uri, major, minor, "GeoShape"); + qmlRegisterType<QDeclarativePosition >(uri, major, minor, "Position"); + qmlRegisterType<QDeclarativePositionSource >(uri, major, minor, "PositionSource"); + qmlRegisterType<QDeclarativeGeoAddress >(uri, major, minor, "Address"); + qmlRegisterType<QDeclarativeGeoLocation >(uri, major, minor, "Location"); } else { qDebug() << "Unsupported URI given to load positioning QML plugin: " << QLatin1String(uri); } |