地面站终端 App
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

200 lines
9.5 KiB

import QtQuick 2.3
import QtQuick.Controls 1.2
import QtQuick.Controls.Styles 1.4
import QtQuick.Dialogs 1.2
import QtQml 2.2
import QGroundControl 1.0
import QGroundControl.Airmap 1.0
import QGroundControl.Airspace 1.0
import QGroundControl.Controls 1.0
import QGroundControl.Palette 1.0
import QGroundControl.ScreenTools 1.0
import QGroundControl.SettingsManager 1.0
Item {
id: _root
implicitHeight: briefRootCol.height
implicitWidth: briefRootCol.width
property real baseHeight: ScreenTools.defaultFontPixelHeight * 22
property real baseWidth: ScreenTools.defaultFontPixelWidth * 40
Column {
id: briefRootCol
spacing: ScreenTools.defaultFontPixelHeight * 0.25
Rectangle {
color: qgcPal.windowShade
anchors.right: parent.right
anchors.left: parent.left
height: briefLabel.height + ScreenTools.defaultFontPixelHeight
QGCLabel {
id: briefLabel
text: qsTr("Flight Brief")
font.pointSize: ScreenTools.mediumFontPointSize
font.family: ScreenTools.demiboldFontFamily
anchors.centerIn: parent
}
}
Item { width: 1; height: ScreenTools.defaultFontPixelHeight * 0.5; }
Flickable {
clip: true
width: baseWidth
height: baseHeight - buttonRow.height - ScreenTools.defaultFontPixelHeight
contentHeight: briefCol.height
flickableDirection: Flickable.VerticalFlick
Column {
id: briefCol
spacing: ScreenTools.defaultFontPixelHeight * 0.5
anchors.right: parent.right
anchors.left: parent.left
QGCLabel {
text: qsTr("Authorizations")
}
Rectangle {
color: qgcPal.windowShade
anchors.right: parent.right
anchors.left: parent.left
height: authCol.height + ScreenTools.defaultFontPixelHeight
Column {
id: authCol
spacing: ScreenTools.defaultFontPixelHeight * 0.5
anchors.margins: ScreenTools.defaultFontPixelWidth
anchors.right: parent.right
anchors.left: parent.left
anchors.verticalCenter: parent.verticalCenter
QGCLabel {
text: qsTr("No Authorization Required")
visible: _flightPermit !== AirspaceFlightPlanProvider.PermitNone
anchors.horizontalCenter: parent.horizontalCenter
}
/*
QGCLabel {
text: qsTr("Automatic authorization to fly in controlled airspace")
visible: _flightPermit !== AirspaceFlightPlanProvider.PermitNone
font.pointSize: ScreenTools.smallFontPointSize
}
*/
Rectangle {
anchors.right: parent.right
anchors.left: parent.left
height: label.height + (ScreenTools.defaultFontPixelHeight * 0.5)
color: {
if(_flightPermit === AirspaceFlightPlanProvider.PermitPending)
return _colorOrange
if(_flightPermit === AirspaceFlightPlanProvider.PermitAccepted)
return _colorGreen
if(_flightPermit === AirspaceFlightPlanProvider.PermitRejected)
return _colorRed
return _colorGray
}
QGCLabel {
id: label
color: _colorWhite
text: {
if(_flightPermit === AirspaceFlightPlanProvider.PermitPending)
return qsTr("Authorization Pending")
if(_flightPermit === AirspaceFlightPlanProvider.PermitAccepted)
return qsTr("Authorization Accepted")
if(_flightPermit === AirspaceFlightPlanProvider.PermitRejected)
return qsTr("Authorization Rejected")
return qsTr("Authorization Unknown")
}
anchors.centerIn: parent
}
}
}
}
Item { width: 1; height: ScreenTools.defaultFontPixelHeight * 0.25; }
QGCLabel {
text: qsTr("Rules & Compliance")
visible: hasBriefRules()
}
ExclusiveGroup { id: ruleGroup }
ComplianceRules {
text: qsTr("Rules you may be violating")
rules: violationRules
visible: violationRules && violationRules.count
color: _colorRed
exclusiveGroup: ruleGroup
anchors.right: parent.right
anchors.left: parent.left
property var violationRules: QGroundControl.airspaceManager.flightPlan.rulesViolation
}
ComplianceRules {
text: qsTr("Rules needing more information")
rules: infoRules
color: _colorOrange
visible: infoRules && infoRules.count
exclusiveGroup: ruleGroup
anchors.right: parent.right
anchors.left: parent.left
property var infoRules: QGroundControl.airspaceManager.flightPlan.rulesInfo
}
ComplianceRules {
text: qsTr("Rules you should review")
rules: reviewRules
color: _colorYellow
visible: reviewRules && reviewRules.count
exclusiveGroup: ruleGroup
anchors.right: parent.right
anchors.left: parent.left
property var reviewRules: QGroundControl.airspaceManager.flightPlan.rulesReview
}
ComplianceRules {
text: qsTr("Rules you are following")
rules: followRules
color: _colorGreen
visible: followRules && followRules.count
exclusiveGroup: ruleGroup
anchors.right: parent.right
anchors.left: parent.left
property var followRules: QGroundControl.airspaceManager.flightPlan.rulesFollowing
}
}
}
//-------------------------------------------------------------
//-- File Flight Plan or Close
Item { width: 1; height: ScreenTools.defaultFontPixelHeight; }
Row {
id: buttonRow
spacing: ScreenTools.defaultFontPixelWidth
anchors.horizontalCenter: parent.horizontalCenter
QGCButton {
text: qsTr("Update Plan")
backRadius: 4
heightFactor: 0.3333
showBorder: true
enabled: _flightPermit !== AirspaceFlightPlanProvider.PermitNone && _dirty
visible: planView
width: ScreenTools.defaultFontPixelWidth * 12
onClicked: {
QGroundControl.airspaceManager.flightPlan.updateFlightPlan()
}
}
QGCButton {
text: qsTr("Submit Plan")
backRadius: 4
heightFactor: 0.3333
showBorder: true
enabled: _flightPermit === AirspaceFlightPlanProvider.PermitAccepted
width: ScreenTools.defaultFontPixelWidth * 12
visible: planView
onClicked: {
//-- TODO: File Plan
mainWindow.enableToolbar()
rootLoader.sourceComponent = null
}
}
QGCButton {
text: qsTr("Close")
backRadius: 4
heightFactor: 0.3333
showBorder: true
width: ScreenTools.defaultFontPixelWidth * 12
onClicked: {
mainWindow.enableToolbar()
rootLoader.sourceComponent = null
}
}
}
}
}