diff --git a/qgroundcontrol.qrc b/qgroundcontrol.qrc index ebc90c3ddd2c34fa150d450820814d1c6a3d453b..319f391e999252fe6f2babc8bfd5586422cf79da 100644 --- a/qgroundcontrol.qrc +++ b/qgroundcontrol.qrc @@ -104,6 +104,7 @@ src/QmlControls/QGCCheckBox.qml src/QmlControls/QGCColoredImage.qml src/QmlControls/QGCComboBox.qml + src/QmlControls/QGCDynamicObjectManager.qml src/QmlControls/QGCFileDialog.qml src/QmlControls/QGCFlickable.qml src/QmlControls/QGCFlickableHorizontalIndicator.qml diff --git a/src/PlanView/FWLandingPatternMapVisual.qml b/src/PlanView/FWLandingPatternMapVisual.qml index 8f2a9d882eaf51c0129141eccde3aeb9a4680766..0c9e70e580bb2bd16d3e1c979a985def0a8844b1 100644 --- a/src/PlanView/FWLandingPatternMapVisual.qml +++ b/src/PlanView/FWLandingPatternMapVisual.qml @@ -30,7 +30,6 @@ Item { readonly property real _landingLengthMeters: 100 property var _missionItem: object - property var _itemVisuals: [ ] property var _mouseArea property var _dragAreas: [ ] property var _flightPath @@ -39,30 +38,16 @@ Item { property var _landingPointObject function hideItemVisuals() { - for (var i=0; i<_itemVisuals.length; i++) { - _itemVisuals[i].destroy() - } - _itemVisuals = [ ] + objMgr.destroyObjects() } function showItemVisuals() { - if (_itemVisuals.length === 0) { - var itemVisual = loiterPointComponent.createObject(map) - map.addMapItem(itemVisual) - _itemVisuals.push(itemVisual) - _loiterPointObject = itemVisual - - itemVisual = landingPointComponent.createObject(map) - map.addMapItem(itemVisual) - _itemVisuals.push(itemVisual) - _landingPointObject = itemVisual + if (objMgr.rgDynamicObjects.length === 0) { + _loiterPointObject = objMgr.createObject(loiterPointComponent, map, true /* parentObjectIsMap */) + _landingPointObject = objMgr.createObject(landingPointComponent, map, true /* parentObjectIsMap */) var rgComponents = [ flightPathComponent, loiterRadiusComponent, landingAreaComponent, landingAreaLabelComponent, glideSlopeComponent, glideSlopeLabelComponent ] - for (var i=0; i