diff options
Diffstat (limited to 'src/location/declarativemaps/qdeclarativegeoserviceprovider.cpp')
-rw-r--r-- | src/location/declarativemaps/qdeclarativegeoserviceprovider.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/location/declarativemaps/qdeclarativegeoserviceprovider.cpp b/src/location/declarativemaps/qdeclarativegeoserviceprovider.cpp index 54f70c11..4b8b2d7c 100644 --- a/src/location/declarativemaps/qdeclarativegeoserviceprovider.cpp +++ b/src/location/declarativemaps/qdeclarativegeoserviceprovider.cpp @@ -36,6 +36,7 @@ #include "qdeclarativegeoserviceprovider_p.h" #include <QtQml/QQmlInfo> +#include <QtQml/QQmlEngine> QT_BEGIN_NAMESPACE @@ -399,6 +400,19 @@ QDeclarativeGeoServiceProviderRequirements *QDeclarativeGeoServiceProvider::requ return required_; } +void QDeclarativeGeoServiceProvider::setRequirements(QDeclarativeGeoServiceProviderRequirements *req) +{ + if (!name().isEmpty() || !req) + return; + + if (required_ && *required_ == *req) + return; + + delete required_; + required_ = req; + QQmlEngine::setObjectOwnership(req, QQmlEngine::CppOwnership); // To prevent the engine from making this object disappear +} + /*! \qmlproperty stringlist Plugin::preferred @@ -732,6 +746,12 @@ bool QDeclarativeGeoServiceProviderRequirements::matches(const QGeoServiceProvid return true; } +bool QDeclarativeGeoServiceProviderRequirements::operator == (const QDeclarativeGeoServiceProviderRequirements &rhs) const +{ + return (mapping_ == rhs.mapping_ && routing_ == rhs.routing_ + && geocoding_ == rhs.geocoding_ && places_ == rhs.places_); +} + /******************************************************************************* *******************************************************************************/ |