import QtQuick 2.0 Item { id: _root property var map ///< Map control to place item in property var qgcView ///< QGCView to use for popping dialogs property var generator property bool checked: false property var _referenceComponent signal clicked() function _addRefPoint(){ if (!_referenceComponent){ _referenceComponent = refPointComponent.createObject(_root) map.addMapItem(_referenceComponent) } } function _destroyRefPoint(){ if (_referenceComponent){ map.removeMapItem(_referenceComponent) _referenceComponent.destroy() _referenceComponent = undefined } } onVisibleChanged: { if (visible){ _addRefPoint() } else { _destroyRefPoint() } } Component.onCompleted: { if (visible){ _addRefPoint() } } Component.onDestroyed: { _destroyRefPoint() } // Ref. point (Base Station) Component { id: refPointComponent DragCoordinate { map: _root.map qgcView: _root.qgcView z: QGroundControl.zOrderMapItems checked: _root.checked coordinate: _root.generator.reference onClicked: { _root.clicked() } onDragReleased: { _root.generator.reference = coordinate coordinate = Qt.binding(function (){return _root.generator.reference}) } } } }