From c78af3434956645b68dd13ab6b8a945239c5782c Mon Sep 17 00:00:00 2001
From: Paolo Angelelli <paolo.angelelli@theqtcompany.com>
Date: Tue, 16 Aug 2016 16:17:44 +0200
Subject: [PATCH] Fix for wrong map center at startup in mapviewer example

This patches fixes an incorrect behavior (that is also a regression)
introduced as a side effect of the no gray bands patch in the map
viewer example

Task-number: QTBUG-55085
Change-Id: I2078ba72e1d1588357bb2002d0c8e38b2f59253c
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
---
 examples/location/mapviewer/map/MapComponent.qml | 3 ++-
 src/imports/location/qdeclarativegeomap.cpp      | 5 +++--
 src/imports/location/qquickgeomapgesturearea_p.h | 2 +-
 3 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/examples/location/mapviewer/map/MapComponent.qml b/examples/location/mapviewer/map/MapComponent.qml
index d2d526d1f..008a4a002 100644
--- a/examples/location/mapviewer/map/MapComponent.qml
+++ b/examples/location/mapviewer/map/MapComponent.qml
@@ -377,7 +377,8 @@ Map {
         orientation : Qt.Vertical
         value: map.zoomLevel
         onValueChanged: {
-            map.zoomLevel = value
+            if (value >= 0)
+                map.zoomLevel = value
         }
     }
 
diff --git a/src/imports/location/qdeclarativegeomap.cpp b/src/imports/location/qdeclarativegeomap.cpp
index 9b5c658f3..fd98b2ca2 100644
--- a/src/imports/location/qdeclarativegeomap.cpp
+++ b/src/imports/location/qdeclarativegeomap.cpp
@@ -548,13 +548,14 @@ void QDeclarativeGeoMap::mappingManagerInitialized()
     //The zoom level limits are only restricted by the plugins values, if the user has set a more
     //strict zoom level limit before initialization nothing is done here.
     //minimum zoom level might be changed to limit gray bundaries
-    if (m_mappingManager->cameraCapabilities().minimumZoomLevel() > m_gestureArea->minimumZoomLevel())
-        setMinimumZoomLevel(m_mappingManager->cameraCapabilities().minimumZoomLevel());
 
     if (m_gestureArea->maximumZoomLevel() < 0
             || m_mappingManager->cameraCapabilities().maximumZoomLevel() < m_gestureArea->maximumZoomLevel())
         setMaximumZoomLevel(m_mappingManager->cameraCapabilities().maximumZoomLevel());
 
+    if (m_mappingManager->cameraCapabilities().minimumZoomLevel() > m_gestureArea->minimumZoomLevel())
+        setMinimumZoomLevel(m_mappingManager->cameraCapabilities().minimumZoomLevel());
+
 
     // Map tiles are built in this call. m_map->minimumZoom() becomes operational
     // after this has been called at least once, after creation.
diff --git a/src/imports/location/qquickgeomapgesturearea_p.h b/src/imports/location/qquickgeomapgesturearea_p.h
index cfd8738e5..51c5cc1ed 100644
--- a/src/imports/location/qquickgeomapgesturearea_p.h
+++ b/src/imports/location/qquickgeomapgesturearea_p.h
@@ -242,7 +242,7 @@ private:
         bool m_enabled;
         struct Zoom
         {
-            Zoom() : m_minimum(-1.0), m_maximum(-1.0), m_start(0.0), m_previous(0.0),
+            Zoom() : m_minimum(-1.0), m_maximum(20.0), m_start(0.0), m_previous(0.0),
                      maximumChange(4.0) {}
             qreal m_minimum;
             qreal m_maximum;
-- 
GitLab