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.
202 lines
9.5 KiB
202 lines
9.5 KiB
/**************************************************************************** |
|
* |
|
* (c) 2009-2020 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org> |
|
* |
|
* QGroundControl is licensed according to the terms in the file |
|
* COPYING.md in the root of the source code directory. |
|
* |
|
****************************************************************************/ |
|
|
|
import QtQuick 2.12 |
|
import QtQuick.Controls 2.4 |
|
import QtQuick.Layouts 1.11 |
|
import QtQuick.Dialogs 1.3 |
|
|
|
import QGroundControl 1.0 |
|
import QGroundControl.Controls 1.0 |
|
import QGroundControl.Palette 1.0 |
|
import QGroundControl.MultiVehicleManager 1.0 |
|
import QGroundControl.ScreenTools 1.0 |
|
import QGroundControl.Controllers 1.0 |
|
|
|
Rectangle { |
|
id: _root |
|
color: qgcPal.toolbarBackground |
|
|
|
property int currentToolbar: flyViewToolbar |
|
|
|
readonly property int flyViewToolbar: 0 |
|
readonly property int planViewToolbar: 1 |
|
readonly property int simpleToolbar: 2 |
|
|
|
property var _activeVehicle: QGroundControl.multiVehicleManager.activeVehicle |
|
property bool _communicationLost: _activeVehicle ? _activeVehicle.connectionLost : false |
|
property color _mainStatusBGColor: qgcPal.brandingPurple |
|
|
|
QGCPalette { id: qgcPal } |
|
|
|
/// Bottom single pixel divider |
|
Rectangle { |
|
anchors.left: parent.left |
|
anchors.right: parent.right |
|
anchors.bottom: parent.bottom |
|
height: 1 |
|
color: "black" |
|
visible: qgcPal.globalTheme === QGCPalette.Light |
|
} |
|
|
|
Rectangle { |
|
anchors.fill: viewButtonRow |
|
visible: currentToolbar === flyViewToolbar |
|
|
|
gradient: Gradient { |
|
orientation: Gradient.Horizontal |
|
GradientStop { position: 0; color: _mainStatusBGColor } |
|
GradientStop { position: currentButton.x + currentButton.width; color: _mainStatusBGColor } |
|
GradientStop { position: 1; color: _root.color } |
|
} |
|
} |
|
|
|
RowLayout { |
|
id: viewButtonRow |
|
anchors.bottomMargin: 1 |
|
anchors.top: parent.top |
|
anchors.bottom: parent.bottom |
|
spacing: ScreenTools.defaultFontPixelWidth / 2 |
|
|
|
QGCToolBarButton { |
|
id: currentButton |
|
Layout.preferredHeight: viewButtonRow.height |
|
icon.source: "/res/QGCLogoFull" |
|
logo: true |
|
onClicked: toolSelectDrawer.visible = true |
|
} |
|
|
|
MainStatusIndicator { |
|
Layout.preferredHeight: viewButtonRow.height |
|
visible: currentToolbar === flyViewToolbar |
|
} |
|
|
|
QGCButton { |
|
id: disconnectButton |
|
text: qsTr("Disconnect") |
|
onClicked: _activeVehicle.disconnectInactiveVehicle() |
|
visible: _activeVehicle && _communicationLost && currentToolbar === flyViewToolbar |
|
} |
|
} |
|
|
|
QGCFlickable { |
|
id: toolsFlickable |
|
anchors.leftMargin: ScreenTools.defaultFontPixelHeight / 2 |
|
anchors.left: viewButtonRow.right |
|
anchors.bottomMargin: 1 |
|
anchors.top: parent.top |
|
anchors.bottom: parent.bottom |
|
anchors.right: parent.right |
|
contentWidth: indicatorLoader.x + indicatorLoader.width |
|
flickableDirection: Flickable.HorizontalFlick |
|
|
|
Loader { |
|
id: indicatorLoader |
|
anchors.leftMargin: currentToolbar !== planViewToolbar ? ScreenTools.defaultFontPixelHeight / 2 : 0 |
|
anchors.left: parent.left//currentToolbar !== planViewToolbar ? valueArea.right : parent.left |
|
anchors.top: parent.top |
|
anchors.bottom: parent.bottom |
|
source: currentToolbar === flyViewToolbar ? |
|
"qrc:/toolbar/MainToolBarIndicators.qml" : |
|
(currentToolbar == planViewToolbar ? "qrc:/qml/PlanToolBarIndicators.qml" : "") |
|
} |
|
} |
|
|
|
//------------------------------------------------------------------------- |
|
//-- Branding Logo |
|
Image { |
|
anchors.right: parent.right |
|
anchors.top: parent.top |
|
anchors.bottom: parent.bottom |
|
anchors.margins: ScreenTools.defaultFontPixelHeight * 0.66 |
|
visible: currentToolbar !== planViewToolbar && _activeVehicle && !_communicationLost && x > (toolsFlickable.x + toolsFlickable.contentWidth + 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 |
|
Rectangle { |
|
anchors.bottom: parent.bottom |
|
height: _root.height * 0.05 |
|
width: _activeVehicle ? _activeVehicle.parameterManager.loadProgress * parent.width : 0 |
|
color: qgcPal.colorGreen |
|
visible: !largeProgressBar.visible |
|
} |
|
|
|
// Large parameter download progress bar |
|
Rectangle { |
|
id: largeProgressBar |
|
anchors.bottom: parent.bottom |
|
anchors.left: parent.left |
|
anchors.right: parent.right |
|
height: parent.height |
|
color: qgcPal.window |
|
visible: _showLargeProgress |
|
|
|
property bool _initialDownloadComplete: _activeVehicle ? _activeVehicle.parameterManager.parametersReady : true |
|
property bool _userHide: false |
|
property bool _showLargeProgress: !_initialDownloadComplete && !_userHide && qgcPal.globalTheme === QGCPalette.Light |
|
|
|
Connections { |
|
target: QGroundControl.multiVehicleManager |
|
onActiveVehicleChanged: largeProgressBar._userHide = false |
|
} |
|
|
|
Rectangle { |
|
anchors.top: parent.top |
|
anchors.bottom: parent.bottom |
|
width: _activeVehicle ? _activeVehicle.parameterManager.loadProgress * parent.width : 0 |
|
color: qgcPal.colorGreen |
|
} |
|
|
|
QGCLabel { |
|
anchors.centerIn: parent |
|
text: qsTr("Downloading Parameters") |
|
font.pointSize: ScreenTools.largeFontPointSize |
|
} |
|
|
|
QGCLabel { |
|
anchors.margins: _margin |
|
anchors.right: parent.right |
|
anchors.bottom: parent.bottom |
|
text: qsTr("Click anywhere to hide") |
|
|
|
property real _margin: ScreenTools.defaultFontPixelWidth / 2 |
|
} |
|
|
|
MouseArea { |
|
anchors.fill: parent |
|
onClicked: largeProgressBar._userHide = true |
|
} |
|
} |
|
}
|
|
|