From f40a8215d1823cf6a7b52b38524ae89174bcc818 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Blin?= <sebastien.blin@savoirfairelinux.com> Date: Thu, 25 Jan 2024 10:07:22 -0500 Subject: [PATCH] mainview: fix shortcuts to go to the settings page Seems broken since a recent Qt upgrade. Calling a method in JamiQmlUtils works as expected. Change-Id: Ic1257a4f487560744f5ce1ea02928504ff572157 --- src/app/constant/JamiQmlUtils.qml | 4 +++ src/app/mainview/MainView.qml | 8 ++--- tests/qml/src/tst_MainView.qml | 56 +++++++++++++++++++++++++++++++ 3 files changed, 64 insertions(+), 4 deletions(-) create mode 100644 tests/qml/src/tst_MainView.qml diff --git a/src/app/constant/JamiQmlUtils.qml b/src/app/constant/JamiQmlUtils.qml index 6aa09d739..28f16f8bb 100644 --- a/src/app/constant/JamiQmlUtils.qml +++ b/src/app/constant/JamiQmlUtils.qml @@ -49,6 +49,10 @@ Item { signal settingsPageRequested(int index) + function requestSettingsPage(index) { + settingsPageRequested(index); + } + function updateMessageBarButtonsPoints() { if (messageBarButtonsRowObj && audioRecordMessageButtonObj && videoRecordMessageButtonObj) { audioRecordMessageButtonInMainViewPoint = messageBarButtonsRowObj.mapToItem(mainViewRectObj, audioRecordMessageButtonObj.x, audioRecordMessageButtonObj.y); diff --git a/src/app/mainview/MainView.qml b/src/app/mainview/MainView.qml index 8ac535798..93ef1380c 100644 --- a/src/app/mainview/MainView.qml +++ b/src/app/mainview/MainView.qml @@ -64,7 +64,7 @@ Rectangle { Shortcut { sequence: "Ctrl+M" context: Qt.ApplicationShortcut - onActivated: JamiQmlUtils.settingsPageRequested(12) + onActivated: JamiQmlUtils.requestSettingsPage(12) } WheelHandler { @@ -117,19 +117,19 @@ Rectangle { Shortcut { sequence: "Ctrl+G" context: Qt.ApplicationShortcut - onActivated: JamiQmlUtils.settingsPageRequested(5) + onActivated: JamiQmlUtils.requestSettingsPage(5) } Shortcut { sequence: "Ctrl+Alt+I" context: Qt.ApplicationShortcut - onActivated: JamiQmlUtils.settingsPageRequested(0) + onActivated: JamiQmlUtils.requestSettingsPage(0) } Shortcut { sequence: "Ctrl+P" context: Qt.ApplicationShortcut - onActivated: JamiQmlUtils.settingsPageRequested(15) + onActivated: JamiQmlUtils.requestSettingsPage(15) } Shortcut { diff --git a/tests/qml/src/tst_MainView.qml b/tests/qml/src/tst_MainView.qml new file mode 100644 index 000000000..b28d22c61 --- /dev/null +++ b/tests/qml/src/tst_MainView.qml @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2024 Savoir-faire Linux Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +import QtQuick +import QtTest + +import net.jami.Adapters 1.1 +import net.jami.Models 1.1 +import net.jami.Constants 1.1 +import net.jami.Enums 1.1 + +import "../../../src/app/mainview" +import "../../../src/app/commoncomponents" + +MainView { + id: uut + + width: 400 + height: 600 + + SignalSpy { + id: settingsPageRequestedSpy + + target: JamiQmlUtils + signalName: "onSettingsPageRequested" + } + + TestCase { + name: "Test shortcuts" + when: windowShown + + function test_shortcuts() { + keyClick(Qt.Key_M, Qt.ControlModifier) + settingsPageRequestedSpy.wait(1000) + compare(settingsPageRequestedSpy.count, 1) + keyClick(Qt.Key_G, Qt.ControlModifier) + settingsPageRequestedSpy.wait(1000) + compare(settingsPageRequestedSpy.count, 2) + } + } + +} -- GitLab