summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Angelelli <paolo.angelelli@qt.io>2018-02-14 10:21:12 +0100
committerPaolo Angelelli <paolo.angelelli@qt.io>2018-02-20 12:35:46 +0000
commit1e6a5349def9c6e3e929fc57949fc97e267af37d (patch)
treec0f695c5218a401bf2bf4c92b425512ca1bb8f6f
parent9d26876fda04981af8e0762eba85a4f1fbbe9402 (diff)
downloadqtlocation-1e6a5349def9c6e3e929fc57949fc97e267af37d.tar.gz
Fix regression: gesture area not honoring maximum center latitude
Introduced in 69a42c4a5c37a5a74c4b285c64328bc88ed8e059 Change-Id: I3cace297e0494bdb4da5e6d4d1a634877c66f916 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
-rw-r--r--src/location/maps/qgeomap.cpp10
-rw-r--r--src/location/maps/qgeomap_p_p.h2
2 files changed, 11 insertions, 1 deletions
diff --git a/src/location/maps/qgeomap.cpp b/src/location/maps/qgeomap.cpp
index af40b33b..58657143 100644
--- a/src/location/maps/qgeomap.cpp
+++ b/src/location/maps/qgeomap.cpp
@@ -122,7 +122,9 @@ bool QGeoMap::setBearing(qreal bearing, const QGeoCoordinate &coordinate)
bool QGeoMap::anchorCoordinateToPoint(const QGeoCoordinate &coordinate, const QPointF &anchorPoint)
{
+ Q_D(QGeoMap);
QGeoCoordinate newCenter = geoProjection().anchorCoordinateToPoint(coordinate, anchorPoint);
+ newCenter.setLatitude(qBound(-d->m_maximumViewportLatitude, newCenter.latitude(), d->m_maximumViewportLatitude));
QGeoCameraData data = cameraData();
if (data.center() != newCenter) {
data.setCenter(newCenter);
@@ -175,7 +177,7 @@ double QGeoMap::minimumZoom() const
double QGeoMap::maximumCenterLatitudeAtZoom(const QGeoCameraData &cameraData) const
{
Q_D(const QGeoMap);
- return d->m_geoProjection->maximumCenterLatitudeAtZoom(cameraData);
+ return d->maximumCenterLatitudeAtZoom(cameraData);
}
double QGeoMap::mapWidth() const
@@ -414,4 +416,10 @@ bool QGeoMapPrivate::copyrightVisible() const
return m_copyrightVisible;
}
+double QGeoMapPrivate::maximumCenterLatitudeAtZoom(const QGeoCameraData &cameraData) const
+{
+ m_maximumViewportLatitude = m_geoProjection->maximumCenterLatitudeAtZoom(cameraData);
+ return m_maximumViewportLatitude;
+}
+
QT_END_NAMESPACE
diff --git a/src/location/maps/qgeomap_p_p.h b/src/location/maps/qgeomap_p_p.h
index ff7ca318..18c72202 100644
--- a/src/location/maps/qgeomap_p_p.h
+++ b/src/location/maps/qgeomap_p_p.h
@@ -102,6 +102,7 @@ protected:
virtual void setCopyrightVisible(bool visible);
virtual bool copyrightVisible() const;
+ virtual double maximumCenterLatitudeAtZoom(const QGeoCameraData &cameraData) const;
protected:
QSize m_viewportSize;
@@ -113,6 +114,7 @@ protected:
QList<QDeclarativeGeoMapItemBase *> m_mapItems;
QGeoCameraCapabilities m_cameraCapabilities;
bool m_copyrightVisible = true;
+ mutable double m_maximumViewportLatitude = 0;
};
QT_END_NAMESPACE