Skip to content
Snippets Groups Projects
RuleSelector.qml 2.22 KiB
Newer Older
  • Learn to ignore specific revisions
  • Gus Grubba's avatar
    Gus Grubba committed
    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 {
    
        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
        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
    
                color:      _selected ? qgcPal.colorGreen : qgcPal.window
    
    Gus Grubba's avatar
    Gus Grubba committed
                anchors.verticalCenter: parent.verticalCenter
            }
            QGCLabel {
                text:       rule.name === "" ? rule.shortName : rule.name
                font.pointSize: ScreenTools.smallFontPointSize
                anchors.verticalCenter: parent.verticalCenter
            }
        }
        MouseArea {
    
            anchors.fill:   parent
            enabled:        !required
    
    Gus Grubba's avatar
    Gus Grubba committed
            onClicked: {
    
                if (exclusiveGroup) {
                    checked = true
                } else {
                    rule.selected = !rule.selected
                }
    
    Gus Grubba's avatar
    Gus Grubba committed
            }
        }
    }