From d7bd9f4609ed46c3eada8a7fe727d47f0fa1c2c1 Mon Sep 17 00:00:00 2001 From: Kevin Wolf Date: Mon, 20 Feb 2023 21:52:05 +0100 Subject: [PATCH] Use Shortcut for keyboard room switching This allows to use the room switching shortcuts like Ctrl+PgUp/PgDn even when the RoomPage doesn't currently have the focus. It's also a nice code simplification. --- src/qml/Page/RoomPage.qml | 23 +---------------------- src/qml/main.qml | 12 ++++++++---- 2 files changed, 9 insertions(+), 26 deletions(-) diff --git a/src/qml/Page/RoomPage.qml b/src/qml/Page/RoomPage.qml index f988d1e2d..a051c9e93 100644 --- a/src/qml/Page/RoomPage.qml +++ b/src/qml/Page/RoomPage.qml @@ -44,9 +44,6 @@ Kirigami.ScrollablePage { } } - signal switchRoomUp() - signal switchRoomDown() - onCurrentRoomChanged: { applicationWindow().hoverLinkIndicator.text = ""; messageListView.positionViewAtBeginning(); @@ -120,26 +117,8 @@ Kirigami.ScrollablePage { focus: true - Keys.onTabPressed: { - if (event.modifiers & Qt.ControlModifier) { - switchRoomDown(); - } - } - - Keys.onBacktabPressed: { - if (event.modifiers & Qt.ControlModifier) { - switchRoomUp(); - } - } - Keys.onPressed: { - if (event.key === Qt.Key_PageDown && (event.modifiers & Qt.ControlModifier)) { - event.accepted = true; - switchRoomDown(); - } else if (event.key === Qt.Key_PageUp && (event.modifiers & Qt.ControlModifier)) { - event.accepted = true; - switchRoomUp(); - } else if (!(event.modifiers & Qt.ControlModifier) && event.key < Qt.Key_Escape) { + if (!(event.modifiers & Qt.ControlModifier) && event.key < Qt.Key_Escape) { event.accepted = true; chatBox.chatBar.insertText(event.text); chatBox.chatBar.forceActiveFocus(); diff --git a/src/qml/main.qml b/src/qml/main.qml index 96c6fe817..7d903525c 100644 --- a/src/qml/main.qml +++ b/src/qml/main.qml @@ -317,12 +317,16 @@ Kirigami.ApplicationWindow { RoomListPage { id: roomList - Connections { - target: root.roomPage - function onSwitchRoomUp() { + Shortcut { + sequences: ["Ctrl+PgUp", "Ctrl+Backtab"] + onActivated: { roomList.goToPreviousRoom(); } - function onSwitchRoomDown() { + } + + Shortcut { + sequences: ["Ctrl+PgDown", "Ctrl+Tab"] + onActivated: { roomList.goToNextRoom(); } }