diff --git a/src/app/constant/JamiQmlUtils.qml b/src/app/constant/JamiQmlUtils.qml index 6aa09d739d816c310a4c46cbd3cfddb0916a0463..28f16f8bb14417aae0773355249a6715fcd5fefc 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 8ac5357986423998c93a31bfa18ef4cd550a3cf5..93ef1380c590c579b5300764863746832a6b7001 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 0000000000000000000000000000000000000000..b28d22c61ee1d68117a2b0264f7df2c28a873c7d --- /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) + } + } + +}