blob: 30712b66a46eade2dd8490e3df0e5d95bda0b45e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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)
}
}
}
}
|