Skip to content
Snippets Groups Projects
MessageIndicator.qml 2.54 KiB
Newer Older
  • Learn to ignore specific revisions
  • /****************************************************************************
     *
     *   (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.
     *
     ****************************************************************************/
    
    
    
    import QtQuick          2.3
    import QtQuick.Controls 1.2
    import QtQuick.Layouts  1.2
    
    
    import QGroundControl                       1.0
    import QGroundControl.Controls              1.0
    import QGroundControl.MultiVehicleManager   1.0
    import QGroundControl.ScreenTools           1.0
    import QGroundControl.Palette               1.0
    
    //-------------------------------------------------------------------------
    //-- GPS Indicator
    Item {
        width:          height
        anchors.top:    parent.top
        anchors.bottom: parent.bottom
    
    
        property var    _activeVehicle:         QGroundControl.multiVehicleManager.activeVehicle
        property bool   _isMessageImportant:    _activeVehicle ? !_activeVehicle.messageTypeNormal && !_activeVehicle.messageTypeNone : false
    
        function getMessageColor() {
    
            if (_activeVehicle) {
                if (_activeVehicle.messageTypeNone)
    
                    return qgcPal.colorGrey
    
                if (_activeVehicle.messageTypeNormal)
    
                    return qgcPal.colorBlue;
    
                if (_activeVehicle.messageTypeWarning)
    
                    return qgcPal.colorOrange;
    
                if (_activeVehicle.messageTypeError)
    
                    return qgcPal.colorRed;
    
                // Cannot be so make make it obnoxious to show error
                console.log("Invalid vehicle message type")
                return "purple";
            }
            //-- It can only get here when closing (vehicle gone while window active)
            return "white";
        }
    
        Image {
            id:                 criticalMessageIcon
            anchors.fill:       parent
            source:             "/qmlimages/Yield.svg"
            sourceSize.height:  height
            fillMode:           Image.PreserveAspectFit
            cache:              false
    
            visible:            _activeVehicle && _activeVehicle.messageCount > 0 && _isMessageImportant
    
        }
    
        QGCColoredImage {
            anchors.fill:       parent
            source:             "/qmlimages/Megaphone.svg"
            sourceSize.height:  height
            fillMode:           Image.PreserveAspectFit
            color:              getMessageColor()
            visible:            !criticalMessageIcon.visible
        }
    
        MouseArea {
            anchors.fill:   parent
            onClicked:      mainWindow.showMessageArea()
        }
    }