import QtQuick 2.3 import QtQuick.Controls 1.2 import QtQuick.Controls.Styles 1.4 import QtQuick.Dialogs 1.2 import QtQuick.Extras 1.4 import QtQuick.Layouts 1.3 import QGroundControl 1.0 import QGroundControl.ScreenTools 1.0 import QGroundControl.Vehicle 1.0 import QGroundControl.Controls 1.0 import QGroundControl.FactSystem 1.0 import QGroundControl.FactControls 1.0 import QGroundControl.Palette 1.0 import QGroundControl.FlightMap 1.0 import MeasurementComplexItem 1.0 as MCI Rectangle { id: _root height: visible ? (mainColumn.height + (_margin * 2)) : 0 width: availableWidth color: qgcPal.windowShadeDark radius: _radius // The following properties must be available up the hierarchy chain //property real availableWidth ///< Width for control //property var missionItem ///< Mission Item for editor property real _margin: ScreenTools.defaultFontPixelWidth / 2 property real _fieldWidth: ScreenTools.defaultFontPixelWidth * 10.5 property var _vehicle: QGroundControl.multiVehicleManager.activeVehicle ? QGroundControl.multiVehicleManager.activeVehicle : QGroundControl.multiVehicleManager.offlineEditingVehicle property var _missionItem: missionItem property var _areaData: missionItem.areaData QGCPalette { id: qgcPal colorGroupEnabled: true } Column { // main Column id: mainColumn anchors.margins: _margin anchors.top: parent.top anchors.left: parent.left anchors.right: parent.right QGCTabBar { id: tabBar anchors.left: parent.left anchors.right: parent.right enabled: !editing || editing && correct readonly property int areaEditorIndex: 0 readonly property int parameterEditorIndex: 1 readonly property int nemoEditorIndex: 2 property bool editing: _missionItem.editing property bool correct: false Component.onCompleted: currentIndex = editing ? areaEditorIndex : parameterEditorIndex QGCTabButton { icon.source: "qrc:/res/waypoint.svg" icon.height: ScreenTools.defaultFontPixelHeight } QGCTabButton { icon.source: "/qmlimages/PatternGrid.png" icon.height: ScreenTools.defaultFontPixelHeight } QGCTabButton { icon.source: "qrc:/res/fish.svg" icon.height: ScreenTools.defaultFontPixelHeight } onEditingChanged: { if (editing) { areasCorrectTimer.start() } else { areasCorrectTimer.stop() } } onCurrentIndexChanged: { if (currentIndex === areaEditorIndex) { _missionItem.startEditing() } else { _missionItem.stopEditing() } } Timer { id: areasCorrectTimer running: false interval: 100 repeat: true onTriggered: { tabBar.correct = _missionItem.areaData.isCorrect( false /*show gui message*/ ) } } } MCI.AreaDataEditor { id: areaEditor visible: tabBar.currentIndex === tabBar.areaEditorIndex checked: visible missionItem: _root._missionItem availableWidth: mainColumn.width onAbort: { missionItem.abortEditing() tabBar.currentIndex = tabBar.parameterEditorIndex } } MCI.ParameterEditor { id: parameterEditor visible: tabBar.currentIndex === tabBar.parameterEditorIndex checked: visible missionItem: _root._missionItem availableWidth: mainColumn.width } MCI.NemoEditor { id: nemoEditor visible: tabBar.currentIndex === tabBar.nemoEditorIndex checked: visible missionItem: _root._missionItem availableWidth: mainColumn.width } } // main Column } // Rectangle