VehicleHealthWidget.qml 2.46 KB
Newer Older
1 2 3 4 5 6 7 8 9
/****************************************************************************
 *
 *   (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.
 *
 ****************************************************************************/

10 11
import QtQuick          2.3
import QtQuick.Layouts  1.2
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

import QGroundControl               1.0
import QGroundControl.Controls      1.0
import QGroundControl.ScreenTools   1.0

QGCFlickable {
    id:                 _root
    height:             Math.min(maxHeight, healthColumn.y + healthColumn.height)
    contentHeight:      healthColumn.y + healthColumn.height
    flickableDirection: Flickable.VerticalFlick
    clip:               true

    property var    qgcView
    property color  textColor
    property var    maxHeight

    property var    unhealthySensors:   QGroundControl.multiVehicleManager.activeVehicle ? QGroundControl.multiVehicleManager.activeVehicle.unhealthySensors : [ ]

    // Any time the unhealthy sensors list changes, switch to the health page
    onUnhealthySensorsChanged: {
        if (unhealthySensors.length != 0) {
            showPage(1)
        }
    }

Don Gagne's avatar
Don Gagne committed
37 38 39 40 41
    MouseArea {
        anchors.fill:   parent
        onClicked:      showNextPage()
    }

42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
    Column {
        id:     healthColumn
        width:  parent.width

        QGCLabel {
            width:                  parent.width
            horizontalAlignment:    Text.AlignHCenter
            color:                  textColor
            text:                   qsTr("Vehicle Health")
        }

        QGCLabel {
            width:                  parent.width
            horizontalAlignment:    Text.AlignHCenter
            color:                  textColor
            text:                   qsTr("All systems healthy")
            visible:                healthRepeater.count == 0
        }

        Repeater {
            id:     healthRepeater
            model:  unhealthySensors

            Row {
                Image {
                    source:             "/qmlimages/Yield.svg"
                    height:             ScreenTools.defaultFontPixelHeight
                    sourceSize.height:  height
                    fillMode:           Image.PreserveAspectFit
                }

                QGCLabel {
                    color:  textColor
                    text:   modelData
                }
            }
        }
    }
}