7import QGroundControl.Controls
8import QGroundControl.FlightMap
10/// Rally Point map visuals
13 z: QGroundControl.zOrderMapItems
16 property var myRallyPointController
17 property bool interactive: false ///< true: user can interact with items
18 property bool planView: false ///< true: visuals showing in plan view
20 property bool _interactive: interactive
21 property var _rallyPointsComponent
22 property bool _rallyPointsSupported: myRallyPointController.supported
23 property var _rallyPoints: myRallyPointController.points
25 Component.onCompleted: {
26 _rallyPointsComponent = rallyPointsComponent.createObject(map)
29 Component.onDestruction: {
30 _rallyPointsComponent.destroy()
36 MissionItemIndicatorDrag {
38 itemCoordinate: rallyPointObject.coordinate
39 visible: rallyPointObject === myRallyPointController.currentRallyPoint && _root.interactive
41 property var rallyPointObject
43 onItemCoordinateChanged: rallyPointObject.coordinate = itemCoordinate
48 id: rallyPointComponent
52 anchorPoint.x: sourceItem.anchorPointX
53 anchorPoint.y: sourceItem.anchorPointY
54 z: QGroundControl.zOrderMapItems
55 opacity: _root.opacity
57 property var rallyPointObject
59 sourceItem: MissionItemIndexLabel {
61 label: qsTr("R", "rally point map item label")
62 checked: _editingLayer == _layerRally ? rallyPointObject === myRallyPointController.currentRallyPoint : false
63 highlightSelected: true
64 onClicked: myRallyPointController.currentRallyPoint = rallyPointObject
69 // Add all rally points to the map
71 id: rallyPointsComponent
77 opacity: _root.opacity
78 property var _visuals: [ ]
80 Component.onCompleted: {
81 var rallyPointIndicator = rallyPointComponent.createObject(map)
82 rallyPointIndicator.coordinate = Qt.binding(function() { return object.coordinate })
83 rallyPointIndicator.rallyPointObject = Qt.binding(function() { return object })
84 map.addMapItem(rallyPointIndicator)
85 _visuals.push(rallyPointIndicator)
87 var dragArea = dragAreaComponent.createObject(map, { "itemIndicator": rallyPointIndicator, "rallyPointObject": object })
88 _visuals.push(dragArea)
91 Component.onDestruction: {
92 for (var i=0; i<_visuals.length; i++) {