summaryrefslogtreecommitdiff
path: root/src/location/maps/qgeomap.cpp
diff options
context:
space:
mode:
authorMichal Klocek <michal.klocek@theqtcompany.com>2015-04-28 14:00:39 +0200
committerMichal Klocek <michal.klocek@theqtcompany.com>2015-05-21 08:13:17 +0000
commit3c674e0ec3fcbb1acebd27580ef005d7f6726719 (patch)
tree970902e2baa57b31bd2851ec1b987e4f70eeb4b1 /src/location/maps/qgeomap.cpp
parent52b887a8004029cf18942b5d16b1dcf396feabc0 (diff)
downloadqtlocation-3c674e0ec3fcbb1acebd27580ef005d7f6726719.tar.gz
Fix missing guarded pointers for mapping engine
Since mapping engine is going to be destroyed on geoseriveprovider change/plugin unload use QPointer to track engine existence before making calls. This commit refactors a bit QGeoTileRequestManager to handle all the calls to the enigne. Check for null pointer before calling the engine. Move registerMap method to base class. Update QGeoTiledMapNokia class accordingly. Change-Id: I886e85e660b2c515e4a617e98e9cc0c3c13781b6 Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
Diffstat (limited to 'src/location/maps/qgeomap.cpp')
-rw-r--r--src/location/maps/qgeomap.cpp14
1 files changed, 5 insertions, 9 deletions
diff --git a/src/location/maps/qgeomap.cpp b/src/location/maps/qgeomap.cpp
index e633e46f..f6f8d5e2 100644
--- a/src/location/maps/qgeomap.cpp
+++ b/src/location/maps/qgeomap.cpp
@@ -127,18 +127,12 @@ QString QGeoMap::pluginString()
QGeoCameraCapabilities QGeoMap::cameraCapabilities()
{
Q_D(const QGeoMap);
- if (d->m_engine)
+ if (!d->m_engine.isNull())
return d->m_engine->cameraCapabilities();
else
return QGeoCameraCapabilities();
}
-QGeoMappingManagerEngine *QGeoMap::engine()
-{
- Q_D(const QGeoMap);
- return d->m_engine;
-}
-
int QGeoMap::mapVersion()
{
return -1;
@@ -158,7 +152,9 @@ QGeoMapPrivate::QGeoMapPrivate(QGeoMappingManagerEngine *engine)
m_controller(0),
m_activeMapType(QGeoMapType())
{
- m_pluginString = m_engine->managerName() + QLatin1Char('_') + QString::number(m_engine->managerVersion());
+ if (!m_engine.isNull()) {
+ m_pluginString = m_engine->managerName() + QLatin1Char('_') + QString::number(m_engine->managerVersion());
+ }
}
QGeoMapPrivate::~QGeoMapPrivate()
@@ -174,7 +170,7 @@ void QGeoMapPrivate::setCameraData(const QGeoCameraData &cameraData)
QGeoCameraData oldCameraData = m_cameraData;
m_cameraData = cameraData;
- if (m_engine) {
+ if (!m_engine.isNull()) {
QGeoCameraCapabilities capabilities = m_engine->cameraCapabilities();
if (m_cameraData.zoomLevel() < capabilities.minimumZoomLevel())
m_cameraData.setZoomLevel(capabilities.minimumZoomLevel());