MainToolBarIndicators.qml 4.64 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
import QtQuick          2.3
import QtQuick.Controls 1.2
import QtQuick.Layouts  1.2
Donald Gagne's avatar
Donald Gagne committed
13
import QtQuick.Dialogs  1.2
dogmaphobic's avatar
dogmaphobic committed
14

Don Gagne's avatar
Don Gagne committed
15 16 17 18 19
import QGroundControl                       1.0
import QGroundControl.Controls              1.0
import QGroundControl.MultiVehicleManager   1.0
import QGroundControl.ScreenTools           1.0
import QGroundControl.Palette               1.0
dogmaphobic's avatar
dogmaphobic committed
20

Don Gagne's avatar
Don Gagne committed
21
Item {
Donald Gagne's avatar
Donald Gagne committed
22 23
    property var  _activeVehicle:       QGroundControl.multiVehicleManager.activeVehicle
    property bool _communicationLost:   _activeVehicle ? _activeVehicle.connectionLost : false
dogmaphobic's avatar
dogmaphobic committed
24

Don Gagne's avatar
Don Gagne committed
25 26
    QGCPalette { id: qgcPal }

DonLakeFlyer's avatar
DonLakeFlyer committed
27 28 29 30
    // Easter egg mechanism
    MouseArea {
        anchors.fill: parent
        onClicked: {
Donald Gagne's avatar
Donald Gagne committed
31
            _clickCount++
DonLakeFlyer's avatar
DonLakeFlyer committed
32
            eggTimer.restart()
Donald Gagne's avatar
Donald Gagne committed
33 34
            if (_clickCount == 5 && !QGroundControl.corePlugin.showAdvancedUI) {
                advancedModeConfirmation.visible = true
DonLakeFlyer's avatar
DonLakeFlyer committed
35 36 37 38 39 40 41 42 43 44 45 46
            } else if (_clickCount == 7) {
                QGroundControl.corePlugin.showTouchAreas = true
            }
        }

        property int _clickCount: 0

        Timer {
            id:             eggTimer
            interval:       1000
            onTriggered:    parent._clickCount = 0
        }
Donald Gagne's avatar
Donald Gagne committed
47 48 49 50 51 52 53 54 55 56 57 58

        MessageDialog {
            id:                 advancedModeConfirmation
            title:              qsTr("Advanced Mode")
            text:               QGroundControl.corePlugin.showAdvancedUIMessage
            standardButtons:    StandardButton.Yes | StandardButton.No

            onYes: {
                QGroundControl.corePlugin.showAdvancedUI = true
                visible = false
            }
        }
DonLakeFlyer's avatar
DonLakeFlyer committed
59 60
    }

61 62 63 64 65 66
    QGCLabel {
        id:                     waitForVehicle
        anchors.verticalCenter: parent.verticalCenter
        text:                   qsTr("Waiting For Vehicle Connection")
        font.pointSize:         ScreenTools.mediumFontPointSize
        font.family:            ScreenTools.demiboldFontFamily
67
        color:                  qgcPal.colorRed
68 69 70
        visible:                !_activeVehicle
    }

Don Gagne's avatar
Don Gagne committed
71 72 73 74 75
    Row {
        id:             indicatorRow
        anchors.top:    parent.top
        anchors.bottom: parent.bottom
        spacing:        ScreenTools.defaultFontPixelWidth * 1.5
76 77
        visible:        _activeVehicle && !_communicationLost

78
        Repeater {
79
            model:      _activeVehicle ? _activeVehicle.toolBarIndicators : []
80
            Loader {
Don Gagne's avatar
Don Gagne committed
81 82
                anchors.top:    parent.top
                anchors.bottom: parent.bottom
83
                source:         modelData;
dogmaphobic's avatar
dogmaphobic committed
84 85
            }
        }
86
    }
Don Gagne's avatar
Don Gagne committed
87 88 89 90 91

    Image {
        anchors.right:          parent.right
        anchors.top:            parent.top
        anchors.bottom:         parent.bottom
92
        visible:                x > indicatorRow.width && !_communicationLost
Don Gagne's avatar
Don Gagne committed
93
        fillMode:               Image.PreserveAspectFit
94 95 96 97 98 99
        source:                 _outdoorPalette ? _brandImageOutdoor : _brandImageIndoor

        property bool   _outdoorPalette:        qgcPal.globalTheme === QGCPalette.Light
        property bool   _corePluginBranding:    QGroundControl.corePlugin.brandImageIndoor.length != 0
        property string _brandImageIndoor:      _corePluginBranding ? QGroundControl.corePlugin.brandImageIndoor : (_activeVehicle ? _activeVehicle.brandImageIndoor : "")
        property string _brandImageOutdoor:     _corePluginBranding ? QGroundControl.corePlugin.brandImageOutdoor : (_activeVehicle ? _activeVehicle.brandImageOutdoor : "")
dogmaphobic's avatar
dogmaphobic committed
100
    }
dogmaphobic's avatar
dogmaphobic committed
101

Don Gagne's avatar
Don Gagne committed
102 103 104 105
    Row {
        anchors.fill:       parent
        layoutDirection:    Qt.RightToLeft
        spacing:            ScreenTools.defaultFontPixelWidth
106
        visible:            _communicationLost
Don Gagne's avatar
Don Gagne committed
107 108 109 110 111 112

        QGCButton {
            id:                     disconnectButton
            anchors.verticalCenter: parent.verticalCenter
            text:                   qsTr("Disconnect")
            primary:                true
113
            onClicked:              _activeVehicle.disconnectInactiveVehicle()
Don Gagne's avatar
Don Gagne committed
114
        }
dogmaphobic's avatar
dogmaphobic committed
115

Don Gagne's avatar
Don Gagne committed
116 117 118 119 120 121
        QGCLabel {
            id:                     connectionLost
            anchors.verticalCenter: parent.verticalCenter
            text:                   qsTr("COMMUNICATION LOST")
            font.pointSize:         ScreenTools.largeFontPointSize
            font.family:            ScreenTools.demiboldFontFamily
122
            color:                  qgcPal.colorRed
Don Gagne's avatar
Don Gagne committed
123
        }
124 125
    }
}