AppLauncher keyboard control

- added support for PageUp/Page Down
- added support for (vim) Ctrl+J/Ctrl+K for up/dowm
This commit is contained in:
quadbyte 2025-08-20 21:02:32 -04:00
parent 11463e2be4
commit 0451b99ca1

View file

@ -142,6 +142,15 @@ NPanel {
}
}
function selectNextPage() {
if (filteredEntries.length > 0)
selectedIndex = Math.min(selectedIndex + 10, filteredEntries.length - 1)
}
function selectPrevPage() {
if (filteredEntries.length > 0)
selectedIndex = Math.max(selectedIndex - 10, 0)
}
function activateSelected() {
if (filteredEntries.length === 0)
return
@ -239,6 +248,7 @@ NPanel {
Component.onCompleted: {
// Focus the search bar by default
Qt.callLater(() => {
selectedIndex = 0
searchInput.forceActiveFocus()
})
}
@ -247,6 +257,27 @@ NPanel {
Keys.onEnterPressed: activateSelected()
Keys.onReturnPressed: activateSelected()
Keys.onEscapePressed: root.close()
Keys.onPressed: event => {
if (event.key === Qt.Key_PageDown) {
root.selectNextPage()
event.accepted = true
} else if (event.key === Qt.Key_PageUp) {
root.selectPrevPage()
event.accepted = true
}
if (event.modifiers & Qt.ControlModifier) {
switch (event.key) {
case Qt.Key_J:
root.selectNext()
event.accepted = true
break
case Qt.Key_K:
root.selectPrev()
event.accepted = true
break
}
}
}
}
}