QGCInstrumentWidget.qml 5.14 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.
 *
 ****************************************************************************/
dogmaphobic's avatar
dogmaphobic committed
9 10 11 12


/**
 * @file
dogmaphobic's avatar
dogmaphobic committed
13
 *   @brief QGC Fly View Widgets
dogmaphobic's avatar
dogmaphobic committed
14 15 16 17 18
 *   @author Gus Grubba <mavlink@grubba.com>
 */

import QtQuick 2.4

19
import QGroundControl               1.0
Don Gagne's avatar
Don Gagne committed
20 21 22
import QGroundControl.Controls      1.0
import QGroundControl.ScreenTools   1.0
import QGroundControl.FactSystem    1.0
23
import QGroundControl.FlightMap     1.0
24
import QGroundControl.Palette       1.0
dogmaphobic's avatar
dogmaphobic committed
25

Don Gagne's avatar
Don Gagne committed
26
Item {
27
    id:     instrumentPanel
Don Gagne's avatar
Don Gagne committed
28
    height: instrumentColumn.y + instrumentColumn.height + _topBottomMargin
29
    width:  getPreferredInstrumentWidth()
dogmaphobic's avatar
dogmaphobic committed
30

31 32 33
    property var    _qgcView:           qgcView
    property real   _maxHeight:         maxHeight
    property real   _defaultSize:       ScreenTools.defaultFontPixelHeight * (9)
34
    property color  _backgroundColor:   qgcPal.window
35
    property real   _spacing:           ScreenTools.defaultFontPixelHeight * 0.33
36 37
    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
38 39
    property var    _activeVehicle:     QGroundControl.multiVehicleManager.activeVehicle

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

42 43
    QGCPalette { id: qgcPal }

Don Gagne's avatar
Don Gagne committed
44 45 46 47
    Rectangle {
        anchors.left:   parent.left
        anchors.right:  parent.right
        height:         (_showCompass ? instrumentColumn.height : attitudeWidget.height) + (_topBottomMargin * 2)
48
        radius:         width / 2
Don Gagne's avatar
Don Gagne committed
49
        color:          _backgroundColor
50
        border.width:   1
51
        border.color:   _isSatellite ? qgcPal.mapWidgetBorderLight : qgcPal.mapWidgetBorderDark
Don Gagne's avatar
Don Gagne committed
52
    }
53 54 55 56 57 58

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

Don Gagne's avatar
Don Gagne committed
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
    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
74
                vehicle:        _activeVehicle
Don Gagne's avatar
Don Gagne committed
75 76 77 78 79 80 81
                anchors.horizontalCenter: parent.horizontalCenter
            }

            Image {
                id:                 gearThingy
                anchors.bottom:     attitudeWidget.bottom
                anchors.right:      attitudeWidget.right
dogmaphobic's avatar
dogmaphobic committed
82
                source:             qgcPal.globalTheme == QGCPalette.Light ? "/res/gear-black.svg" : "/res/gear-white.svg"
Don Gagne's avatar
Don Gagne committed
83 84 85
                mipmap:             true
                opacity:            0.5
                width:              attitudeWidget.width * 0.15
dogmaphobic's avatar
dogmaphobic committed
86
                sourceSize.width:   width
Don Gagne's avatar
Don Gagne committed
87 88 89 90 91 92 93 94 95
                fillMode:           Image.PreserveAspectFit
                MouseArea {
                    anchors.fill:   parent
                    hoverEnabled:   true
                    onEntered:      gearThingy.opacity = 0.85
                    onExited:       gearThingy.opacity = 0.5
                    onClicked:      _valuesWidget.showPicker()
                }
            }
96
        }
97

Don Gagne's avatar
Don Gagne committed
98 99 100 101
        Rectangle {
            id:                 _spacer1
            height:             1
            width:              parent.width * 0.9
102
            color:              qgcPal.text
Don Gagne's avatar
Don Gagne committed
103 104
            anchors.horizontalCenter: parent.horizontalCenter
        }
105

Don Gagne's avatar
Don Gagne committed
106 107 108 109 110 111 112
        Item {
            width:  parent.width
            height: _valuesWidget.height

            Rectangle {
                anchors.fill:   _valuesWidget
                color:          _backgroundColor
Don Gagne's avatar
Don Gagne committed
113
                visible:        !_showCompass
Don Gagne's avatar
Don Gagne committed
114 115 116 117 118
                radius:         _spacing
            }

            InstrumentSwipeView {
                id:                 _valuesWidget
119 120 121
                anchors.margins:    1
                anchors.left:       parent.left
                anchors.right:      parent.right
122
                qgcView:            instrumentPanel._qgcView
123
                textColor:          qgcPal.text
Don Gagne's avatar
Don Gagne committed
124 125 126 127
                backgroundColor:    _backgroundColor
                maxHeight:          _availableValueHeight
            }
        }
128

129
        Rectangle {
Don Gagne's avatar
Don Gagne committed
130 131 132
            id:                 _spacer2
            height:             1
            width:              parent.width * 0.9
133
            color:              qgcPal.text
Don Gagne's avatar
Don Gagne committed
134 135
            visible:            _showCompass
            anchors.horizontalCenter: parent.horizontalCenter
136 137
        }

Don Gagne's avatar
Don Gagne committed
138 139 140 141
        QGCCompassWidget {
            id:                 compass
            size:               parent.width * 0.95
            visible:            _showCompass
142
            vehicle:            _activeVehicle
Don Gagne's avatar
Don Gagne committed
143 144
            anchors.horizontalCenter: parent.horizontalCenter
        }
145
    }
dogmaphobic's avatar
dogmaphobic committed
146
}