diff options
-rw-r--r-- | src/imports/locationlabs/locationlabs.cpp | 10 | ||||
-rw-r--r-- | src/location/declarativemaps/qdeclarativegeomap.cpp | 2 | ||||
-rw-r--r-- | src/location/doc/src/plugins/mapboxgl.qdoc | 4 | ||||
-rw-r--r-- | src/location/maps/qgeoserviceprovider.cpp | 8 | ||||
-rw-r--r-- | src/location/maps/qgeoserviceprovider_p.h | 4 | ||||
-rw-r--r-- | src/plugins/geoservices/mapboxgl/qgeomappingmanagerenginemapboxgl.cpp | 5 | ||||
-rw-r--r-- | src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp | 11 | ||||
-rw-r--r-- | src/positioning/qgeopositioninfosource.cpp | 8 | ||||
-rw-r--r-- | src/positioning/qgeopositioninfosource_p.h | 6 |
9 files changed, 34 insertions, 24 deletions
diff --git a/src/imports/locationlabs/locationlabs.cpp b/src/imports/locationlabs/locationlabs.cpp index 09fba284..4c039967 100644 --- a/src/imports/locationlabs/locationlabs.cpp +++ b/src/imports/locationlabs/locationlabs.cpp @@ -52,8 +52,8 @@ QT_BEGIN_NAMESPACE static QObject *singleton_type_factory(QQmlEngine *engine, QJSEngine *jsEngine) { - Q_UNUSED(engine); - Q_UNUSED(jsEngine); + Q_UNUSED(engine) + Q_UNUSED(jsEngine) return new LocationLabsSingleton; } @@ -66,7 +66,7 @@ class QtLocationLabsDeclarativeModule: public QQmlExtensionPlugin FILE "plugin.json") public: - QtLocationLabsDeclarativeModule(QObject *parent = 0) : QQmlExtensionPlugin(parent) { } + QtLocationLabsDeclarativeModule(QObject *parent = nullptr) : QQmlExtensionPlugin(parent) { } virtual void registerTypes(const char *uri) { if (QLatin1String(uri) == QLatin1String("Qt.labs.location")) { @@ -82,9 +82,9 @@ public: qmlRegisterType<QMapCircleObject>(uri, major, minor, "MapCircleObject"); qmlRegisterType<QMapPolygonObject>(uri, major, minor, "MapPolygonObject"); qmlRegisterType<QMapPolylineObject>(uri, major, minor, "MapPolylineObject"); - qmlRegisterType<QDeclarativeNavigationBasicDirections>(); + qmlRegisterAnonymousType<QDeclarativeNavigationBasicDirections>(uri, major); qmlRegisterType<QDeclarativeNavigator>(uri, major, minor, "Navigator"); - qmlRegisterType<QAbstractNavigator>(); + qmlRegisterAnonymousType<QAbstractNavigator>(uri, major); qmlRegisterSingletonType<LocationLabsSingleton>(uri, major, minor, "QtLocationLabs", singleton_type_factory); } else { qDebug() << "Unsupported URI given to load location QML plugin: " << QLatin1String(uri); diff --git a/src/location/declarativemaps/qdeclarativegeomap.cpp b/src/location/declarativemaps/qdeclarativegeomap.cpp index 17baf811..e68961e5 100644 --- a/src/location/declarativemaps/qdeclarativegeomap.cpp +++ b/src/location/declarativemaps/qdeclarativegeomap.cpp @@ -1497,7 +1497,7 @@ QMargins QDeclarativeGeoMap::mapMargins() const */ QQmlListProperty<QDeclarativeGeoMapType> QDeclarativeGeoMap::supportedMapTypes() { - return QQmlListProperty<QDeclarativeGeoMapType>(this, m_supportedMapTypes); + return QQmlListProperty<QDeclarativeGeoMapType>(this, &m_supportedMapTypes); } /*! diff --git a/src/location/doc/src/plugins/mapboxgl.qdoc b/src/location/doc/src/plugins/mapboxgl.qdoc index e3ca1a82..3bfd8b97 100644 --- a/src/location/doc/src/plugins/mapboxgl.qdoc +++ b/src/location/doc/src/plugins/mapboxgl.qdoc @@ -88,6 +88,10 @@ The following table lists optional parameters that can be passed to the Mapbox p \l{https://www.mapbox.com/tos}{Terms of Services} and must not be used in production. This property has no effect on styles hosted outside the Mapbox servers. \row + \li mapboxgl.api_base_url + \li Set a custom API base URL. When not set, the URL defaults to \l{https://api.mapbox.com}. + This parameter is ignored if the the \b mapboxgl.china property is set. +\row \li mapboxgl.china \li Use Mapbox China API base URLs and styles. Please notice that Mapbox China requires a specific access token. Contact \l diff --git a/src/location/maps/qgeoserviceprovider.cpp b/src/location/maps/qgeoserviceprovider.cpp index ec341c44..4873da22 100644 --- a/src/location/maps/qgeoserviceprovider.cpp +++ b/src/location/maps/qgeoserviceprovider.cpp @@ -896,9 +896,9 @@ void QGeoServiceProviderPrivate::loadPlugin(const QVariantMap ¶meters) } } -QHash<QString, QJsonObject> QGeoServiceProviderPrivate::plugins(bool reload) +QMultiHash<QString, QJsonObject> QGeoServiceProviderPrivate::plugins(bool reload) { - static QHash<QString, QJsonObject> plugins; + static QMultiHash<QString, QJsonObject> plugins; static bool alreadyDiscovered = false; if (reload == true) @@ -911,14 +911,14 @@ QHash<QString, QJsonObject> QGeoServiceProviderPrivate::plugins(bool reload) return plugins; } -void QGeoServiceProviderPrivate::loadPluginMetadata(QHash<QString, QJsonObject> &list) +void QGeoServiceProviderPrivate::loadPluginMetadata(QMultiHash<QString, QJsonObject> &list) { QFactoryLoader *l = loader(); QList<QJsonObject> meta = l->metaData(); for (int i = 0; i < meta.size(); ++i) { QJsonObject obj = meta.at(i).value(QStringLiteral("MetaData")).toObject(); obj.insert(QStringLiteral("index"), i); - list.insertMulti(obj.value(QStringLiteral("Provider")).toString(), obj); + list.insert(obj.value(QStringLiteral("Provider")).toString(), obj); } } diff --git a/src/location/maps/qgeoserviceprovider_p.h b/src/location/maps/qgeoserviceprovider_p.h index c6b03ce5..22dcedd6 100644 --- a/src/location/maps/qgeoserviceprovider_p.h +++ b/src/location/maps/qgeoserviceprovider_p.h @@ -121,8 +121,8 @@ public: QLocale locale; bool localeSet; - static QHash<QString, QJsonObject> plugins(bool reload = false); - static void loadPluginMetadata(QHash<QString, QJsonObject> &list); + static QMultiHash<QString, QJsonObject> plugins(bool reload = false); + static void loadPluginMetadata(QMultiHash<QString, QJsonObject> &list); }; QT_END_NAMESPACE diff --git a/src/plugins/geoservices/mapboxgl/qgeomappingmanagerenginemapboxgl.cpp b/src/plugins/geoservices/mapboxgl/qgeomappingmanagerenginemapboxgl.cpp index 5cbde041..cde7871e 100644 --- a/src/plugins/geoservices/mapboxgl/qgeomappingmanagerenginemapboxgl.cpp +++ b/src/plugins/geoservices/mapboxgl/qgeomappingmanagerenginemapboxgl.cpp @@ -73,6 +73,11 @@ QGeoMappingManagerEngineMapboxGL::QGeoMappingManagerEngineMapboxGL(const QVarian m_useChinaEndpoint = parameters.value(QStringLiteral("mapboxgl.china")).toBool(); } + if (parameters.contains(QStringLiteral("mapboxgl.api_base_url"))) { + const QString apiBaseUrl = parameters.value(QStringLiteral("mapboxgl.api_base_url")).toString(); + m_settings.setApiBaseUrl(apiBaseUrl); + } + QVariantMap metadata; metadata["isHTTPS"] = true; diff --git a/src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp b/src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp index a9cc164f..28a405c3 100644 --- a/src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp +++ b/src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp @@ -115,6 +115,7 @@ enum class InitializationState { class QGeoPositionInfoSourceWinRTPrivate { public: ComPtr<IGeolocator> locator; + mutable ComPtr<IGeolocatorStatics> statics; QTimer periodicTimer; QTimer singleUpdateTimer; QGeoPositionInfo lastPosition; @@ -638,21 +639,21 @@ HRESULT QGeoPositionInfoSourceWinRT::onStatusChanged(IGeolocator *, IStatusChang bool QGeoPositionInfoSourceWinRT::requestAccess() const { + Q_D(const QGeoPositionInfoSourceWinRT); qCDebug(lcPositioningWinRT) << __FUNCTION__; GeolocationAccessStatus accessStatus; - static ComPtr<IGeolocatorStatics> statics; ComPtr<IAsyncOperation<GeolocationAccessStatus>> op; HRESULT hr; - hr = QEventDispatcherWinRT::runOnXamlThread([&op]() { + hr = QEventDispatcherWinRT::runOnXamlThread([&op, d]() { HRESULT hr; - if (!statics) { + if (!d->statics) { hr = RoGetActivationFactory(HString::MakeReference(RuntimeClass_Windows_Devices_Geolocation_Geolocator).Get(), - IID_PPV_ARGS(&statics)); + IID_PPV_ARGS(&d->statics)); RETURN_HR_IF_FAILED("Could not access Geolocation Statics."); } - hr = statics->RequestAccessAsync(&op); + hr = d->statics->RequestAccessAsync(&op); return hr; }); if (FAILED(hr)) { diff --git a/src/positioning/qgeopositioninfosource.cpp b/src/positioning/qgeopositioninfosource.cpp index 1f9abec1..56ee66d7 100644 --- a/src/positioning/qgeopositioninfosource.cpp +++ b/src/positioning/qgeopositioninfosource.cpp @@ -143,9 +143,9 @@ QVariant QGeoPositionInfoSourcePrivate::backendProperty(const QString &/*name*/) return QVariant(); } -QHash<QString, QJsonObject> QGeoPositionInfoSourcePrivate::plugins(bool reload) +QMultiHash<QString, QJsonObject> QGeoPositionInfoSourcePrivate::plugins(bool reload) { - static QHash<QString, QJsonObject> plugins; + static QMultiHash<QString, QJsonObject> plugins; static bool alreadyDiscovered = false; if (reload == true) @@ -179,7 +179,7 @@ QList<QJsonObject> QGeoPositionInfoSourcePrivate::pluginsSorted() return list; } -void QGeoPositionInfoSourcePrivate::loadPluginMetadata(QHash<QString, QJsonObject> &plugins) +void QGeoPositionInfoSourcePrivate::loadPluginMetadata(QMultiHash<QString, QJsonObject> &plugins) { QFactoryLoader *l = loader(); QList<QJsonObject> meta = l->metaData(); @@ -192,7 +192,7 @@ void QGeoPositionInfoSourcePrivate::loadPluginMetadata(QHash<QString, QJsonObjec continue; } obj.insert(QStringLiteral("index"), i); - plugins.insertMulti(obj.value(QStringLiteral("Provider")).toString(), obj); + plugins.insert(obj.value(QStringLiteral("Provider")).toString(), obj); } } diff --git a/src/positioning/qgeopositioninfosource_p.h b/src/positioning/qgeopositioninfosource_p.h index 2ae93055..e12ede4c 100644 --- a/src/positioning/qgeopositioninfosource_p.h +++ b/src/positioning/qgeopositioninfosource_p.h @@ -56,7 +56,7 @@ #include "qgeopositioninfosourcefactory.h" #include <QJsonObject> #include <QString> -#include <QHash> +#include <QMultiHash> #include <QList> QT_BEGIN_NAMESPACE @@ -79,8 +79,8 @@ public: virtual bool setBackendProperty(const QString &name, const QVariant &value); virtual QVariant backendProperty(const QString &name) const; - static QHash<QString, QJsonObject> plugins(bool reload = false); - static void loadPluginMetadata(QHash<QString, QJsonObject> &list); + static QMultiHash<QString, QJsonObject> plugins(bool reload = false); + static void loadPluginMetadata(QMultiHash<QString, QJsonObject> &list); static QList<QJsonObject> pluginsSorted(); }; |