summaryrefslogtreecommitdiff
path: root/src/location/declarativemaps/qdeclarativegeoserviceprovider.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/location/declarativemaps/qdeclarativegeoserviceprovider.cpp')
-rw-r--r--src/location/declarativemaps/qdeclarativegeoserviceprovider.cpp20
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_);
+}
+
/*******************************************************************************
*******************************************************************************/