import QtQuick import QtQuick.Controls import Controls /** * A multi-checkboxes control with a current `value` (list of 0-N elements) and a list of possible `values`. * Provides support for custom values (`value` elements not in `values`). */ Flow { id: root required property var value required property var values property color customValueColor: "orange" signal toggled(var value, var checked) // Predefined possible values. Repeater { model: root.values delegate: CheckBox { text: modelData checked: root.value.includes(modelData) onToggled: root.toggled(modelData, checked) } } // Custom elements outside the predefined possible values. Repeater { model: root.value.filter(v => !root.values.includes(v)) delegate: CheckBox { text: modelData palette.text: root.customValueColor font.italic: true checked: true ToolTip.text: "Custom value" ToolTip.visible: hovered onToggled: root.toggled(modelData, checked) } } }