RuleSelector.qml 2.15 KB
Newer Older
Gus Grubba's avatar
Gus Grubba committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14
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
import QGroundControl.ScreenTools       1.0
import QGroundControl.Controls          1.0
import QGroundControl.Palette           1.0
import QGroundControl.Airmap            1.0
import QGroundControl.SettingsManager   1.0

Rectangle {
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
    id:                         _root
    height:                     ScreenTools.defaultFontPixelHeight
    color:                      _selected ? qgcPal.windowShade : qgcPal.window
    property var    rule:       null
    property bool   checked:    false
    property bool   _selected: {
        if (exclusiveGroup) {
            return checked
        } else {
            return rule ? rule.selected : false
        }
    }
    property ExclusiveGroup exclusiveGroup:  null
    onExclusiveGroupChanged: {
        if (exclusiveGroup) {
            checked = rule.selected
            exclusiveGroup.bindCheckable(_root)
        }
    }
    onCheckedChanged: {
        rule.selected = checked
    }
Gus Grubba's avatar
Gus Grubba committed
37 38 39 40 41 42 43 44 45 46 47 48 49
    QGCPalette {
        id: qgcPal
        colorGroupEnabled: enabled
    }
    Row {
        id:             ruleRow
        spacing:        ScreenTools.defaultFontPixelWidth
        anchors.right:  parent.right
        anchors.left:   parent.left
        anchors.verticalCenter: parent.verticalCenter
        Rectangle {
            width:      ScreenTools.defaultFontPixelWidth * 0.75
            height:     ScreenTools.defaultFontPixelHeight
50
            color:      _selected ? qgcPal.colorGreen : qgcPal.window
Gus Grubba's avatar
Gus Grubba committed
51 52 53 54 55 56 57 58 59 60 61
            anchors.verticalCenter: parent.verticalCenter
        }
        QGCLabel {
            text:       rule.name === "" ? rule.shortName : rule.name
            font.pointSize: ScreenTools.smallFontPointSize
            anchors.verticalCenter: parent.verticalCenter
        }
    }
    MouseArea {
        anchors.fill: parent
        onClicked: {
62 63 64 65 66
            if (exclusiveGroup) {
                checked = true
            } else {
                rule.selected = !rule.selected
            }
Gus Grubba's avatar
Gus Grubba committed
67 68 69
        }
    }
}