MainToolBarIndicators.qml 6.06 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
        source:                 _outdoorPalette ? _brandImageOutdoor : _brandImageIndoor
95
        mipmap:                 true
96 97 98

        property bool   _outdoorPalette:        qgcPal.globalTheme === QGCPalette.Light
        property bool   _corePluginBranding:    QGroundControl.corePlugin.brandImageIndoor.length != 0
99 100
        property string _userBrandImageIndoor:  QGroundControl.settingsManager.brandImageSettings.userBrandImageIndoor.value
        property string _userBrandImageOutdoor: QGroundControl.settingsManager.brandImageSettings.userBrandImageOutdoor.value
101 102
        property bool   _userBrandingIndoor:    _userBrandImageIndoor.length != 0
        property bool   _userBrandingOutdoor:   _userBrandImageOutdoor.length != 0
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
        property string _brandImageIndoor:      _userBrandingIndoor ?
                                                    _userBrandImageIndoor : (_userBrandingOutdoor ?
                                                        _userBrandImageOutdoor : (_corePluginBranding ?
                                                            QGroundControl.corePlugin.brandImageIndoor : (_activeVehicle ?
                                                                _activeVehicle.brandImageIndoor : ""
                                                            )
                                                        )
                                                    )
        property string _brandImageOutdoor:     _userBrandingOutdoor ?
                                                    _userBrandImageOutdoor : (_userBrandingIndoor ?
                                                        _userBrandImageIndoor : (_corePluginBranding ?
                                                            QGroundControl.corePlugin.brandImageOutdoor : (_activeVehicle ?
                                                                _activeVehicle.brandImageOutdoor : ""
                                                            )
                                                        )
                                                    )
dogmaphobic's avatar
dogmaphobic committed
119
    }
dogmaphobic's avatar
dogmaphobic committed
120

Don Gagne's avatar
Don Gagne committed
121 122 123 124
    Row {
        anchors.fill:       parent
        layoutDirection:    Qt.RightToLeft
        spacing:            ScreenTools.defaultFontPixelWidth
125
        visible:            _communicationLost
Don Gagne's avatar
Don Gagne committed
126 127 128 129 130 131

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

Don Gagne's avatar
Don Gagne committed
135 136 137 138 139 140
        QGCLabel {
            id:                     connectionLost
            anchors.verticalCenter: parent.verticalCenter
            text:                   qsTr("COMMUNICATION LOST")
            font.pointSize:         ScreenTools.largeFontPointSize
            font.family:            ScreenTools.demiboldFontFamily
141
            color:                  qgcPal.colorRed
Don Gagne's avatar
Don Gagne committed
142
        }
143 144
    }
}