diff options
Diffstat (limited to 'modules/controlcenter/components/ConnectedButtonGroup.qml')
| -rw-r--r-- | modules/controlcenter/components/ConnectedButtonGroup.qml | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/modules/controlcenter/components/ConnectedButtonGroup.qml b/modules/controlcenter/components/ConnectedButtonGroup.qml index 01cd612..ab707fb 100644 --- a/modules/controlcenter/components/ConnectedButtonGroup.qml +++ b/modules/controlcenter/components/ConnectedButtonGroup.qml @@ -10,9 +10,10 @@ import QtQuick.Layouts StyledRect { id: root - property var options: [] // Array of {label: string, propertyName: string, onToggled: function} + property var options: [] // Array of {label: string, propertyName: string, onToggled: function, state: bool?} property var rootItem: null // The root item that contains the properties we want to bind to property string title: "" // Optional title text + property int rows: 1 // Number of rows Layout.fillWidth: true implicitHeight: layout.implicitHeight + Appearance.padding.large * 2 @@ -37,10 +38,13 @@ StyledRect { font.pointSize: Appearance.font.size.normal } - RowLayout { - id: buttonRow + GridLayout { + id: buttonGrid Layout.alignment: Qt.AlignHCenter - spacing: Appearance.spacing.small + rowSpacing: Appearance.spacing.small + columnSpacing: Appearance.spacing.small + rows: root.rows + columns: Math.ceil(root.options.length / root.rows) Repeater { id: repeater @@ -62,7 +66,10 @@ StyledRect { // Create binding in Component.onCompleted Component.onCompleted: { - if (root.rootItem && modelData.propertyName) { + if (modelData.state !== undefined && modelData.state) { + _checked = modelData.state; + } + else if (root.rootItem && modelData.propertyName) { const propName = modelData.propertyName; const rootItem = root.rootItem; _checked = Qt.binding(function () { |