RuleSelector.qml 1.79 KB
Newer Older
1 2
import QtQuick                      2.11
import QtQuick.Controls             2.4
Gus Grubba's avatar
Gus Grubba committed
3 4 5 6 7 8 9 10

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

11
Button {
12
    id:                         _root
13
    autoExclusive:              false
14
    height:                     ScreenTools.defaultFontPixelHeight
15 16 17 18
    background: Rectangle {
        anchors.fill:           parent
        color:                  _selected ? qgcPal.windowShade : qgcPal.window
    }
19 20
    property var    rule:       null
    property bool   _selected: {
21
        if (autoExclusive) {
22 23 24 25 26 27 28 29
            return checked
        } else {
            return rule ? rule.selected : false
        }
    }
    onCheckedChanged: {
        rule.selected = checked
    }
30
    contentItem: Row {
Gus Grubba's avatar
Gus Grubba committed
31 32 33 34 35 36 37 38
        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
39
            color:      _selected ? qgcPal.colorGreen : qgcPal.window
Gus Grubba's avatar
Gus Grubba committed
40 41 42
            anchors.verticalCenter: parent.verticalCenter
        }
        QGCLabel {
43
            text:           rule ? (rule.name === "" ? rule.shortName : rule.name) : ""
Gus Grubba's avatar
Gus Grubba committed
44 45 46 47
            font.pointSize: ScreenTools.smallFontPointSize
            anchors.verticalCenter: parent.verticalCenter
        }
    }
48 49 50 51 52
    onClicked: {
        if (autoExclusive) {
            checked = true
        } else {
            rule.selected = !rule.selected
Gus Grubba's avatar
Gus Grubba committed
53 54 55
        }
    }
}