summaryrefslogtreecommitdiff
path: root/src/location/maps
diff options
context:
space:
mode:
authorPaolo Angelelli <paolo.angelelli@qt.io>2018-12-03 11:22:43 +0100
committerPaolo Angelelli <paolo.angelelli@qt.io>2019-01-14 11:29:25 +0000
commit3ee61f7918cad8ff8ecc834b4fa85380c57afef6 (patch)
tree5e7a3a69094e067075fc9ef774e017a55c2ff332 /src/location/maps
parentd73f9d59e352b096af242ebe69c645def30f5672 (diff)
downloadqtlocation-3ee61f7918cad8ff8ecc834b4fa85380c57afef6.tar.gz
Expose manager-specific errors from QGeoServiceProvider
So that there's no risk to mix failures when creating multiple managers. Task-number: QTBUG-72180 Change-Id: I5c3b18ba17094e1480b2376e37b58d47029ca8f4 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Diffstat (limited to 'src/location/maps')
-rw-r--r--src/location/maps/qgeoserviceprovider.cpp135
-rw-r--r--src/location/maps/qgeoserviceprovider.h13
2 files changed, 141 insertions, 7 deletions
diff --git a/src/location/maps/qgeoserviceprovider.cpp b/src/location/maps/qgeoserviceprovider.cpp
index d25c379a..d2f98b4d 100644
--- a/src/location/maps/qgeoserviceprovider.cpp
+++ b/src/location/maps/qgeoserviceprovider.cpp
@@ -446,9 +446,12 @@ Manager *QGeoServiceProviderPrivate::manager(QGeoServiceProvider::Error *_error,
*/
QGeoCodingManager *QGeoServiceProvider::geocodingManager() const
{
- return d_ptr->manager<QGeoCodingManager, QGeoCodingManagerEngine>(
+ QGeoCodingManager *mgr = d_ptr->manager<QGeoCodingManager, QGeoCodingManagerEngine>(
&(d_ptr->geocodeError), &(d_ptr->geocodeErrorString),
&(d_ptr->geocodingManager));
+ if (!mgr)
+ qDebug() << d_ptr->error << ", " << d_ptr->errorString;
+ return mgr;
}
/*!
@@ -475,9 +478,12 @@ QGeoCodingManager *QGeoServiceProvider::geocodingManager() const
*/
QGeoMappingManager *QGeoServiceProvider::mappingManager() const
{
- return d_ptr->manager<QGeoMappingManager, QGeoMappingManagerEngine>(
+ QGeoMappingManager *mgr = d_ptr->manager<QGeoMappingManager, QGeoMappingManagerEngine>(
&(d_ptr->mappingError), &(d_ptr->mappingErrorString),
&(d_ptr->mappingManager));
+ if (!mgr)
+ qDebug() << d_ptr->error << ", " << d_ptr->errorString;
+ return mgr;
}
/*!
@@ -502,9 +508,12 @@ QGeoMappingManager *QGeoServiceProvider::mappingManager() const
*/
QGeoRoutingManager *QGeoServiceProvider::routingManager() const
{
- return d_ptr->manager<QGeoRoutingManager, QGeoRoutingManagerEngine>(
+ QGeoRoutingManager *mgr = d_ptr->manager<QGeoRoutingManager, QGeoRoutingManagerEngine>(
&(d_ptr->routingError), &(d_ptr->routingErrorString),
&(d_ptr->routingManager));
+ if (!mgr)
+ qDebug() << d_ptr->error << ", " << d_ptr->errorString;
+ return mgr;
}
/*!
@@ -525,9 +534,12 @@ QGeoRoutingManager *QGeoServiceProvider::routingManager() const
*/
QPlaceManager *QGeoServiceProvider::placeManager() const
{
- return d_ptr->manager<QPlaceManager, QPlaceManagerEngine>(
+ QPlaceManager *mgr = d_ptr->manager<QPlaceManager, QPlaceManagerEngine>(
&(d_ptr->placeError), &(d_ptr->placeErrorString),
&(d_ptr->placeManager));
+ if (!mgr)
+ qDebug() << d_ptr->error << ", " << d_ptr->errorString;
+ return mgr;
}
/*!
@@ -541,9 +553,8 @@ QNavigationManager *QGeoServiceProvider::navigationManager() const
QNavigationManager * mgr = d_ptr->manager<QNavigationManager, QNavigationManagerEngine>(
&(d_ptr->navigationError), &(d_ptr->navigationErrorString),
&(d_ptr->navigationManager));
- if (!mgr) {
- qDebug() << d_ptr->navigationError << d_ptr->navigationErrorString;
- }
+ if (!mgr)
+ qDebug() << d_ptr->error << ", " << d_ptr->errorString;
return mgr;
}
@@ -566,6 +577,116 @@ QString QGeoServiceProvider::errorString() const
}
/*!
+ Returns an error code describing the error which occurred during the
+ last attempt to create a mapping manager.
+
+ \since 5.13
+*/
+QGeoServiceProvider::Error QGeoServiceProvider::mappingError() const
+{
+ return d_ptr->mappingError;
+}
+
+/*!
+ Returns a string describing the error which occurred during the
+ last attempt to create a mapping manager.
+
+ \since 5.13
+*/
+QString QGeoServiceProvider::mappingErrorString() const
+{
+ return d_ptr->mappingErrorString;
+}
+
+/*!
+ Returns an error code describing the error which occurred during the
+ last attempt to create a geocoding manager.
+
+ \since 5.13
+*/
+QGeoServiceProvider::Error QGeoServiceProvider::geocodingError() const
+{
+ return d_ptr->geocodeError;
+}
+
+/*!
+ Returns a string describing the error which occurred during the
+ last attempt to create a geocoding manager.
+
+ \since 5.13
+*/
+QString QGeoServiceProvider::geocodingErrorString() const
+{
+ return d_ptr->geocodeErrorString;
+}
+
+/*!
+ Returns an error code describing the error which occurred during the
+ last attempt to create a routing manager.
+
+ \since 5.13
+*/
+QGeoServiceProvider::Error QGeoServiceProvider::routingError() const
+{
+ return d_ptr->routingError;
+}
+
+/*!
+ Returns a string describing the error which occurred during the
+ last attempt to create a routing manager.
+
+ \since 5.13
+*/
+QString QGeoServiceProvider::routingErrorString() const
+{
+ return d_ptr->routingErrorString;
+}
+
+/*!
+ Returns an error code describing the error which occurred during the
+ last attempt to create a places manager.
+
+ \since 5.13
+*/
+QGeoServiceProvider::Error QGeoServiceProvider::placesError() const
+{
+ return d_ptr->placeError;
+}
+
+/*!
+ Returns a string describing the error which occurred during the
+ last attempt to create a places manager.
+
+ \since 5.13
+*/
+QString QGeoServiceProvider::placesErrorString() const
+{
+ return d_ptr->placeErrorString;
+}
+
+/*!
+ Returns an error code describing the error which occurred during the
+ last attempt to create a navigation manager.
+
+ \since 5.13
+*/
+QGeoServiceProvider::Error QGeoServiceProvider::navigationError() const
+{
+ return d_ptr->navigationError;
+}
+
+/*!
+ Returns a string describing the error which occurred during the
+ last attempt to create a navigation manager.
+
+ \since 5.13
+*/
+QString QGeoServiceProvider::navigationErrorString() const
+{
+ return d_ptr->navigationErrorString;
+}
+
+/*!
Sets whether experimental plugins are considered when locating the
correct plugin library for this service provider to \a allow.
diff --git a/src/location/maps/qgeoserviceprovider.h b/src/location/maps/qgeoserviceprovider.h
index b2e0be05..fe4e5b6a 100644
--- a/src/location/maps/qgeoserviceprovider.h
+++ b/src/location/maps/qgeoserviceprovider.h
@@ -160,6 +160,19 @@ public:
Error error() const;
QString errorString() const;
+ Error loaderError() const;
+ QString loaderErrorString() const;
+
+ Error mappingError() const;
+ QString mappingErrorString() const;
+ Error geocodingError() const;
+ QString geocodingErrorString() const;
+ Error routingError() const;
+ QString routingErrorString() const;
+ Error placesError() const;
+ QString placesErrorString() const;
+ Error navigationError() const;
+ QString navigationErrorString() const;
void setParameters(const QVariantMap &parameters);
void setLocale(const QLocale &locale);