From 8d57bfb1aef3b71557bc408154ee028751fd688e Mon Sep 17 00:00:00 2001 From: Timotej Lazar Date: Mon, 14 Jun 2021 19:09:53 +0200 Subject: First commit There was history before but now there is no more. --- Fields/Enum.qml | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 Fields/Enum.qml (limited to 'Fields/Enum.qml') diff --git a/Fields/Enum.qml b/Fields/Enum.qml new file mode 100644 index 0000000..30712b6 --- /dev/null +++ b/Fields/Enum.qml @@ -0,0 +1,59 @@ +// SPDX-License-Identifier: Unlicense + +import QtQuick 2.12 +import QtQuick.Controls 2.13 + +import '../util.js' as Util + +Column { + id: control + + property var definition + property int index: -1 + readonly property string value: index >= 0 ? definition.values.get(index).name : '' + + function set(val) { + for (var i = 0; i < definition.values.count; i++) { + if (definition.values.get(i).name === val) { + index = i + return true + } + } + index = -1 + } + + Keys.onPressed: { + for (var i = 0; i < definition.values.count; i++) { + if (definition.values.get(i).key === event.text) { + index = (index === i ? -1 : i) + event.accepted = true + break + } + } + } + + Flow { + spacing: 5 + width: parent.width + + ButtonGroup { id: buttons } + + Repeater { + model: definition.values + delegate: Button { + ButtonGroup.group: buttons + checkable: true + checked: control.index === index + focusPolicy: Qt.NoFocus + + implicitWidth: implicitContentWidth + leftPadding + rightPadding + padding: 0 + leftPadding: 5 + rightPadding: leftPadding + + onClicked: control.index = (control.index === index ? -1 : index) + text: Util.addShortcut(name, key) + } + } + } +} -- cgit v1.3