Commit 896f0783 authored by Don Gagne's avatar Don Gagne

parent 1b970693
...@@ -20,13 +20,12 @@ import QGroundControl.Palette 1.0 ...@@ -20,13 +20,12 @@ import QGroundControl.Palette 1.0
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
//-- Armed Indicator //-- Armed Indicator
QGCComboBox { QGCComboBox {
anchors.top: parent.top anchors.verticalCenter: parent.verticalCenter
anchors.bottom: parent.bottom alternateText: _armed ? qsTr("Armed") : qsTr("Disarmed")
alternateText: _armed ? qsTr("Armed") : qsTr("Disarmed") model: [ qsTr("Arm"), qsTr("Disarm") ]
model: [ qsTr("Arm"), qsTr("Disarm") ] font.pointSize: ScreenTools.mediumFontPointSize
font.pointSize: ScreenTools.mediumFontPointSize currentIndex: -1
currentIndex: -1 sizeToContents: true
sizeToContents: true
property bool showIndicator: true property bool showIndicator: true
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
import QtQuick 2.11 import QtQuick 2.11
import QtQuick.Controls 2.4 import QtQuick.Controls 2.4
import QtQuick.Layouts 1.11 import QtQuick.Layouts 1.11
import QtQuick.Dialogs 1.3
import QGroundControl 1.0 import QGroundControl 1.0
import QGroundControl.Controls 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 import QGroundControl.Controllers 1.0
Item { Item {
id: toolBar id: toolBar
Component.onCompleted: { Component.onCompleted: {
//-- TODO: Get this from the actual state //-- TODO: Get this from the actual state
...@@ -36,6 +37,45 @@ Item { ...@@ -36,6 +37,45 @@ Item {
visible: qgcPal.globalTheme === QGCPalette.Light visible: qgcPal.globalTheme === QGCPalette.Light
} }
//-------------------------------------------------------------------------
// Easter egg mechanism
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()
}
}
}
//-- Setup can be invoked from c++ side //-- Setup can be invoked from c++ side
Connections { Connections {
target: setupWindow target: setupWindow
...@@ -46,97 +86,146 @@ Item { ...@@ -46,97 +86,146 @@ Item {
} }
} }
RowLayout { QGCFlickable {
anchors.bottomMargin: 1 anchors.fill: parent
anchors.rightMargin: ScreenTools.defaultFontPixelWidth / 2 contentWidth: toolbarRow.width
anchors.fill: parent flickableDirection: Flickable.HorizontalFlick
spacing: ScreenTools.defaultFontPixelWidth / 2
ButtonGroup { RowLayout {
buttons: viewRow.children id: toolbarRow
} anchors.bottomMargin: 1
anchors.top: parent.top
anchors.bottom: parent.bottom
spacing: ScreenTools.defaultFontPixelWidth / 2
//--------------------------------------------- ButtonGroup {
// Toolbar Row buttons: viewRow.children
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()
}
} }
QGCToolBarButton { //---------------------------------------------
id: setupButton // Toolbar Row
anchors.top: parent.top RowLayout {
anchors.bottom: parent.bottom id: viewRow
icon.source: "/qmlimages/Gears.svg" Layout.fillHeight: true
onClicked: { spacing: 0
checked = true
mainWindow.showSetupView() QGCToolBarButton {
id: settingsButton
Layout.fillHeight: true
icon.source: "/res/QGCLogoWhite"
logo: true
visible: !QGroundControl.corePlugin.options.combineSettingsAndSetup
onClicked: {
checked = true
mainWindow.showSettingsView()
}
} }
}
QGCToolBarButton { QGCToolBarButton {
id: planButton id: setupButton
anchors.top: parent.top Layout.fillHeight: true
anchors.bottom: parent.bottom icon.source: "/qmlimages/Gears.svg"
icon.source: "/qmlimages/Plan.svg" onClicked: {
onClicked: { checked = true
checked = true mainWindow.showSetupView()
mainWindow.showPlanView() }
} }
}
QGCToolBarButton { QGCToolBarButton {
id: flyButton id: planButton
anchors.top: parent.top Layout.fillHeight: true
anchors.bottom: parent.bottom icon.source: "/qmlimages/Plan.svg"
icon.source: "/qmlimages/PaperPlane.svg" onClicked: {
onClicked: { checked = true
checked = true mainWindow.showPlanView()
mainWindow.showFlyView() }
} }
}
QGCToolBarButton { QGCToolBarButton {
id: analyzeButton id: flyButton
anchors.top: parent.top Layout.fillHeight: true
anchors.bottom: parent.bottom icon.source: "/qmlimages/PaperPlane.svg"
icon.source: "/qmlimages/Analyze.svg" onClicked: {
visible: QGroundControl.corePlugin.showAdvancedUI checked = true
onClicked: { mainWindow.showFlyView()
checked = true }
mainWindow.showAnalyzeView() }
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 { Loader {
anchors.margins: ScreenTools.defaultFontPixelHeight / 2 id: toolbarIndicators
anchors.top: parent.top Layout.fillHeight: true
anchors.bottom: parent.bottom source: "/toolbar/MainToolBarIndicators.qml"
width: 1 visible: activeVehicle && !communicationLost
color: qgcPal.text
visible: activeVehicle
} }
} }
}
Loader { //-------------------------------------------------------------------------
id: toolbarIndicators //-- Branding Logo
height: parent.height Image {
source: "/toolbar/MainToolBarIndicators.qml" anchors.right: parent.right
Layout.fillWidth: true 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 : ""
)
)
)
} }
// Small parameter download progress bar // Small parameter download progress bar
...@@ -194,4 +283,48 @@ Item { ...@@ -194,4 +283,48 @@ Item {
onClicked: largeProgressBar._userHide = true onClicked: largeProgressBar._userHide = true
} }
} }
//-------------------------------------------------------------------------
//-- Waiting for a vehicle
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
}
//-------------------------------------------------------------------------
//-- Connection Status
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
}
}
} }
...@@ -9,7 +9,6 @@ ...@@ -9,7 +9,6 @@
import QtQuick 2.11 import QtQuick 2.11
import QtQuick.Controls 2.4 import QtQuick.Controls 2.4
import QtQuick.Dialogs 1.3
import QtQuick.Layouts 1.11 import QtQuick.Layouts 1.11
import QGroundControl 1.0 import QGroundControl 1.0
...@@ -18,141 +17,23 @@ import QGroundControl.MultiVehicleManager 1.0 ...@@ -18,141 +17,23 @@ import QGroundControl.MultiVehicleManager 1.0
import QGroundControl.ScreenTools 1.0 import QGroundControl.ScreenTools 1.0
import QGroundControl.Palette 1.0 import QGroundControl.Palette 1.0
Item { //-------------------------------------------------------------------------
//-- Toolbar Indicators
//------------------------------------------------------------------------- Row {
// Easter egg mechanism id: indicatorRow
MouseArea { anchors.top: parent.top
anchors.fill: parent anchors.bottom: parent.bottom
onClicked: { spacing: ScreenTools.defaultFontPixelWidth * 1.5
_clickCount++
eggTimer.restart() Repeater {
if (_clickCount == 5) { model: activeVehicle ? activeVehicle.toolBarIndicators : []
if(!QGroundControl.corePlugin.showAdvancedUI) { Loader {
advancedModeConfirmation.open() id: indicatorLoader
} else { anchors.top: parent.top
QGroundControl.corePlugin.showAdvancedUI = false anchors.bottom: parent.bottom
} anchors.margins: ScreenTools.defaultFontPixelHeight * 0.66
} else if (_clickCount == 7) { source: modelData
QGroundControl.corePlugin.showTouchAreas = !QGroundControl.corePlugin.showTouchAreas visible: item.showIndicator
}
}
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()
}
}
}
//-------------------------------------------------------------------------
//-- Waiting for a vehicle
QGCLabel {
id: waitForVehicle
anchors.centerIn: parent
text: qsTr("Waiting For Vehicle Connection")
font.pointSize: ScreenTools.mediumFontPointSize
font.family: ScreenTools.demiboldFontFamily
color: qgcPal.colorRed
visible: !activeVehicle
}
//-------------------------------------------------------------------------
//-- Toolbar Indicators
Row {
id: indicatorRow
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.leftMargin: ScreenTools.defaultFontPixelWidth * 2
spacing: ScreenTools.defaultFontPixelWidth * 1.5
visible: activeVehicle && !communicationLost
Repeater {
model: activeVehicle ? activeVehicle.toolBarIndicators : []
Loader {
id: indicatorLoader
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.margins: ScreenTools.defaultFontPixelHeight * 0.66
source: modelData
visible: item.showIndicator
}
}
}
//-------------------------------------------------------------------------
//-- Branding Logo
Image {
anchors.right: parent.right
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.margins: ScreenTools.defaultFontPixelHeight * 0.66
visible: activeVehicle && !communicationLost && x > (indicatorRow.x + indicatorRow.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 : ""
)
)
)
}
//-------------------------------------------------------------------------
//-- Connection Status
Row {
anchors.fill: parent
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
} }
} }
} }
...@@ -20,13 +20,12 @@ import QGroundControl.Palette 1.0 ...@@ -20,13 +20,12 @@ import QGroundControl.Palette 1.0
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
//-- Mode Indicator //-- Mode Indicator
QGCComboBox { QGCComboBox {
anchors.top: parent.top anchors.verticalCenter: parent.verticalCenter
anchors.bottom: parent.bottom alternateText: _activeVehicle ? _activeVehicle.flightMode : ""
alternateText: _activeVehicle ? _activeVehicle.flightMode : "" model: _flightModes
model: _flightModes font.pointSize: ScreenTools.mediumFontPointSize
font.pointSize: ScreenTools.mediumFontPointSize currentIndex: -1
currentIndex: -1 sizeToContents: true
sizeToContents: true
property bool showIndicator: true property bool showIndicator: true
......
...@@ -20,12 +20,11 @@ import QGroundControl.Palette 1.0 ...@@ -20,12 +20,11 @@ import QGroundControl.Palette 1.0
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
//-- Multiple Vehicle Selector //-- Multiple Vehicle Selector
QGCComboBox { QGCComboBox {
anchors.top: parent.top anchors.verticalCenter: parent.verticalCenter
anchors.bottom: parent.bottom font.pointSize: ScreenTools.mediumFontPointSize
font.pointSize: ScreenTools.mediumFontPointSize currentIndex: -1
currentIndex: -1 sizeToContents: true
sizeToContents: true model: _vehicleModel
model: _vehicleModel
property bool showIndicator: _multipleVehicles property bool showIndicator: _multipleVehicles
......
...@@ -20,13 +20,12 @@ import QGroundControl.Palette 1.0 ...@@ -20,13 +20,12 @@ import QGroundControl.Palette 1.0
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
//-- VTOL Mode Indicator //-- VTOL Mode Indicator
QGCLabel { QGCLabel {
anchors.top: parent.top anchors.verticalCenter: parent.verticalCenter
anchors.bottom: parent.bottom verticalAlignment: Text.AlignVCenter
verticalAlignment: Text.AlignVCenter text: _fwdFlight ? qsTr("VTOL: Fixed Wing") : qsTr("VTOL: Multi-Rotor")
text: _fwdFlight ? qsTr("VTOL: Fixed Wing") : qsTr("VTOL: Multi-Rotor") font.pointSize: ScreenTools.mediumFontPointSize
font.pointSize: ScreenTools.mediumFontPointSize color: qgcPal.buttonText
color: qgcPal.buttonText width: implicitWidth
width: implicitWidth
property bool showIndicator: _activeVehicle.vtol && _activeVehicle.px4Firmware property bool showIndicator: _activeVehicle.vtol && _activeVehicle.px4Firmware
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment