Fix HShortcutHandler not processing shortcuts

This commit is contained in:
miruka 2019-08-31 15:34:05 -04:00
parent 8d1c02f44f
commit 28d8721fe2
3 changed files with 22 additions and 23 deletions

View File

@ -108,7 +108,7 @@ class UISettings(JSONConfigFile):
"theme": "Default.qpl", "theme": "Default.qpl",
"writeAliases": {}, "writeAliases": {},
"keys": { "keys": {
"startDebugger": ["Alt+Shift+D"], "startDebugger": "Alt+Shift+D",
"reloadConfig": "Alt+Shift+R", "reloadConfig": "Alt+Shift+R",
"scrollUp": ["Alt+Up", "Alt+K"], "scrollUp": ["Alt+Up", "Alt+K"],

View File

@ -5,7 +5,6 @@ QtObject {
signal held(var event) signal held(var event)
signal released(var event) signal released(var event)
property bool enabled: true property bool enabled: true
property var sequences: "" // string or array of strings property var sequences: "" // shortcut string array of shortcut strings
} }

View File

@ -22,6 +22,25 @@ Item {
}) })
function match(event) {
for (let i = 0; i < shortcutHandler.resources.length; i++) {
let shortcut = shortcutHandler.resources[i]
if (! shortcut.enabled) continue
if (typeof(shortcut.sequences) == "string") {
shortcut.sequences = [shortcut.sequences]
}
for (let i = 0; i < shortcut.sequences.length; i++) {
if (sequenceMatches(event, shortcut.sequences[i])) {
return shortcut
}
}
}
return null
}
function sequenceMatches(event, sequence) { function sequenceMatches(event, sequence) {
let [key, ...mods] = sequence.split("+").reverse() let [key, ...mods] = sequence.split("+").reverse()
@ -37,23 +56,4 @@ Item {
return true return true
} }
function match(event) {
for (let i = 0; i < shortcutHandler.resources.length; i++) {
let shortcut = shortcutHandler.resources[i]
if (! shortcut.enabled) continue
if (typeof(shortcut.sequences) == "string") {
return sequenceMatches(event, shortcut.sequences) ?
shortcut : null
}
for (let i = 0; i < shortcut.sequences.length; i++) {
if (sequenceMatches(event, shortcut.sequences[i])) {
return shortcut
}
}
}
return null
}
} }