5import QGroundControl.Controls
6import QGroundControl.PlanView
8/// Marker for displaying a mission item on the map
12 property var missionItem
13 property int sequenceNumber
14 property MissionItemIndicatorGroup indicatorGroup
15 property bool indicatorVisible: true
16 property bool interactive: true
18 readonly property bool _isCurrentItem: missionItem ? missionItem.isCurrentItem || missionItem.hasCurrentChildItem : false
19 readonly property bool _usesAbbreviation: missionItem ? missionItem.abbreviation !== "" : false
20 readonly property var _group: indicatorGroup ? indicatorGroup.groupForItem(missionItem) : null
21 readonly property bool _isGrouped: _group ? _group.items.length > 1 : false
22 readonly property bool _isGroupRepresentative: !_group || _group.representative === missionItem
28 const topLeft = _label.mapToItem(globals.parent, Qt.point(0, 0))
29 const bottomRight = _label.mapToItem(globals.parent, Qt.point(_label.width, _label.height))
30 const clickRect = Qt.rect(topLeft.x, topLeft.y,
31 bottomRight.x - topLeft.x, bottomRight.y - topLeft.y)
32 indicatorGroup.showGroup(missionItem, clickRect)
38 anchorPoint.x: sourceItem.anchorPointX
39 anchorPoint.y: sourceItem.anchorPointY
41 z: QGroundControl.zOrderMapItems + (_isCurrentItem ? 0.5 : 0) // Show current item above other indicators, but below controls
42 visible: indicatorVisible && _isGroupRepresentative
45 MissionItemIndexLabel {
47 checked: _item._isCurrentItem
48 label: _item.missionItem.abbreviation
49 index: _item._usesAbbreviation ? -1 : _item.missionItem.sequenceNumber
50 indicatorSubText: _item._isGrouped ? "…" : ""
51 small: !_item._isGrouped && !_item._isCurrentItem
52 medium: _item._isGrouped && !_item._isCurrentItem
53 gimbalYaw: missionItem.missionGimbalYaw
54 vehicleYaw: missionItem.missionVehicleYaw
55 showGimbalYaw: !_item._isGrouped && !isNaN(_item.missionItem.missionGimbalYaw)
56 highlightSelected: true
57 enabled: _item.interactive
58 onClicked: _item.activate()
59 opacity: _item.opacity