/**************************************************************************** * * (c) 2009-2016 QGROUNDCONTROL PROJECT * * 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 /// Draggable Coordinate Item visuals Item { id: _root property var map ///< Map control to place item in property var qgcView ///< QGCView to use for popping dialogs //property var visible property var coordinate property int sequenceNumber property var _itemVisual property bool _itemVisualShowing: false property var _dragArea property bool _dragAreaShowing: false signal clicked(int sequenceNumber) 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) { _dragArea = dragAreaComponent.createObject(map) _dragAreaShowing = true } } Component.onCompleted: { showItemVisuals() if (visible && map.planView) { showDragArea() } } Component.onDestruction: { hideDragArea() hideItemVisuals() } onVisibleChanged: { if (visible) { showDragArea() } else { hideDragArea() } } // Control which is used to drag items Component { id: dragAreaComponent CoordinateIndicatorDrag { mapControl: _root.map itemIndicator: _itemVisual Component.onCompleted: itemCoordinate = _root.coordinate onItemCoordinateChanged: _root.coordinate = itemCoordinate } } Component { id: indicatorComponent CoordinateIndicator { label: "Reference" visible: _root.visible z: QGroundControl.zOrderMapItems sequenceNumber: _root.sequenceNumber coordinate: _root.coordinate onClicked: _root.clicked(_missionItem.sequenceNumber) } } }