22 changed files with 101 additions and 156 deletions
@ -1,132 +0,0 @@
@@ -1,132 +0,0 @@
|
||||
/**************************************************************************** |
||||
* |
||||
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org> |
||||
* |
||||
* QGroundControl is licensed according to the terms in the file |
||||
* COPYING.md in the root of the source code directory. |
||||
* |
||||
****************************************************************************/ |
||||
|
||||
import QtQuick 2.3 |
||||
import QtQuick.Controls 1.2 |
||||
import QtLocation 5.3 |
||||
import QtPositioning 5.3 |
||||
|
||||
import QGroundControl 1.0 |
||||
import QGroundControl.ScreenTools 1.0 |
||||
import QGroundControl.Palette 1.0 |
||||
import QGroundControl.Controls 1.0 |
||||
import QGroundControl.FlightMap 1.0 |
||||
|
||||
/// Mission Settings map visuals |
||||
Item { |
||||
id: _root |
||||
|
||||
property var map ///< Map control to place item in |
||||
|
||||
signal clicked(int sequenceNumber) |
||||
|
||||
property var _missionItem: object |
||||
property var _itemVisual |
||||
property var _dragArea |
||||
property bool _itemVisualShowing: false |
||||
property bool _dragAreaShowing: false |
||||
|
||||
function hideItemVisuals() { |
||||
if (_itemVisualShowing) { |
||||
_itemVisual.destroy() |
||||
_itemVisualShowing = false |
||||
} |
||||
} |
||||
|
||||
function showItemVisuals() { |
||||
if (!_itemVisualShowing) { |
||||
_itemVisual = indicatorComponent.createObject(map) |
||||
map.addMapItem(_itemVisual) |
||||
_itemVisualShowing = true |
||||
} |
||||
} |
||||
|
||||
function hideDragArea() { |
||||
if (_dragAreaShowing) { |
||||
_dragArea.destroy() |
||||
_dragAreaShowing = false |
||||
} |
||||
} |
||||
|
||||
function showDragArea() { |
||||
if (!_dragAreaShowing && _missionItem.specifiesCoordinate) { |
||||
_dragArea = dragAreaComponent.createObject(map) |
||||
_dragAreaShowing = true |
||||
} |
||||
} |
||||
|
||||
Component.onCompleted: { |
||||
showItemVisuals() |
||||
if (_missionItem.isCurrentItem) { |
||||
showDragArea() |
||||
} |
||||
} |
||||
|
||||
Component.onDestruction: { |
||||
hideDragArea() |
||||
hideItemVisuals() |
||||
} |
||||
|
||||
|
||||
Connections { |
||||
target: _missionItem |
||||
|
||||
onIsCurrentItemChanged: { |
||||
if (_missionItem.isCurrentItem) { |
||||
showDragArea() |
||||
} else { |
||||
hideDragArea() |
||||
} |
||||
} |
||||
} |
||||
|
||||
// Control which is used to drag items |
||||
Component { |
||||
id: dragAreaComponent |
||||
|
||||
MissionItemIndicatorDrag { |
||||
itemIndicator: _itemVisual |
||||
itemCoordinate: _missionItem.coordinate |
||||
|
||||
onItemCoordinateChanged: _missionItem.coordinate = itemCoordinate |
||||
} |
||||
} |
||||
|
||||
Component { |
||||
id: indicatorComponent |
||||
|
||||
MissionItemIndicator { |
||||
coordinate: _missionItem.coordinate |
||||
visible: coordinate.isValid |
||||
z: QGroundControl.zOrderMapItems |
||||
missionItem: _missionItem |
||||
|
||||
onClicked: _root.clicked(_missionItem.sequenceNumber) |
||||
|
||||
// These are the non-coordinate child mission items attached to this item |
||||
Row { |
||||
anchors.top: parent.top |
||||
anchors.left: parent.right |
||||
|
||||
Repeater { |
||||
model: _missionItem.childItems |
||||
|
||||
delegate: MissionItemIndexLabel { |
||||
label: object.abbreviation.length === 0 ? object.sequenceNumber : object.abbreviation.charAt(0) |
||||
checked: object.isCurrentItem |
||||
z: 2 |
||||
specifiesCoordinate: false |
||||
|
||||
onClicked: _root.Clicked(object.sequenceNumber) |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
Loading…
Reference in new issue