summaryrefslogtreecommitdiff
path: root/Fields/Enum.qml
diff options
context:
space:
mode:
authorTimotej Lazar <timotej.lazar@araneo.si>2021-09-01 17:13:51 +0200
committerTimotej Lazar <timotej.lazar@araneo.si>2021-09-16 20:33:05 +0200
commitcb76fedcbc8e419e2b945baa56ac3f986a9e79a3 (patch)
treee29be52e4372d3d6e5bfe7056d7af1e1cc0ae2bc /Fields/Enum.qml
parente9b70c585c6bf1fa68a594a8755d90c017e6260c (diff)
Implement event model in C++
Filtering events in JS is too slow with >20,000 events. This moves the event data model into C++.
Diffstat (limited to 'Fields/Enum.qml')
-rw-r--r--Fields/Enum.qml16
1 files changed, 8 insertions, 8 deletions
diff --git a/Fields/Enum.qml b/Fields/Enum.qml
index 30712b6..cb49b3b 100644
--- a/Fields/Enum.qml
+++ b/Fields/Enum.qml
@@ -8,13 +8,13 @@ import '../util.js' as Util
Column {
id: control
- property var definition
+ property var model
property int index: -1
- readonly property string value: index >= 0 ? definition.values.get(index).name : ''
+ readonly property string value: index >= 0 ? model.values[index].name : ''
function set(val) {
- for (var i = 0; i < definition.values.count; i++) {
- if (definition.values.get(i).name === val) {
+ for (var i = 0; i < model.values.length; i++) {
+ if (model.values[i].name === val) {
index = i
return true
}
@@ -23,8 +23,8 @@ Column {
}
Keys.onPressed: {
- for (var i = 0; i < definition.values.count; i++) {
- if (definition.values.get(i).key === event.text) {
+ for (var i = 0; i < model.values.length; i++) {
+ if (model.values[i].key === event.text) {
index = (index === i ? -1 : i)
event.accepted = true
break
@@ -39,7 +39,7 @@ Column {
ButtonGroup { id: buttons }
Repeater {
- model: definition.values
+ model: control.model.values
delegate: Button {
ButtonGroup.group: buttons
checkable: true
@@ -52,7 +52,7 @@ Column {
rightPadding: leftPadding
onClicked: control.index = (control.index === index ? -1 : index)
- text: Util.addShortcut(name, key)
+ text: Util.addShortcut(modelData.name, modelData.key)
}
}
}