summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/imports/locationlabs/locationlabs.cpp10
-rw-r--r--src/location/declarativemaps/qdeclarativegeomap.cpp2
-rw-r--r--src/location/doc/src/plugins/mapboxgl.qdoc4
-rw-r--r--src/location/maps/qgeoserviceprovider.cpp8
-rw-r--r--src/location/maps/qgeoserviceprovider_p.h4
-rw-r--r--src/plugins/geoservices/mapboxgl/qgeomappingmanagerenginemapboxgl.cpp5
-rw-r--r--src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp11
-rw-r--r--src/positioning/qgeopositioninfosource.cpp8
-rw-r--r--src/positioning/qgeopositioninfosource_p.h6
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 &parameters)
}
}
-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();
};