SetupPage.qml 3.74 KB
Newer Older
Don Gagne's avatar
Don Gagne committed
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.Controls 1.2
Don Gagne's avatar
Don Gagne committed
12 13 14 15 16 17 18 19 20 21 22 23
import QtQuick.Dialogs  1.2

import QGroundControl               1.0
import QGroundControl.FactSystem    1.0
import QGroundControl.FactControls  1.0
import QGroundControl.Palette       1.0
import QGroundControl.Controls      1.0
import QGroundControl.ScreenTools   1.0
import QGroundControl.Controllers   1.0

/// Base view control for all Setup pages
QGCView {
Gus Grubba's avatar
Gus Grubba committed
24 25
    id:             setupView
    viewPanel:      setupPanel
26
    enabled:        !_disableDueToArmed && !_disableDueToFlying
Don Gagne's avatar
Don Gagne committed
27

28
    property alias  pageComponent:      pageLoader.sourceComponent
29 30
    property string pageName:           vehicleComponent ? vehicleComponent.name : ""
    property string pageDescription:    vehicleComponent ? vehicleComponent.description : ""
31 32
    property real   availableWidth:     width - pageLoader.x
    property real   availableHeight:    height - pageLoader.y
Don Gagne's avatar
Don Gagne committed
33

34 35 36 37 38 39
    property var    _activeVehicle:         QGroundControl.multiVehicleManager.activeVehicle
    property bool   _vehicleArmed:          _activeVehicle ? _activeVehicle.armed : false
    property bool   _vehicleFlying:         _activeVehicle ? _activeVehicle.flying : false
    property bool   _disableDueToArmed:     vehicleComponent ? (!vehicleComponent.allowSetupWhileArmed && _vehicleArmed) : false
    property bool   _disableDueToFlying:    vehicleComponent ? (!vehicleComponent.allowSetupWhileFlying && _vehicleFlying) : false
    property string _disableReason:         _disableDueToArmed ? qsTr("armed") : qsTr("flying")
Don Gagne's avatar
Don Gagne committed
40

Gus Grubba's avatar
Gus Grubba committed
41
    property real _margins:             ScreenTools.defaultFontPixelHeight * 0.5
Gus Grubba's avatar
Gus Grubba committed
42 43
    property string _pageTitle:         qsTr("%1 Setup").arg(pageName)

Don Gagne's avatar
Don Gagne committed
44 45 46 47 48 49 50 51
    QGCPalette { id: qgcPal; colorGroupEnabled: setupPanel.enabled }

    QGCViewPanel {
        id:             setupPanel
        anchors.fill:   parent

        QGCFlickable {
            anchors.fill:   parent
52 53
            contentWidth:   pageLoader.x + pageLoader.item.width
            contentHeight:  pageLoader.y + pageLoader.item.height
Don Gagne's avatar
Don Gagne committed
54 55 56
            clip:           true

            Column {
Gus Grubba's avatar
Gus Grubba committed
57 58 59
                id:                 headingColumn
                width:              setupPanel.width
                spacing:            _margins
Don Gagne's avatar
Don Gagne committed
60 61 62

                QGCLabel {
                    font.pointSize: ScreenTools.largeFontPointSize
63
                    text:           !setupView.enabled ? _pageTitle + "<font color=\"red\">" + qsTr(" (Disabled while the vehicle is %1)").arg(_disableReason) + "</font>" : _pageTitle
Don Gagne's avatar
Don Gagne committed
64 65 66 67 68 69 70
                    visible:        !ScreenTools.isShortScreen
                }

                QGCLabel {
                    anchors.left:   parent.left
                    anchors.right:  parent.right
                    wrapMode:       Text.WordWrap
71
                    text:           pageDescription
Don Gagne's avatar
Don Gagne committed
72 73 74 75 76
                    visible:        !ScreenTools.isShortScreen
                }
            }

            Loader {
77
                id:                 pageLoader
Don Gagne's avatar
Don Gagne committed
78 79 80
                anchors.topMargin:  _margins
                anchors.top:        headingColumn.bottom
            }
Gus Grubba's avatar
Gus Grubba committed
81 82 83
            // Overlay to display when vehicle is armed and this setup page needs
            // to be disabled
            Rectangle {
84
                visible:            !setupView.enabled
Gus Grubba's avatar
Gus Grubba committed
85 86 87 88
                anchors.fill:       pageLoader
                color:              "black"
                opacity:            0.5
            }
Don Gagne's avatar
Don Gagne committed
89 90 91
        }
    }
}