From 112a6443068e65a6970f3a7582e746e6602c9a4f Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Thu, 5 Sep 2019 16:18:52 -0700 Subject: [PATCH] Hide waypoint indicators unless they are really needed --- src/FlightDisplay/FlightDisplayViewMap.qml | 2 +- src/FlightMap/MapItems/PlanMapItems.qml | 16 ++++++++-------- src/PlanView/MissionItemMapVisual.qml | 3 ++- src/PlanView/SimpleItemMapVisual.qml | 3 ++- src/QmlControls/QGCDynamicObjectManager.qml | 3 +++ 5 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/FlightDisplay/FlightDisplayViewMap.qml b/src/FlightDisplay/FlightDisplayViewMap.qml index 3109f27..c1c2a5d 100644 --- a/src/FlightDisplay/FlightDisplayViewMap.qml +++ b/src/FlightDisplay/FlightDisplayViewMap.qml @@ -233,7 +233,7 @@ FlightMap { map: flightMap largeMapView: mainIsMap masterController: masterController - isActiveVehicle: _vehicle.active + vehicle: _vehicle property var _vehicle: object diff --git a/src/FlightMap/MapItems/PlanMapItems.qml b/src/FlightMap/MapItems/PlanMapItems.qml index 770b40e..abb96f3 100644 --- a/src/FlightMap/MapItems/PlanMapItems.qml +++ b/src/FlightMap/MapItems/PlanMapItems.qml @@ -23,26 +23,26 @@ Item { property var map ///< Map control to show items on property bool largeMapView ///< true: map takes up entire view, false: map is in small window property var masterController ///< Reference to PlanMasterController for vehicle - property bool isActiveVehicle ///< true: vehicle associated with plan is active, false: in-active + property var vehicle ///< Vehicle associated with these items property var _map: map + property var _vehicle: vehicle property var _missionController: masterController.missionController property var _geoFenceController: masterController.geoFenceController property var _rallyPointController: masterController.rallyPointController property var _missionLineViewComponent + property bool _isActiveVehicle: vehicle.active + + property string fmode: vehicle.flightMode // Add the mission item visuals to the map Repeater { - model: largeMapView ? _missionController.visualItems : 0 + model: _isActiveVehicle && largeMapView ? _missionController.visualItems : 0 delegate: MissionItemMapVisual { map: _map - onClicked: { - if (isActiveVehicle) { - // Only active vehicle supports click to change current mission item - guidedActionsController.confirmAction(guidedActionsController.actionSetWaypoint, Math.max(object.sequenceNumber, 1)) - } - } + vehicle: _vehicle + onClicked: guidedActionsController.confirmAction(guidedActionsController.actionSetWaypoint, Math.max(object.sequenceNumber, 1)) } } diff --git a/src/PlanView/MissionItemMapVisual.qml b/src/PlanView/MissionItemMapVisual.qml index 01df7c2..2085dca 100644 --- a/src/PlanView/MissionItemMapVisual.qml +++ b/src/PlanView/MissionItemMapVisual.qml @@ -22,6 +22,7 @@ Item { id: _root property var map ///< Map control to place item in + property var vehicle ///< Vehicle associated with this item signal clicked(int sequenceNumber) @@ -33,7 +34,7 @@ Item { if (component.status === Component.Error) { console.log("Error loading Qml: ", object.mapVisualQML, component.errorString()) } - _visualItem = component.createObject(map, { "map": _root.map }) + _visualItem = component.createObject(map, { "map": _root.map, vehicle: _root.vehicle }) _visualItem.clicked.connect(_root.clicked) } } diff --git a/src/PlanView/SimpleItemMapVisual.qml b/src/PlanView/SimpleItemMapVisual.qml index 462d77f..7648a4c 100644 --- a/src/PlanView/SimpleItemMapVisual.qml +++ b/src/PlanView/SimpleItemMapVisual.qml @@ -23,6 +23,7 @@ Item { id: _root property var map ///< Map control to place item in + property var vehicle ///< Vehicle associated with this item property var _missionItem: object property var _itemVisual @@ -104,7 +105,7 @@ Item { MissionItemIndicator { coordinate: _missionItem.coordinate - visible: _missionItem.specifiesCoordinate + visible: _missionItem.specifiesCoordinate && (_missionItem.homePosition || map.planView || _missionItem.isCurrentItem || (vehicle.flightMode === vehicle.pauseFlightMode && vehicle.armed)) z: QGroundControl.zOrderMapItems missionItem: _missionItem sequenceNumber: _missionItem.sequenceNumber diff --git a/src/QmlControls/QGCDynamicObjectManager.qml b/src/QmlControls/QGCDynamicObjectManager.qml index 2a2a6d9..5eb47ff 100644 --- a/src/QmlControls/QGCDynamicObjectManager.qml +++ b/src/QmlControls/QGCDynamicObjectManager.qml @@ -13,6 +13,9 @@ Item { function createObject(sourceComponent, parentObject, parentObjectIsMap) { var obj = sourceComponent.createObject(parentObject) + if (obj.status === Component.Error) { + console.log(obj.errorString()) + } rgDynamicObjects.push(obj) if (arguments.length < 3) { parentObjectIsMap = false