QGCInstrumentWidgetAlternate.qml 4.27 KB
Newer Older
1 2 3 4 5 6 7 8
/****************************************************************************
 *
 *   (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.
 *
 ****************************************************************************/
9 10 11 12 13 14 15 16


import QtQuick 2.4

import QGroundControl.Controls      1.0
import QGroundControl.ScreenTools   1.0
import QGroundControl.FactSystem    1.0
import QGroundControl.FlightMap     1.0
Don Gagne's avatar
Don Gagne committed
17
import QGroundControl.Palette       1.0
18 19 20

/// Instrument panel shown when virtual thumbsticks are visible
Rectangle {
Don Gagne's avatar
Don Gagne committed
21 22 23 24 25 26
    id:             root
    height:         _outerRadius * 2
    radius:         _outerRadius
    color:          qgcPal.window
    border.width:   1
    border.color:   lightBorders ? qgcPal.mapWidgetBorderLight : qgcPal.mapWidgetBorderDark
27 28 29 30 31 32

    property alias  heading:        compass.heading
    property alias  rollAngle:      attitude.rollAngle
    property alias  pitchAngle:     attitude.pitchAngle
    property real   size:           _defaultSize
    property bool   active:         false
Don Gagne's avatar
Don Gagne committed
33 34 35
    property bool   lightBorders:   true
    property var    qgcView
    property real   maxHeight
36 37 38 39 40 41 42 43 44

    property Fact   _emptyFact:         Fact { }
    property Fact   groundSpeedFact:    _emptyFact
    property Fact   airSpeedFact:       _emptyFact
    property Fact   altitudeFact:       _emptyFact

    property real   _innerRadius: (width - (_topBottomMargin * 3)) / 4
    property real   _outerRadius: _innerRadius + _topBottomMargin

45
    property real   _defaultSize:   ScreenTools.defaultFontPixelHeight * (9)
46 47

    property real   _sizeRatio:     ScreenTools.isTinyScreen ? (size / _defaultSize) * 0.5 : size / _defaultSize
48 49 50 51
    property real   _bigFontSize:   ScreenTools.defaultFontPointSize * 2.5  * _sizeRatio
    property real   _normalFontSize:ScreenTools.defaultFontPointSize * 1.5  * _sizeRatio
    property real   _labelFontSize: ScreenTools.defaultFontPointSize * 0.75 * _sizeRatio
    property real   _spacing:       ScreenTools.defaultFontPixelHeight * 0.33
52
    property real   _topBottomMargin: (size * 0.05) / 2
Don Gagne's avatar
Don Gagne committed
53 54 55
    property real   _availableValueHeight: maxHeight - (root.height + _valuesItem.anchors.topMargin)

    QGCPalette { id: qgcPal }
56 57 58 59 60 61

    QGCAttitudeWidget {
        id:                 attitude
        anchors.leftMargin: _topBottomMargin
        anchors.left:       parent.left
        size:               _innerRadius * 2
Don Gagne's avatar
Don Gagne committed
62
        active:             root.active
63 64 65 66 67 68 69 70
        anchors.verticalCenter: parent.verticalCenter
    }

    QGCCompassWidget {
        id:                 compass
        anchors.leftMargin: _spacing
        anchors.left:       attitude.right
        size:               _innerRadius * 2
Don Gagne's avatar
Don Gagne committed
71
        active:             root.active
72 73
        anchors.verticalCenter: parent.verticalCenter
    }
Don Gagne's avatar
Don Gagne committed
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117

    Image {
        id:                         gearThingy
        anchors.bottomMargin:       _topBottomMargin
        anchors.bottom:             parent.bottom
        anchors.horizontalCenter:   parent.horizontalCenter
        source:                     qgcPal.globalTheme == QGCPalette.Light ? "/res/gear-black.svg" : "/res/gear-white.svg"
        mipmap:                     true
        opacity:                    0.5
        width:                      root.height * 0.15
        sourceSize.width:           width
        fillMode:                   Image.PreserveAspectFit
    }

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

    Item {
        id:                 _valuesItem
        anchors.topMargin:  ScreenTools.defaultFontPixelHeight / 4
        anchors.top:        parent.bottom
        width:              parent.width
        height:             _valuesWidget.height

        Rectangle {
            anchors.fill:   _valuesWidget
            color:          qgcPal.window
        }

        InstrumentSwipeView {
            id:                 _valuesWidget
            anchors.margins:    1
            anchors.left:       parent.left
            anchors.right:      parent.right
            qgcView:            root.qgcView
            textColor:          qgcPal.text
            backgroundColor:    qgcPal.window
            maxHeight:          _availableValueHeight
        }
    }


118
}