Skip to content
QGCInstrumentWidget.qml 5.14 KiB
Newer Older
/****************************************************************************
 *
 *   (c) 2009-2016 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.
 *
 ****************************************************************************/
dogmaphobic's avatar
dogmaphobic committed


/**
 * @file
dogmaphobic's avatar
dogmaphobic committed
 *   @brief QGC Fly View Widgets
dogmaphobic's avatar
dogmaphobic committed
 *   @author Gus Grubba <mavlink@grubba.com>
 */

import QtQuick 2.7
import QGroundControl               1.0
Don Gagne's avatar
Don Gagne committed
import QGroundControl.Controls      1.0
import QGroundControl.ScreenTools   1.0
import QGroundControl.FactSystem    1.0
import QGroundControl.FlightMap     1.0
import QGroundControl.Palette       1.0
Don Gagne's avatar
Don Gagne committed
Item {
    id:     instrumentPanel
Don Gagne's avatar
Don Gagne committed
    height: instrumentColumn.y + instrumentColumn.height + _topBottomMargin
    width:  getPreferredInstrumentWidth()
dogmaphobic's avatar
dogmaphobic committed

    property var    _qgcView:           qgcView
    property real   _maxHeight:         maxHeight
    property real   _defaultSize:       ScreenTools.defaultFontPixelHeight * (9)
    property color  _backgroundColor:   qgcPal.window
dogmaphobic's avatar
dogmaphobic committed
    property real   _spacing:           ScreenTools.defaultFontPixelHeight * 0.33
    property real   _topBottomMargin:   (width * 0.05) / 2
    property real   _availableValueHeight: _maxHeight - (attitudeWidget.height + _spacer1.height + _spacer2.height + (_spacing * 4)) - (_showCompass ? compass.height : 0)
Don Gagne's avatar
Don Gagne committed
    property var    _activeVehicle:     QGroundControl.multiVehicleManager.activeVehicle

dogmaphobic's avatar
dogmaphobic committed
    readonly property bool _showCompass:    true // !ScreenTools.isShortScreen
Don Gagne's avatar
Don Gagne committed

    QGCPalette { id: qgcPal }

Don Gagne's avatar
Don Gagne committed
    Rectangle {
        anchors.left:   parent.left
        anchors.right:  parent.right
        height:         (_showCompass ? instrumentColumn.height : attitudeWidget.height) + (_topBottomMargin * 2)
        radius:         width / 2
Don Gagne's avatar
Don Gagne committed
        color:          _backgroundColor
        border.width:   1
        border.color:   _isSatellite ? qgcPal.mapWidgetBorderLight : qgcPal.mapWidgetBorderDark
Don Gagne's avatar
Don Gagne committed
    }

    MouseArea {
        anchors.fill: parent
        onClicked: _valuesWidget.showPicker()
    }

Don Gagne's avatar
Don Gagne committed
    Column {
        id:                 instrumentColumn
        anchors.topMargin:  _topBottomMargin
        anchors.top:        parent.top
        anchors.left:       parent.left
        anchors.right:      parent.right
        spacing:            _spacing

        Item {
            width:  parent.width
            height: attitudeWidget.height

            QGCAttitudeWidget {
                id:             attitudeWidget
                size:           parent.width * 0.95
                vehicle:        _activeVehicle
Don Gagne's avatar
Don Gagne committed
                anchors.horizontalCenter: parent.horizontalCenter
            }

            Image {
                id:                 gearThingy
                anchors.bottom:     attitudeWidget.bottom
                anchors.right:      attitudeWidget.right
dogmaphobic's avatar
dogmaphobic committed
                source:             qgcPal.globalTheme == QGCPalette.Light ? "/res/gear-black.svg" : "/res/gear-white.svg"
Don Gagne's avatar
Don Gagne committed
                mipmap:             true
                opacity:            0.5
                width:              attitudeWidget.width * 0.15
dogmaphobic's avatar
dogmaphobic committed
                sourceSize.width:   width
Don Gagne's avatar
Don Gagne committed
                fillMode:           Image.PreserveAspectFit
                MouseArea {
                    anchors.fill:   parent
                    hoverEnabled:   true
                    onEntered:      gearThingy.opacity = 0.85
                    onExited:       gearThingy.opacity = 0.5
                    onClicked:      _valuesWidget.showPicker()
                }
            }
Don Gagne's avatar
Don Gagne committed
        Rectangle {
            id:                 _spacer1
            height:             1
            width:              parent.width * 0.9
            color:              qgcPal.text
Don Gagne's avatar
Don Gagne committed
            anchors.horizontalCenter: parent.horizontalCenter
        }
Don Gagne's avatar
Don Gagne committed
        Item {
            width:  parent.width
            height: _valuesWidget.height

            Rectangle {
                anchors.fill:   _valuesWidget
                color:          _backgroundColor
Don Gagne's avatar
Don Gagne committed
                visible:        !_showCompass
Don Gagne's avatar
Don Gagne committed
                radius:         _spacing
            }

            InstrumentSwipeView {
                id:                 _valuesWidget
                anchors.margins:    1
                anchors.left:       parent.left
                anchors.right:      parent.right
                qgcView:            instrumentPanel._qgcView
                textColor:          qgcPal.text
Don Gagne's avatar
Don Gagne committed
                backgroundColor:    _backgroundColor
                maxHeight:          _availableValueHeight
            }
        }
Don Gagne's avatar
Don Gagne committed
            id:                 _spacer2
            height:             1
            width:              parent.width * 0.9
            color:              qgcPal.text
Don Gagne's avatar
Don Gagne committed
            visible:            _showCompass
            anchors.horizontalCenter: parent.horizontalCenter
Don Gagne's avatar
Don Gagne committed
        QGCCompassWidget {
            id:                 compass
            size:               parent.width * 0.95
            visible:            _showCompass
            vehicle:            _activeVehicle
Don Gagne's avatar
Don Gagne committed
            anchors.horizontalCenter: parent.horizontalCenter
        }