From 97ec41652f6eadb341eab8f7936cf7f8b5252677 Mon Sep 17 00:00:00 2001 From: Paolo Angelelli Date: Tue, 27 Aug 2019 13:37:39 +0200 Subject: Fix 5.14 positioning APIs This patch fixes a few inconsistencies in the newely added features. Change-Id: Icdf1c9208fd0d5ab1d6ec6d87fcc5be5072c3f58 Fixes: QTBUG-77865 Reviewed-by: Alex Blasche --- src/positioning/qgeopositioninfosource.cpp | 4 +-- src/positioning/qgeopositioninfosource.h | 4 +-- src/positioning/qgeopositioninfosource_p.h | 2 +- src/positioning/qgeopositioninfosourcefactory.cpp | 39 ++++++++++++++++++++++ src/positioning/qgeosatelliteinfosource.h | 2 +- .../qdeclarativepositionsource.cpp | 2 +- .../qdeclarativepositionsource_p.h | 2 +- tests/auto/positionplugin/plugin.cpp | 2 +- 8 files changed, 48 insertions(+), 9 deletions(-) diff --git a/src/positioning/qgeopositioninfosource.cpp b/src/positioning/qgeopositioninfosource.cpp index 69fcdef0..4690f8a3 100644 --- a/src/positioning/qgeopositioninfosource.cpp +++ b/src/positioning/qgeopositioninfosource.cpp @@ -133,7 +133,7 @@ void QGeoPositionInfoSourcePrivate::loadPlugin() factory = factoryV2; } -bool QGeoPositionInfoSourcePrivate::setBackendProperty(const QString &/*name*/, QVariant /*value*/) +bool QGeoPositionInfoSourcePrivate::setBackendProperty(const QString &/*name*/, const QVariant & /*value*/) { return false; } @@ -241,7 +241,7 @@ QString QGeoPositionInfoSource::sourceName() const \sa backendProperty \since Qt 5.14 */ -bool QGeoPositionInfoSource::setBackendProperty(const QString &name, QVariant value) +bool QGeoPositionInfoSource::setBackendProperty(const QString &name, const QVariant &value) { return d->setBackendProperty(name, value); } diff --git a/src/positioning/qgeopositioninfosource.h b/src/positioning/qgeopositioninfosource.h index eaf5e106..15465bdf 100644 --- a/src/positioning/qgeopositioninfosource.h +++ b/src/positioning/qgeopositioninfosource.h @@ -87,7 +87,7 @@ public: QString sourceName() const; - bool setBackendProperty(const QString &name, QVariant value); + bool setBackendProperty(const QString &name, const QVariant &value); QVariant backendProperty(const QString &name) const; static QGeoPositionInfoSource *createDefaultSource(QObject *parent); @@ -110,7 +110,7 @@ Q_SIGNALS: void supportedPositioningMethodsChanged(); protected: - QGeoPositionInfoSource(QGeoPositionInfoSourcePrivate &dd, QObject *parent); + explicit QGeoPositionInfoSource(QGeoPositionInfoSourcePrivate &dd, QObject *parent); private: Q_DISABLE_COPY(QGeoPositionInfoSource) diff --git a/src/positioning/qgeopositioninfosource_p.h b/src/positioning/qgeopositioninfosource_p.h index ccd92a4e..2ae93055 100644 --- a/src/positioning/qgeopositioninfosource_p.h +++ b/src/positioning/qgeopositioninfosource_p.h @@ -76,7 +76,7 @@ public: void loadMeta(); void loadPlugin(); - virtual bool setBackendProperty(const QString &name, QVariant value); + virtual bool setBackendProperty(const QString &name, const QVariant &value); virtual QVariant backendProperty(const QString &name) const; static QHash plugins(bool reload = false); diff --git a/src/positioning/qgeopositioninfosourcefactory.cpp b/src/positioning/qgeopositioninfosourcefactory.cpp index 76803566..afb0a1d3 100644 --- a/src/positioning/qgeopositioninfosourcefactory.cpp +++ b/src/positioning/qgeopositioninfosourcefactory.cpp @@ -84,6 +84,45 @@ QT_BEGIN_NAMESPACE QGeoPositionInfoSourceFactory::~QGeoPositionInfoSourceFactory() {} +/*! + \class QGeoPositionInfoSourceFactoryV2 + \inmodule QtPositioning + \since 5.14 + + \brief The QGeoPositionInfoSourceFactoryV2 class extends + QGeoPositionInfoSourceFactory, adding factory methods taking a parameters argument. + + This interface has the priority over the older one with plugins implementing it, + when creating a positioning source (position, satellite or area monitor) +*/ + +/*! + \fn QGeoPositionInfoSource *QGeoPositionInfoSourceFactoryV2::positionInfoSourceWithParameters(QObject *parent, const QVariantMap ¶meters) + + Returns a new QGeoPositionInfoSource associated with this plugin + with parent \a parent, and using \a parameters as configuration parameters. + Can also return 0, in which case the plugin loader will use the factory with + the next highest priority. + */ + +/*! + \fn QGeoSatelliteInfoSource *QGeoPositionInfoSourceFactoryV2::satelliteInfoSourceWithParameters(QObject *parent, const QVariantMap ¶meters) + + Returns a new QGeoSatelliteInfoSource associated with this plugin + with parent \a parent., and using \a parameters as configuration parameters. + Can also return 0, in which case the plugin loader will use the factory with + the next highest priority. + */ + +/*! + \fn QGeoAreaMonitorSource *QGeoPositionInfoSourceFactoryV2::areaMonitorWithParameters(QObject *parent, const QVariantMap ¶meters); + + Returns a new QGeoAreaMonitorSource associated with this plugin with parent + \a parent, and using \a parameters as configuration parameters. + Can also return 0, in which case the plugin loader will use the factory with + the next highest priority. + */ + QGeoPositionInfoSourceFactoryV2::~QGeoPositionInfoSourceFactoryV2() {} diff --git a/src/positioning/qgeosatelliteinfosource.h b/src/positioning/qgeosatelliteinfosource.h index 4f073864..e9c4fa19 100644 --- a/src/positioning/qgeosatelliteinfosource.h +++ b/src/positioning/qgeosatelliteinfosource.h @@ -91,7 +91,7 @@ Q_SIGNALS: void error(QGeoSatelliteInfoSource::Error); protected: - QGeoSatelliteInfoSource(QGeoSatelliteInfoSourcePrivate &dd, QObject *parent); + explicit QGeoSatelliteInfoSource(QGeoSatelliteInfoSourcePrivate &dd, QObject *parent); private: Q_DISABLE_COPY(QGeoSatelliteInfoSource) diff --git a/src/positioningquick/qdeclarativepositionsource.cpp b/src/positioningquick/qdeclarativepositionsource.cpp index cfbcc9da..6e042d9f 100644 --- a/src/positioningquick/qdeclarativepositionsource.cpp +++ b/src/positioningquick/qdeclarativepositionsource.cpp @@ -873,7 +873,7 @@ void QDeclarativePositionSource::componentComplete() \sa backendProperty, QGeoPositionInfoSource::setBackendProperty */ -bool QDeclarativePositionSource::setBackendProperty(const QString &name, QVariant value) +bool QDeclarativePositionSource::setBackendProperty(const QString &name, const QVariant &value) { if (m_positionSource) return m_positionSource->setBackendProperty(name, value); diff --git a/src/positioningquick/qdeclarativepositionsource_p.h b/src/positioningquick/qdeclarativepositionsource_p.h index dff0006c..da6f8305 100644 --- a/src/positioningquick/qdeclarativepositionsource_p.h +++ b/src/positioningquick/qdeclarativepositionsource_p.h @@ -131,7 +131,7 @@ public: void classBegin() { } void componentComplete(); - Q_INVOKABLE bool setBackendProperty(const QString &name, QVariant value); + Q_INVOKABLE bool setBackendProperty(const QString &name, const QVariant &value); Q_INVOKABLE QVariant backendProperty(const QString &name) const; public Q_SLOTS: diff --git a/tests/auto/positionplugin/plugin.cpp b/tests/auto/positionplugin/plugin.cpp index 9d5c7dd5..f28797b5 100644 --- a/tests/auto/positionplugin/plugin.cpp +++ b/tests/auto/positionplugin/plugin.cpp @@ -69,7 +69,7 @@ private slots: class DummySourcePrivate : public QGeoPositionInfoSourcePrivate { public: - bool setBackendProperty(const QString &name, QVariant value) override + bool setBackendProperty(const QString &name, const QVariant &value) override { if (name == QStringLiteral("altitude")) { m_altitude = value.toReal(); -- cgit v1.2.1