import QtQuick import QtQuick.Layouts import qs.services import qs.modules.common import qs.modules.common.widgets import qs.modules.common.functions Flow { id: root Layout.fillWidth: true spacing: 2 property list options: [] property string configOptionName: "" property var currentValue: null signal selected(var newValue) Repeater { model: root.options delegate: SelectionGroupButton { id: paletteButton required property var modelData required property int index onYChanged: { if (index === 0) { paletteButton.leftmost = true } else { var prev = root.children[index - 1] var thisIsOnNewLine = prev && prev.y !== paletteButton.y paletteButton.leftmost = thisIsOnNewLine prev.rightmost = thisIsOnNewLine } } leftmost: index === 0 rightmost: index === root.options.length - 1 buttonText: modelData.displayName; toggled: root.currentValue === modelData.value onClicked: { root.selected(modelData.value); } } } }