Newer
Older
import QtQuick 2.3
import QtQuick.Controls 1.2
import QtQuick.Layouts 1.2
import QGroundControl 1.0
import QGroundControl.ScreenTools 1.0
import QGroundControl.Vehicle 1.0
import QGroundControl.Controls 1.0
import QGroundControl.FactControls 1.0
import QGroundControl.Palette 1.0
import QGroundControl.SettingsManager 1.0
// Editor for Mission Settings
Rectangle {
id: valuesRect
width: availableWidth
height: valuesColumn.height + (_margin * 2)
color: qgcPal.windowShadeDark
visible: missionItem.isCurrentItem
radius: _radius
property var _masterControler: masterController
property var _missionController: _masterControler.missionController
property var _missionVehicle: _masterControler.controllerVehicle
property bool _vehicleHasHomePosition: _missionVehicle.homePosition.isValid
property bool _offlineEditing: _missionVehicle.isOfflineEditingVehicle
property bool _enableOfflineVehicleCombos: _offlineEditing && _noMissionItemsAdded
property bool _showCruiseSpeed: !_missionVehicle.multiRotor
property bool _showHoverSpeed: _missionVehicle.multiRotor || _missionVehicle.vtol
property bool _multipleFirmware: QGroundControl.supportedFirmwareCount > 2
property bool _multipleVehicleTypes: QGroundControl.supportedVehicleCount > 1
property real _fieldWidth: ScreenTools.defaultFontPixelWidth * 16
property bool _mobile: ScreenTools.isMobile
property var _savePath: QGroundControl.settingsManager.appSettings.missionSavePath
property var _fileExtension: QGroundControl.settingsManager.appSettings.missionFileExtension
property var _appSettings: QGroundControl.settingsManager.appSettings
property bool _waypointsOnlyMode: QGroundControl.corePlugin.options.missionWaypointsOnly
property bool _showCameraSection: (_waypointsOnlyMode || QGroundControl.corePlugin.showAdvancedUI) && !_missionVehicle.apmFirmware
property bool _simpleMissionStart: QGroundControl.corePlugin.options.showSimpleMissionStart
property bool _showFlightSpeed: !_missionVehicle.vtol && !_simpleMissionStart && !_missionVehicle.apmFirmware
readonly property string _firmwareLabel: qsTr("Firmware")
readonly property string _vehicleLabel: qsTr("Vehicle")
readonly property real _margin: ScreenTools.defaultFontPixelWidth / 2
QGCFileDialogController { id: fileController }
Column {
id: valuesColumn
anchors.margins: _margin
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
spacing: _margin
GridLayout {
anchors.left: parent.left
anchors.right: parent.right
columnSpacing: ScreenTools.defaultFontPixelWidth
rowSpacing: columnSpacing
columns: 2
FactTextField {
fact: QGroundControl.settingsManager.appSettings.defaultMissionItemAltitude
QGCCheckBox {
id: flightSpeedCheckBox
text: qsTr("Flight speed")
checked: missionItem.speedSection.specifyFlightSpeed
onClicked: missionItem.speedSection.specifyFlightSpeed = checked
}
FactTextField {
Layout.fillWidth: true
fact: missionItem.speedSection.flightSpeed
Column {
anchors.left: parent.left
anchors.right: parent.right
spacing: _margin
visible: !_simpleMissionStart
CameraSection {
id: cameraSection
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
visible: _showCameraSection
}
QGCLabel {
anchors.left: parent.left
anchors.right: parent.right
text: qsTr("Above camera commands will take affect immediately upon mission start.")
wrapMode: Text.WordWrap
horizontalAlignment: Text.AlignHCenter
font.pointSize: ScreenTools.smallFontPointSize
visible: _showCameraSection && cameraSection.checked
}
SectionHeader {
id: missionEndHeader
text: qsTr("Mission End")
checked: true
}
Column {
anchors.left: parent.left
anchors.right: parent.right
spacing: _margin
visible: missionEndHeader.checked
QGCCheckBox {
text: qsTr("Return To Launch")
checked: missionItem.missionEndRTL
onClicked: missionItem.missionEndRTL = checked
}
}
SectionHeader {
id: vehicleInfoSectionHeader
text: qsTr("Vehicle Info")
visible: _offlineEditing && !_waypointsOnlyMode
checked: false
}
GridLayout {
anchors.left: parent.left
anchors.right: parent.right
columnSpacing: ScreenTools.defaultFontPixelWidth
rowSpacing: columnSpacing
columns: 2
visible: vehicleInfoSectionHeader.visible && vehicleInfoSectionHeader.checked
text: _firmwareLabel
Layout.fillWidth: true
}
FactComboBox {
fact: QGroundControl.settingsManager.appSettings.offlineEditingFirmwareType
indexModel: false
Layout.preferredWidth: _fieldWidth
enabled: _enableOfflineVehicleCombos
}
QGCLabel {
text: _vehicleLabel
Layout.fillWidth: true
visible: _multipleVehicleTypes
}
FactComboBox {
fact: QGroundControl.settingsManager.appSettings.offlineEditingVehicleType
indexModel: false
Layout.preferredWidth: _fieldWidth
visible: _multipleVehicleTypes
enabled: _enableOfflineVehicleCombos
}
QGCLabel {
text: qsTr("Cruise speed")
visible: _showCruiseSpeed
Layout.fillWidth: true
fact: QGroundControl.settingsManager.appSettings.offlineEditingCruiseSpeed
visible: _showCruiseSpeed
Layout.preferredWidth: _fieldWidth
}
QGCLabel {
text: qsTr("Hover speed")
visible: _showHoverSpeed
FactTextField {
fact: QGroundControl.settingsManager.appSettings.offlineEditingHoverSpeed
visible: _showHoverSpeed
Layout.preferredWidth: _fieldWidth
}
} // GridLayout
SectionHeader {
id: plannedHomePositionSection
text: qsTr("Planned Home Position")
visible: !_vehicleHasHomePosition
checked: false
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
Column {
anchors.left: parent.left
anchors.right: parent.right
spacing: _margin
visible: plannedHomePositionSection.checked && !_vehicleHasHomePosition
GridLayout {
anchors.left: parent.left
anchors.right: parent.right
columnSpacing: ScreenTools.defaultFontPixelWidth
rowSpacing: columnSpacing
columns: 2
QGCLabel {
text: qsTr("Altitude")
}
FactTextField {
fact: missionItem.plannedHomePositionAltitude
Layout.fillWidth: true
}
}
QGCLabel {
width: parent.width
wrapMode: Text.WordWrap
font.pointSize: ScreenTools.smallFontPointSize
text: qsTr("Actual position set by vehicle at flight time.")
horizontalAlignment: Text.AlignHCenter
}
QGCButton {
text: qsTr("Set Home To Map Center")
onClicked: missionItem.coordinate = map.center
anchors.horizontalCenter: parent.horizontalCenter
}