FlightFeature.qml 3.63 KB
Newer Older
1 2 3 4 5 6 7
import QtQuick                  2.3
import QtQuick.Controls         1.2
import QtQuick.Controls.Styles  1.4
import QtQuick.Dialogs          1.2
import QtQml                    2.2

import QGroundControl                   1.0
8 9
import QGroundControl.Airmap            1.0
import QGroundControl.Airspace          1.0
10 11
import QGroundControl.Controls          1.0
import QGroundControl.Palette           1.0
12
import QGroundControl.ScreenTools       1.0
13 14 15 16 17 18
import QGroundControl.SettingsManager   1.0

Rectangle {
    id:                         _root
    height:                     questionCol.height + (ScreenTools.defaultFontPixelHeight * 1.25)
    color:                      qgcPal.windowShade
19
    property var feature:       null
20 21 22 23 24
    QGCPalette {
        id: qgcPal
        colorGroupEnabled: enabled
    }
    Column {
25 26 27 28 29 30
        id:                 questionCol
        spacing:            ScreenTools.defaultFontPixelHeight * 0.5
        anchors.margins:    ScreenTools.defaultFontPixelWidth
        anchors.right:      parent.right
        anchors.left:       parent.left
        anchors.verticalCenter: parent.verticalCenter
31
        QGCLabel {
32
            text:           feature ? feature.description : ""
33 34 35
            anchors.right:  parent.right
            anchors.left:   parent.left
            wrapMode:       Text.WordWrap
36
            visible:        feature ?  (feature.type !== AirspaceRuleFeature.Boolean) : false
37 38
        }
        QGCTextField {
39 40
            text:           feature ? (feature.value ? feature.value : "") : ""
            visible:        feature ? (feature.type !== AirspaceRuleFeature.Boolean) : false
Gus Grubba's avatar
Gus Grubba committed
41 42
            showUnits:      true
            unitsLabel: {
43 44 45 46 47 48 49 50
                if(feature) {
                    if(feature.unit == AirspaceRuleFeature.Kilogram)
                        return "kg";
                    if(feature.unit == AirspaceRuleFeature.Meters)
                        return "m";
                    if(feature.unit == AirspaceRuleFeature.MetersPerSecond)
                        return "m/s";
                }
Gus Grubba's avatar
Gus Grubba committed
51 52
                return ""
            }
53 54
            anchors.right:  parent.right
            anchors.left:   parent.left
55
            inputMethodHints: feature ? (feature.type === AirspaceRuleFeature.Float ? Qt.ImhFormattedNumbersOnly : Qt.ImhNone) : Qt.ImhNone
56
            onAccepted: {
57 58
                if(feature)
                    feature.value = parseFloat(text)
59 60
            }
            onEditingFinished: {
61 62
                if(feature)
                    feature.value = parseFloat(text)
63 64 65 66 67 68
            }
        }
        Item {
            height:         Math.max(checkBox.height, label.height)
            anchors.right:  parent.right
            anchors.left:   parent.left
69
            visible:        feature ? (feature.type === AirspaceRuleFeature.Boolean) : false
70 71 72
            QGCCheckBox {
                id:             checkBox
                text:           ""
73
                onClicked:      { if(feature) {feature.value = checked} }
74 75
                anchors.left:   parent.left
                anchors.verticalCenter: parent.verticalCenter
76
                Component.onCompleted: {
77
                    checked = feature ? (feature.value === 2 ? false : feature.value) : false
78
                }
79 80 81
            }
            QGCLabel {
                id:             label
82
                text:           feature ? feature.description : ""
83 84 85 86 87 88
                anchors.right:  parent.right
                anchors.left:   checkBox.right
                anchors.leftMargin: ScreenTools.defaultFontPixelWidth * 0.5
                wrapMode:       Text.WordWrap
                anchors.verticalCenter: parent.verticalCenter
            }
89 90 91
        }
    }
}