@ -10,6 +10,7 @@
@@ -10,6 +10,7 @@
import QtQuick 2.11
import QtQuick . Controls 2.4
import QtQuick . Layouts 1.11
import QtQuick . Dialogs 1.3
import QGroundControl 1.0
import QGroundControl . Controls 1.0
@ -19,7 +20,7 @@ import QGroundControl.ScreenTools 1.0
@@ -19,7 +20,7 @@ import QGroundControl.ScreenTools 1.0
import QGroundControl . Controllers 1.0
Item {
id: toolBar
id: toolBar
Component.onCompleted: {
/ / - - T O D O : G e t t h i s f r o m t h e a c t u a l s t a t e
@ -36,6 +37,45 @@ Item {
@@ -36,6 +37,45 @@ Item {
visible: qgcPal . globalTheme === QGCPalette . Light
}
/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
/ / E a s t e r e g g m e c h a n i s m
MouseArea {
anchors.fill: parent
onClicked: {
_clickCount ++
eggTimer . restart ( )
if ( _clickCount == 5 ) {
if ( ! QGroundControl . corePlugin . showAdvancedUI ) {
advancedModeConfirmation . open ( )
} else {
QGroundControl . corePlugin . showAdvancedUI = false
}
} else if ( _clickCount == 7 ) {
QGroundControl . corePlugin . showTouchAreas = ! QGroundControl . corePlugin . showTouchAreas
}
}
property int _clickCount : 0
Timer {
id: eggTimer
interval: 1000
repeat: false
onTriggered: parent . _clickCount = 0
}
MessageDialog {
id: advancedModeConfirmation
title: qsTr ( "Advanced Mode" )
text: QGroundControl . corePlugin . showAdvancedUIMessage
standardButtons: StandardButton . Yes | StandardButton . No
onYes: {
QGroundControl . corePlugin . showAdvancedUI = true
advancedModeConfirmation . close ( )
}
}
}
/ / - - S e t u p c a n b e i n v o k e d f r o m c + + s i d e
Connections {
target: setupWindow
@ -46,97 +86,146 @@ Item {
@@ -46,97 +86,146 @@ Item {
}
}
RowLayout {
anchors.bottomMargin: 1
anchors.rightMargin: ScreenTools . defaultFontPixelWidth / 2
anchors.fill: parent
spacing: ScreenTools . defaultFontPixelWidth / 2
QGCFlickable {
anchors.fill: parent
contentWidth: toolbarRow . width
flickableDirection: Flickable . HorizontalFlick
ButtonGroup {
buttons: viewRow . children
}
RowLayout {
id: toolbarRow
anchors.bottomMargin: 1
anchors.top: parent . top
anchors.bottom: parent . bottom
spacing: ScreenTools . defaultFontPixelWidth / 2
/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
/ / T o o l b a r R o w
Row {
id: viewRow
Layout.fillHeight: true
spacing: ScreenTools . defaultFontPixelWidth / 2
QGCToolBarButton {
id: settingsButton
anchors.top: parent . top
anchors.bottom: parent . bottom
icon.source: "/res/QGCLogoWhite"
logo: true
visible: ! QGroundControl . corePlugin . options . combineSettingsAndSetup
onClicked: {
checked = true
mainWindow . showSettingsView ( )
}
ButtonGroup {
buttons: viewRow . children
}
QGCToolBarButton {
id: setupButton
anchors.top: parent . top
anchors.bottom: parent . bottom
icon.source: "/qmlimages/Gears.svg"
onClicked: {
checked = true
mainWindow . showSetupView ( )
/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
/ / T o o l b a r R o w
RowLayout {
id: viewRow
Layout.fillHeight: true
spacing: 0
QGCToolBarButton {
id: settingsButton
Layout.fillHeight: true
icon.source: "/res/QGCLogoWhite"
logo: true
visible: ! QGroundControl . corePlugin . options . combineSettingsAndSetup
onClicked: {
checked = true
mainWindow . showSettingsView ( )
}
}
}
QGCToolBarButton {
id: planButton
anchors.top: parent . top
anchors.bottom: parent . bottom
icon.source: "/qmlimages/Plan.svg"
onClicked: {
checked = true
mainWindow . showPlanView ( )
QGCToolBarButton {
id: setu pButton
Layout.fillHeight: true
icon.source: "/qmlimages/Gears.svg"
onClicked: {
checked = true
mainWindow . showSetupView ( )
}
}
}
QGCToolBarButton {
id: fly Button
anchors.top: parent . top
anchors.bottom: parent . bottom
icon.source: "/qmlimages/PaperPlane.svg"
onClicked: {
checked = true
mainWindow . showFlyView ( )
QGCToolBarButton {
id: plan Button
Layout.fillHeight: true
icon.source: "/qmlimages/Plan.svg"
onClicked: {
checked = true
mainWindow . showPlanView ( )
}
}
}
QGCToolBarButton {
id: analyzeButton
anchors.top: parent . top
anchors.bottom: parent . bottom
icon.source: "/qmlimages/Analyze.svg"
visible: QGroundControl . corePlugin . showAdvancedUI
onClicked: {
checked = true
mainWindow . showAnalyzeView ( )
QGCToolBarButton {
id: flyButton
Layout.fillHeight: true
icon.source: "/qmlimages/PaperPlane.svg"
onClicked: {
checked = true
mainWindow . showFlyView ( )
}
}
QGCToolBarButton {
id: analyzeButton
Layout.fillHeight: true
icon.source: "/qmlimages/Analyze.svg"
visible: QGroundControl . corePlugin . showAdvancedUI
onClicked: {
checked = true
mainWindow . showAnalyzeView ( )
}
}
Item {
Layout.fillHeight: true
width: ScreenTools . defaultFontPixelWidth / 2
visible: activeVehicle
}
Rectangle {
Layout.margins: ScreenTools . defaultFontPixelHeight / 2
Layout.fillHeight: true
width: 1
color: qgcPal . text
visible: activeVehicle
}
Item {
Layout.fillHeight: true
width: ScreenTools . defaultFontPixelWidth / 2
visible: activeVehicle
}
}
Rectangle {
anchors.margins: ScreenTools . defaultFontPixelHeight / 2
anchors.top: parent . top
anchors.bottom: parent . bottom
width: 1
color: qgcPal . text
visible: activeVehicle
Loader {
id: toolbarIndicators
Layout.fillHeight: true
source: "/toolbar/MainToolBarIndicators.qml"
visible: activeVehicle && ! communicationLost
}
}
}
Loader {
id: toolbarIndicators
height: parent . height
source: "/toolbar/MainToolBarIndicators.qml"
Layout.fillWidth: true
}
/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
/ / - - B r a n d i n g L o g o
Image {
anchors.right: parent . right
anchors.top: parent . top
anchors.bottom: parent . bottom
anchors.margins: ScreenTools . defaultFontPixelHeight * 0.66
visible: activeVehicle && ! communicationLost && x > ( toolbarRow . x + toolbarRow . width + ScreenTools . defaultFontPixelWidth )
fillMode: Image . PreserveAspectFit
source: _outdoorPalette ? _brandImageOutdoor : _brandImageIndoor
mipmap: true
property bool _outdoorPalette : qgcPal . globalTheme === QGCPalette . Light
property bool _corePluginBranding : QGroundControl . corePlugin . brandImageIndoor . length != 0
property string _userBrandImageIndoor : QGroundControl . settingsManager . brandImageSettings . userBrandImageIndoor . value
property string _userBrandImageOutdoor : QGroundControl . settingsManager . brandImageSettings . userBrandImageOutdoor . value
property bool _userBrandingIndoor : _userBrandImageIndoor . length != 0
property bool _userBrandingOutdoor : _userBrandImageOutdoor . length != 0
property string _brandImageIndoor : _userBrandingIndoor ?
_userBrandImageIndoor : ( _userBrandingOutdoor ?
_userBrandImageOutdoor : ( _corePluginBranding ?
QGroundControl.corePlugin.brandImageIndoor : ( activeVehicle ?
activeVehicle.brandImageIndoor : ""
)
)
)
property string _brandImageOutdoor : _userBrandingOutdoor ?
_userBrandImageOutdoor : ( _userBrandingIndoor ?
_userBrandImageIndoor : ( _corePluginBranding ?
QGroundControl.corePlugin.brandImageOutdoor : ( activeVehicle ?
activeVehicle.brandImageOutdoor : ""
)
)
)
}
/ / S m a l l p a r a m e t e r d o w n l o a d p r o g r e s s b a r
@ -194,4 +283,48 @@ Item {
@@ -194,4 +283,48 @@ Item {
onClicked: largeProgressBar . _userHide = true
}
}
/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
/ / - - W a i t i n g f o r a v e h i c l e
QGCLabel {
anchors.rightMargin: ScreenTools . defaultFontPixelWidth
anchors.right: parent . right
anchors.verticalCenter: parent . verticalCenter
text: qsTr ( "Waiting For Vehicle Connection" )
font.pointSize: ScreenTools . mediumFontPointSize
font.family: ScreenTools . demiboldFontFamily
color: qgcPal . colorRed
visible: ! activeVehicle
}
/ / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
/ / - - C o n n e c t i o n S t a t u s
Row {
anchors.rightMargin: ScreenTools . defaultFontPixelWidth
anchors.top: parent . top
anchors.bottom: parent . bottom
anchors.right: parent . right
layoutDirection: Qt . RightToLeft
spacing: ScreenTools . defaultFontPixelWidth
visible: activeVehicle && communicationLost
QGCButton {
id: disconnectButton
anchors.verticalCenter: parent . verticalCenter
text: qsTr ( "Disconnect" )
primary: true
onClicked: activeVehicle . disconnectInactiveVehicle ( )
}
QGCLabel {
id: connectionLost
anchors.verticalCenter: parent . verticalCenter
text: qsTr ( "COMMUNICATION LOST" )
font.pointSize: ScreenTools . largeFontPointSize
font.family: ScreenTools . demiboldFontFamily
color: qgcPal . colorRed
}
}
}