summaryrefslogtreecommitdiff
path: root/src/location/maps/qgeomap.cpp
diff options
context:
space:
mode:
authorMichal Klocek <michal.klocek@theqtcompany.com>2016-03-01 16:24:40 +0100
committerMichal Klocek <michal.klocek@theqtcompany.com>2016-03-17 06:56:11 +0000
commitde165175549642c7fefa901d41ee96ef0702879c (patch)
treec89145289e0a7147870bef06bfb8755440837d10 /src/location/maps/qgeomap.cpp
parent3d8da84e368f87386f14287b10fb6d08e3ce2b48 (diff)
downloadqtlocation-de165175549642c7fefa901d41ee96ef0702879c.tar.gz
Remove QGeoMapController from QGeoMap
Refactor code to use QGeoCameraData directly. All functionality related to zoom, center boundary checks are now handled in QDeclaratvieGeoMap class. This makes handling of center and zoomLevel properties much simpler and less error prone, since camera data can not be modified along the call stack. As result we avoid forwarding change signals back and forth: * qgeodeclarativegeomap::setCenter -> qgeomapcontroller::setCenter * qgeomapcontroller::setCenter -> qgeomap::setCameraData * qgeomap::setCameraData -> qgeomacontroller::cameraDataChanged * qgeomapcontroller::cameraDataChanged -> emit qdecalartivegeomap::centerChanged Call always setCenter and setZoomLevel on qdeclarativegeomap instance instead. Introduce initialize() method to handle cases where map plugin is loaded and scenegraph geometery is not yet set. This is required to correctly handle new boundary checks to limit grey areas. Change-Id: I6066cefd4a648dc76333dc241d1f261451a32e9c Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
Diffstat (limited to 'src/location/maps/qgeomap.cpp')
-rw-r--r--src/location/maps/qgeomap.cpp42
1 files changed, 1 insertions, 41 deletions
diff --git a/src/location/maps/qgeomap.cpp b/src/location/maps/qgeomap.cpp
index 4cc2bbfe..7817553c 100644
--- a/src/location/maps/qgeomap.cpp
+++ b/src/location/maps/qgeomap.cpp
@@ -37,8 +37,8 @@
#include "qgeomap_p.h"
#include "qgeomap_p_p.h"
#include "qgeocameracapabilities_p.h"
-#include "qgeomapcontroller_p.h"
#include "qgeomappingmanagerengine_p.h"
+#include <QDebug>
QT_BEGIN_NAMESPACE
@@ -51,14 +51,6 @@ QGeoMap::~QGeoMap()
{
}
-QGeoMapController *QGeoMap::mapController()
-{
- Q_D(QGeoMap);
- if (!d->m_controller)
- d->m_controller = new QGeoMapController(this);
- return d->m_controller;
-}
-
void QGeoMap::resize(int width, int height)
{
Q_D(QGeoMap);
@@ -119,11 +111,6 @@ const QGeoMapType QGeoMap::activeMapType() const
return d->m_activeMapType;
}
-double QGeoMap::minimumZoom() const
-{
- Q_D(const QGeoMap);
- return d->m_minimumZoom;
-}
QGeoCameraCapabilities QGeoMap::cameraCapabilities() const
{
@@ -149,9 +136,7 @@ QGeoMapPrivate::QGeoMapPrivate(QGeoMappingManagerEngine *engine)
m_width(0),
m_height(0),
m_aspectRatio(0.0),
- m_minimumZoom(0.0),
m_engine(engine),
- m_controller(0),
m_activeMapType(QGeoMapType())
{
}
@@ -169,31 +154,6 @@ void QGeoMapPrivate::setCameraData(const QGeoCameraData &cameraData)
QGeoCameraData oldCameraData = m_cameraData;
m_cameraData = cameraData;
- if (!m_engine.isNull()) {
- QGeoCameraCapabilities capabilities = m_engine->cameraCapabilities();
- if (m_cameraData.zoomLevel() < capabilities.minimumZoomLevel())
- m_cameraData.setZoomLevel(capabilities.minimumZoomLevel());
-
- if (m_cameraData.zoomLevel() > capabilities.maximumZoomLevel())
- m_cameraData.setZoomLevel(capabilities.maximumZoomLevel());
-
- if (!capabilities.supportsBearing())
- m_cameraData.setBearing(0.0);
-
- if (capabilities.supportsTilting()) {
- if (m_cameraData.tilt() < capabilities.minimumTilt())
- m_cameraData.setTilt(capabilities.minimumTilt());
-
- if (m_cameraData.tilt() > capabilities.maximumTilt())
- m_cameraData.setTilt(capabilities.maximumTilt());
- } else {
- m_cameraData.setTilt(0.0);
- }
-
- if (!capabilities.supportsRolling())
- m_cameraData.setRoll(0.0);
- }
-
// Do not call this expensive function if the width is 0, since it will get called
// anyway when it is resized to a width > 0.
// this is mainly an optimization to the initialization of the geomap, which would otherwise