/**************************************************************************** * * (c) 2009-2020 QGROUNDCONTROL PROJECT * * 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 <<<<<<< HEAD <<<<<<< HEAD signal showSettingsView signal showSetupView signal showPlanView signal showWimaView signal showFlyView signal showAnalyzeView signal armVehicle signal disarmVehicle signal vtolTransitionToFwdFlight signal vtolTransitionToMRFlight function checkSettingsButton() { settingsButton.checked = true } function checkSetupButton() { setupButton.checked = true } function checkPlanButton() { planButton.checked = true } function checkWimaButton() { wimaButton.checked = true } function checkFlyButton() { flyButton.checked = true } function checkAnalyzeButton() { analyzeButton.checked = true } Component.onCompleted: { //-- TODO: Get this from the actual state flyButton.checked = true } // Prevent all clicks from going through to lower layers DeadMouseArea { anchors.fill: parent } ======= property var _activeVehicle: QGroundControl.multiVehicleManager.activeVehicle property bool _communicationLost: _activeVehicle ? _activeVehicle.vehicleLinkManager.communicationLost : false property color _mainStatusBGColor: qgcPal.brandingPurple QGCPalette { id: qgcPal } >>>>>>> upstream_merge ======= property var _activeVehicle: QGroundControl.multiVehicleManager.activeVehicle property bool _communicationLost: _activeVehicle ? _activeVehicle.vehicleLinkManager.communicationLost : false property color _mainStatusBGColor: qgcPal.brandingPurple QGCPalette { id: qgcPal } >>>>>>> upstream_merge /// 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 <<<<<<< HEAD <<<<<<< HEAD anchors.rightMargin: ScreenTools.defaultFontPixelWidth / 2 anchors.fill: parent spacing: ScreenTools.defaultFontPixelWidth * 2 //--------------------------------------------- // Toolbar Row Row { id: viewRow Layout.fillHeight: true spacing: ScreenTools.defaultFontPixelWidth / 2 ExclusiveGroup { id: mainActionGroup } QGCToolBarButton { id: settingsButton anchors.top: parent.top anchors.bottom: parent.bottom exclusiveGroup: mainActionGroup source: "/res/QGCLogoWhite" logo: true onClicked: toolBar.showSettingsView() visible: !QGroundControl.corePlugin.options.combineSettingsAndSetup } QGCToolBarButton { id: setupButton anchors.top: parent.top anchors.bottom: parent.bottom exclusiveGroup: mainActionGroup source: "/qmlimages/Gears.svg" onClicked: toolBar.showSetupView() } QGCToolBarButton { id: planButton anchors.top: parent.top anchors.bottom: parent.bottom exclusiveGroup: mainActionGroup source: "/qmlimages/Plan.svg" onClicked: toolBar.showPlanView() } QGCToolBarButton { id: flyButton anchors.top: parent.top anchors.bottom: parent.bottom exclusiveGroup: mainActionGroup source: "/qmlimages/PaperPlane.svg" onClicked: toolBar.showFlyView() } QGCToolBarButton { id: wimaButton anchors.top: parent.top anchors.bottom: parent.bottom exclusiveGroup: mainActionGroup source: "/res/waves.svg" onClicked: toolBar.showWimaView() } QGCToolBarButton { id: analyzeButton anchors.top: parent.top anchors.bottom: parent.bottom exclusiveGroup: mainActionGroup source: "/qmlimages/Analyze.svg" visible: !ScreenTools.isMobile && QGroundControl.corePlugin.showAdvancedUI onClicked: toolBar.showAnalyzeView() } ======= ======= >>>>>>> upstream_merge 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 } <<<<<<< HEAD >>>>>>> upstream_merge ======= >>>>>>> upstream_merge MainStatusIndicator { Layout.preferredHeight: viewButtonRow.height visible: currentToolbar === flyViewToolbar } QGCButton { id: disconnectButton text: qsTr("Disconnect") onClicked: _activeVehicle.closeVehicle() 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: brandImageIndoor() property string _brandImageOutdoor: brandImageOutdoor() function brandImageIndoor() { if (_userBrandingIndoor) { return _userBrandImageIndoor } else { if (_userBrandingOutdoor) { return _userBrandingOutdoor } else { if (_corePluginBranding) { return QGroundControl.corePlugin.brandImageIndoor } else { return _activeVehicle ? _activeVehicle.brandImageIndoor : "" } } } } function brandImageOutdoor() { if (_userBrandingOutdoor) { return _userBrandingOutdoor } else { if (_userBrandingIndoor) { return _userBrandingIndoor } else { if (_corePluginBranding) { return QGroundControl.corePlugin.brandImageOutdoor } else { return _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 } } }