From 08bd883191b97feb14970daba2d99b18e40eab55 Mon Sep 17 00:00:00 2001
From: Don Gagne <don@thegagnes.com>
Date: Sat, 5 Mar 2016 16:48:34 -0800
Subject: [PATCH] Track flight map zoom level in global

---
 src/FlightDisplay/FlightDisplayViewMap.qml |  6 +++++-
 src/QmlControls/QGroundControlQmlGlobal.h  | 11 +++++++----
 2 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/src/FlightDisplay/FlightDisplayViewMap.qml b/src/FlightDisplay/FlightDisplayViewMap.qml
index 2499679261..d278e8b530 100644
--- a/src/FlightDisplay/FlightDisplayViewMap.qml
+++ b/src/FlightDisplay/FlightDisplayViewMap.qml
@@ -44,8 +44,12 @@ FlightMap {
     property bool   _activeVehicleCoordinateValid:  multiVehicleManager.activeVehicle ? multiVehicleManager.activeVehicle.coordinateValid : false
     property var    activeVehicleCoordinate:        multiVehicleManager.activeVehicle ? multiVehicleManager.activeVehicle.coordinate : QtPositioning.coordinate()
 
-    Component.onCompleted: QGroundControl.flightMapPosition = center
+    Component.onCompleted: {
+        QGroundControl.flightMapPosition = center
+        QGroundControl.flightMapZoom = zoomLevel
+    }
     onCenterChanged: QGroundControl.flightMapPosition = center
+    onZoomLevelChanged: QGroundControl.flightMapZoom = zoomLevel
 
     onActiveVehicleCoordinateChanged: {
         if (_followVehicle && _activeVehicleCoordinateValid && activeVehicleCoordinate.isValid) {
diff --git a/src/QmlControls/QGroundControlQmlGlobal.h b/src/QmlControls/QGroundControlQmlGlobal.h
index de35f49631..77234f5ca8 100644
--- a/src/QmlControls/QGroundControlQmlGlobal.h
+++ b/src/QmlControls/QGroundControlQmlGlobal.h
@@ -76,8 +76,9 @@ public:
 
     Q_PROPERTY(Fact*    offlineEditingFirmwareType READ offlineEditingFirmwareType CONSTANT)
 
-    Q_PROPERTY(QGeoCoordinate lastKnownHomePosition READ lastKnownHomePosition CONSTANT)
-    Q_PROPERTY(QGeoCoordinate flightMapPosition MEMBER _flightMapPosition NOTIFY flightMapPositionChanged)
+    Q_PROPERTY(QGeoCoordinate lastKnownHomePosition READ lastKnownHomePosition  CONSTANT)
+    Q_PROPERTY(QGeoCoordinate flightMapPosition     MEMBER _flightMapPosition   NOTIFY flightMapPositionChanged)
+    Q_PROPERTY(int            flightMapZoom         MEMBER _flightMapZoom       NOTIFY flightMapZoomChanged)
 
     /// @ return: true: experimental survey ip code is turned on
     Q_PROPERTY(bool experimentalSurvey READ experimentalSurvey WRITE setExperimentalSurvey NOTIFY experimentalSurveyChanged)
@@ -152,6 +153,7 @@ signals:
     void isVersionCheckEnabledChanged   (bool enabled);
     void mavlinkSystemIDChanged         (int id);
     void flightMapPositionChanged       (QGeoCoordinate flightMapPosition);
+    void flightMapZoomChanged           (int flightMapZoom);
     void experimentalSurveyChanged      (bool experimentalSurvey);
 
 private:
@@ -160,11 +162,12 @@ private:
     LinkManager*            _linkManager;
     MissionCommands*        _missionCommands;
     MultiVehicleManager*    _multiVehicleManager;
-    QGCMapEngineManager*     _mapEngineManager;
+    QGCMapEngineManager*    _mapEngineManager;
 
     bool _virtualTabletJoystick;
 
-    QGeoCoordinate _flightMapPosition;
+    QGeoCoordinate  _flightMapPosition;
+    int             _flightMapZoom;
 
     SettingsFact    _offlineEditingFirmwareTypeFact;
     FactMetaData    _offlineEditingFirmwareTypeMetaData;
-- 
GitLab