/*===================================================================== QGroundControl Open Source Ground Control Station (c) 2009, 2015 QGROUNDCONTROL PROJECT This file is part of the QGROUNDCONTROL project QGROUNDCONTROL is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. QGROUNDCONTROL is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with QGROUNDCONTROL. If not, see . ======================================================================*/ /** * @file * @brief QGC Fly View Widgets * @author Gus Grubba */ import QtQuick 2.4 import QGroundControl.Controls 1.0 import QGroundControl.ScreenTools 1.0 import QGroundControl.FactSystem 1.0 Item { id: root height: size signal clicked property alias heading: compass.heading property alias rollAngle: attitude.rollAngle property alias pitchAngle: attitude.pitchAngle property real size: _defaultSize property bool isSatellite: false property bool active: false property Fact _emptyFact: Fact { } property Fact groundSpeedFact: _emptyFact property Fact airSpeedFact: _emptyFact property Fact altitudeFact: _emptyFact property real _defaultSize: ScreenTools.defaultFontPixelSize * (9) property real _sizeRatio: ScreenTools.isTinyScreen ? (size / _defaultSize) * 0.5 : size / _defaultSize property real _bigFontSize: ScreenTools.defaultFontPixelSize * 2.5 * _sizeRatio property real _normalFontSize:ScreenTools.defaultFontPixelSize * 1.5 * _sizeRatio property real _labelFontSize: ScreenTools.defaultFontPixelSize * 0.75 * _sizeRatio //-- Instrument Panel Rectangle { id: instrumentPanel height: instruments.height + (size * 0.05) width: root.size radius: root.size / 2 color: isSatellite ? Qt.rgba(1,1,1,0.75) : Qt.rgba(0,0,0,0.75) anchors.right: parent.right anchors.verticalCenter: parent.verticalCenter Column { id: instruments width: parent.width spacing: ScreenTools.defaultFontPixelSize * 0.33 anchors.verticalCenter: parent.verticalCenter //-- Attitude Indicator QGCAttitudeWidget { id: attitude size: parent.width * 0.95 active: root.active anchors.horizontalCenter: parent.horizontalCenter } //-- Altitude Rectangle { height: 1 width: parent.width * 0.9 color: isSatellite ? Qt.rgba(0,0,0,0.25) : Qt.rgba(1,1,1,0.25) anchors.horizontalCenter: parent.horizontalCenter } QGCLabel { text: altitudeFact.shortDescription + " (" + altitudeFact.units + ")" font.pixelSize: _labelFontSize width: parent.width height: _labelFontSize color: isSatellite ? "black" : "white" horizontalAlignment: TextEdit.AlignHCenter } QGCLabel { text: altitudeFact.valueString font.pixelSize: _bigFontSize font.weight: Font.DemiBold width: parent.width color: isSatellite ? "black" : "white" horizontalAlignment: TextEdit.AlignHCenter } //-- Ground Speed Rectangle { height: 1 width: parent.width * 0.9 color: isSatellite ? Qt.rgba(0,0,0,0.25) : Qt.rgba(1,1,1,0.25) anchors.horizontalCenter: parent.horizontalCenter visible: airSpeedFact.value <= 0 && !ScreenTools.isTinyScreen } QGCLabel { text: groundSpeedFact.shortDescription + " (" + groundSpeedFact.units + ")" font.pixelSize: _labelFontSize width: parent.width height: _labelFontSize color: isSatellite ? "black" : "white" horizontalAlignment: TextEdit.AlignHCenter visible: airSpeedFact.value <= 0 && !ScreenTools.isTinyScreen } QGCLabel { text: groundSpeedFact.valueString font.pixelSize: _normalFontSize font.weight: Font.DemiBold width: parent.width color: isSatellite ? "black" : "white" horizontalAlignment: TextEdit.AlignHCenter visible: airSpeedFact.value <= 0 && !ScreenTools.isTinyScreen } //-- Air Speed Rectangle { height: 1 width: parent.width * 0.9 color: isSatellite ? Qt.rgba(0,0,0,0.25) : Qt.rgba(1,1,1,0.25) anchors.horizontalCenter: parent.horizontalCenter visible: airSpeedFact.value > 0 && !ScreenTools.isTinyScreen } QGCLabel { text: airSpeedFact.shortDescription + " (" + airSpeedFact.units + ")" font.pixelSize: _labelFontSize width: parent.width height: _labelFontSize color: isSatellite ? "black" : "white" visible: airSpeedFact.value > 0 && !ScreenTools.isTinyScreen horizontalAlignment: TextEdit.AlignHCenter } QGCLabel { text: airSpeedFact.valueString font.pixelSize: _normalFontSize font.weight: Font.DemiBold width: parent.width color: isSatellite ? "black" : "white" visible: airSpeedFact.value > 0 && !ScreenTools.isTinyScreen horizontalAlignment: TextEdit.AlignHCenter } //-- Compass Rectangle { height: 1 width: parent.width * 0.9 color: isSatellite ? Qt.rgba(0,0,0,0.25) : Qt.rgba(1,1,1,0.25) anchors.horizontalCenter: parent.horizontalCenter } QGCCompassWidget { id: compass size: parent.width * 0.95 active: root.active anchors.horizontalCenter: parent.horizontalCenter } } MouseArea { anchors.fill: parent onClicked: { onClicked: root.clicked() } } } }