From fd3e75e3348f26790b2164240d4c6d09f6645c74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Blin?= <sebastien.blin@savoirfairelinux.com> Date: Sat, 30 Jul 2022 18:03:35 -0400 Subject: [PATCH] accessibility: add autoaccelerator Turn automatically a button into a button with an automiatic key accelerator (which is Alt+ first letter of the text) Change-Id: Idf118673423e8e3125864c67124f194de0220a69 GitLab: #780 --- src/app/commoncomponents/ConfirmDialog.qml | 2 ++ src/app/commoncomponents/DaemonReconnectPopup.qml | 1 + src/app/commoncomponents/DeleteAccountDialog.qml | 2 ++ src/app/commoncomponents/MaterialButton.qml | 12 ++++++++++++ src/app/commoncomponents/PasswordDialog.qml | 2 ++ src/app/commoncomponents/SimpleMessageDialog.qml | 1 + src/app/mainview/components/FilesToSendDelegate.qml | 2 +- src/app/mainview/components/NewSwarmPage.qml | 1 + src/app/mainview/components/ReadOnlyFooter.qml | 2 ++ src/app/mainview/components/SelectScreen.qml | 2 ++ src/app/settingsview/components/LinkDeviceDialog.qml | 2 ++ src/app/settingsview/components/LogsView.qml | 3 +++ .../components/RevokeDevicePasswordDialog.qml | 4 +++- src/app/settingsview/components/UpdateSettings.qml | 2 ++ src/app/wizardview/components/BackupKeyPage.qml | 2 ++ 15 files changed, 38 insertions(+), 2 deletions(-) diff --git a/src/app/commoncomponents/ConfirmDialog.qml b/src/app/commoncomponents/ConfirmDialog.qml index 28d5eb7b1..ba5705728 100644 --- a/src/app/commoncomponents/ConfirmDialog.qml +++ b/src/app/commoncomponents/ConfirmDialog.qml @@ -74,6 +74,7 @@ BaseModalDialog { hoveredColor: JamiTheme.buttonTintedRedHovered pressedColor: JamiTheme.buttonTintedRedPressed secondary: true + autoAccelerator: true onClicked: { close() @@ -93,6 +94,7 @@ BaseModalDialog { hoveredColor: JamiTheme.buttonTintedBlackHovered pressedColor: JamiTheme.buttonTintedBlackPressed secondary: true + autoAccelerator: true text: JamiStrings.optionCancel diff --git a/src/app/commoncomponents/DaemonReconnectPopup.qml b/src/app/commoncomponents/DaemonReconnectPopup.qml index bbe5d860a..1bbdcc6df 100644 --- a/src/app/commoncomponents/DaemonReconnectPopup.qml +++ b/src/app/commoncomponents/DaemonReconnectPopup.qml @@ -92,6 +92,7 @@ BaseModalDialog { hoveredColor: JamiTheme.buttonTintedBlueHovered pressedColor: JamiTheme.buttonTintedBluePressed secondary: true + autoAccelerator: true onClicked: Qt.quit() } diff --git a/src/app/commoncomponents/DeleteAccountDialog.qml b/src/app/commoncomponents/DeleteAccountDialog.qml index e47a5ea21..faa875dca 100644 --- a/src/app/commoncomponents/DeleteAccountDialog.qml +++ b/src/app/commoncomponents/DeleteAccountDialog.qml @@ -134,6 +134,7 @@ BaseModalDialog { hoveredColor: JamiTheme.buttonTintedRedHovered pressedColor: JamiTheme.buttonTintedRedPressed secondary: true + autoAccelerator: true text: JamiStrings.optionDelete @@ -175,6 +176,7 @@ BaseModalDialog { secondary: true text: JamiStrings.optionCancel + autoAccelerator: true onClicked: close() } diff --git a/src/app/commoncomponents/MaterialButton.qml b/src/app/commoncomponents/MaterialButton.qml index 79a9ca515..402ce2aab 100644 --- a/src/app/commoncomponents/MaterialButton.qml +++ b/src/app/commoncomponents/MaterialButton.qml @@ -28,6 +28,7 @@ import net.jami.Constants 1.1 AbstractButton { id: root + property bool autoAccelerator: false property bool boldFont: false property bool primary: false property bool secondary: false @@ -242,4 +243,15 @@ AbstractButton { cursorShape: root.hovered ? Qt.PointingHandCursor : Qt.ArrowCursor } + Shortcut { + enabled: text.length > 0 && parent.visible && autoAccelerator + sequence: { + if (text.length === 0) + return "" + return "Alt+" + text[0] + } + context: Qt.ApplicationShortcut + onActivated: clicked() + } + } diff --git a/src/app/commoncomponents/PasswordDialog.qml b/src/app/commoncomponents/PasswordDialog.qml index b5b8392eb..44d2bea3a 100644 --- a/src/app/commoncomponents/PasswordDialog.qml +++ b/src/app/commoncomponents/PasswordDialog.qml @@ -187,6 +187,7 @@ BaseModalDialog { hoveredColor: JamiTheme.buttonTintedBlackHovered pressedColor: JamiTheme.buttonTintedBlackPressed secondary: true + autoAccelerator: true enabled: purpose === PasswordDialog.SetPassword text: (purpose === PasswordDialog.ExportAccount) ? JamiStrings.exportAccount : @@ -209,6 +210,7 @@ BaseModalDialog { hoveredColor: JamiTheme.buttonTintedBlackHovered pressedColor: JamiTheme.buttonTintedBlackPressed secondary: true + autoAccelerator: true text: JamiStrings.optionCancel diff --git a/src/app/commoncomponents/SimpleMessageDialog.qml b/src/app/commoncomponents/SimpleMessageDialog.qml index 55467e06b..be2fb0aba 100644 --- a/src/app/commoncomponents/SimpleMessageDialog.qml +++ b/src/app/commoncomponents/SimpleMessageDialog.qml @@ -122,6 +122,7 @@ BaseModalDialog { } } secondary: true + autoAccelerator: true text: buttonTitles[modelData] diff --git a/src/app/mainview/components/FilesToSendDelegate.qml b/src/app/mainview/components/FilesToSendDelegate.qml index 426bad560..7f7fa950a 100644 --- a/src/app/mainview/components/FilesToSendDelegate.qml +++ b/src/app/mainview/components/FilesToSendDelegate.qml @@ -130,7 +130,7 @@ Rectangle { radius: margin preferredSize: JamiTheme.filesToSendDelegateButtonSize - toolTipText: JamiStrings.remove + toolTipText: JamiStrings.optionRemove source: JamiResources.cross_black_24dp_svg diff --git a/src/app/mainview/components/NewSwarmPage.qml b/src/app/mainview/components/NewSwarmPage.qml index 50cb0a553..1a00870c4 100644 --- a/src/app/mainview/components/NewSwarmPage.qml +++ b/src/app/mainview/components/NewSwarmPage.qml @@ -191,6 +191,7 @@ Rectangle { Layout.alignment: Qt.AlignCenter Layout.topMargin: JamiTheme.preferredMarginSize + autoAccelerator: true preferredWidth: JamiTheme.aboutButtonPreferredWidth diff --git a/src/app/mainview/components/ReadOnlyFooter.qml b/src/app/mainview/components/ReadOnlyFooter.qml index d0e463eee..e639dfb5e 100644 --- a/src/app/mainview/components/ReadOnlyFooter.qml +++ b/src/app/mainview/components/ReadOnlyFooter.qml @@ -60,6 +60,7 @@ Control { MaterialButton { text: JamiStrings.removeContact + autoAccelerator: true font.pointSize: JamiTheme.textFontSize + 2 onClicked: MessagesAdapter.removeContact( LRCInstance.selectedConvUid) @@ -67,6 +68,7 @@ Control { MaterialButton { text: JamiStrings.newConversation + autoAccelerator: true font.pointSize: JamiTheme.textFontSize + 2 onClicked: ConversationsAdapter.restartConversation( LRCInstance.selectedConvUid) diff --git a/src/app/mainview/components/SelectScreen.qml b/src/app/mainview/components/SelectScreen.qml index 10d876e0c..ce109c0f0 100644 --- a/src/app/mainview/components/SelectScreen.qml +++ b/src/app/mainview/components/SelectScreen.qml @@ -369,6 +369,7 @@ Window { hoveredColor: JamiTheme.buttonTintedBlackHovered pressedColor: JamiTheme.buttonTintedBlackPressed secondary: true + autoAccelerator: true text: window ? JamiStrings.shareWindow : JamiStrings.shareScreen @@ -398,6 +399,7 @@ Window { hoveredColor: JamiTheme.buttonTintedBlackHovered pressedColor: JamiTheme.buttonTintedBlackPressed secondary: true + autoAccelerator: true text: JamiStrings.optionCancel diff --git a/src/app/settingsview/components/LinkDeviceDialog.qml b/src/app/settingsview/components/LinkDeviceDialog.qml index 379cb876e..6b4db3294 100644 --- a/src/app/settingsview/components/LinkDeviceDialog.qml +++ b/src/app/settingsview/components/LinkDeviceDialog.qml @@ -170,6 +170,7 @@ BaseModalDialog { hoveredColor: JamiTheme.buttonTintedBlackHovered pressedColor: JamiTheme.buttonTintedBlackPressed secondary: true + autoAccelerator: true enabled: false text: JamiStrings.exportAccount @@ -189,6 +190,7 @@ BaseModalDialog { hoveredColor: JamiTheme.buttonTintedBlackHovered pressedColor: JamiTheme.buttonTintedBlackPressed secondary: true + autoAccelerator: true enabled: true text: JamiStrings.optionCancel diff --git a/src/app/settingsview/components/LogsView.qml b/src/app/settingsview/components/LogsView.qml index 07917ac63..2073f9212 100644 --- a/src/app/settingsview/components/LogsView.qml +++ b/src/app/settingsview/components/LogsView.qml @@ -152,6 +152,7 @@ Window { hoveredColor: JamiTheme.buttonTintedBlackHovered pressedColor: JamiTheme.buttonTintedBlackPressed text: JamiStrings.logsViewClear + autoAccelerator: true onClicked: { logsText.clear() @@ -177,6 +178,7 @@ Window { secondary: true text: JamiStrings.logsViewCopy + autoAccelerator: true onClicked: { logsText.selectAll() @@ -215,6 +217,7 @@ Window { pressedColor: JamiTheme.buttonTintedBlackPressed text: JamiStrings.logsViewReport secondary: true + autoAccelerator: true onClicked: Qt.openUrlExternally( "https://jami.net/bugs-and-improvements/") diff --git a/src/app/settingsview/components/RevokeDevicePasswordDialog.qml b/src/app/settingsview/components/RevokeDevicePasswordDialog.qml index 97dcdf19a..191782876 100644 --- a/src/app/settingsview/components/RevokeDevicePasswordDialog.qml +++ b/src/app/settingsview/components/RevokeDevicePasswordDialog.qml @@ -100,9 +100,10 @@ BaseModalDialog { hoveredColor: JamiTheme.buttonTintedBlackHovered pressedColor: JamiTheme.buttonTintedBlackPressed secondary: true + autoAccelerator: true enabled: false - text: JamiStrings.remove + text: JamiStrings.optionRemove onClicked: { revokeDeviceWithPassword(deviceId, passwordEdit.text) @@ -122,6 +123,7 @@ BaseModalDialog { hoveredColor: JamiTheme.buttonTintedBlackHovered pressedColor: JamiTheme.buttonTintedBlackPressed secondary: true + autoAccelerator: true enabled: true text: JamiStrings.optionCancel diff --git a/src/app/settingsview/components/UpdateSettings.qml b/src/app/settingsview/components/UpdateSettings.qml index 7e110a5b0..d24c35cf1 100644 --- a/src/app/settingsview/components/UpdateSettings.qml +++ b/src/app/settingsview/components/UpdateSettings.qml @@ -76,6 +76,7 @@ ColumnLayout { hoveredColor: JamiTheme.buttonTintedBlackHovered pressedColor: JamiTheme.buttonTintedBlackPressed secondary: true + autoAccelerator: true toolTipText: JamiStrings.checkForUpdates text: JamiStrings.checkForUpdates @@ -97,6 +98,7 @@ ColumnLayout { hoveredColor: JamiTheme.buttonTintedBlackHovered pressedColor: JamiTheme.buttonTintedBlackPressed secondary: true + autoAccelerator: true toolTipText: JamiStrings.betaInstall text: JamiStrings.betaInstall diff --git a/src/app/wizardview/components/BackupKeyPage.qml b/src/app/wizardview/components/BackupKeyPage.qml index 7eb3344ad..2b62bcd89 100644 --- a/src/app/wizardview/components/BackupKeyPage.qml +++ b/src/app/wizardview/components/BackupKeyPage.qml @@ -198,6 +198,7 @@ Rectangle { preferredWidth: JamiTheme.wizardButtonWidth text: JamiStrings.backupAccountBtn + autoAccelerator: true color: JamiTheme.buttonTintedGrey hoveredColor: JamiTheme.buttonTintedGreyHovered pressedColor: JamiTheme.buttonTintedGreyPressed @@ -220,6 +221,7 @@ Rectangle { preferredWidth: JamiTheme.wizardButtonWidth text: JamiStrings.skip + autoAccelerator: true color: JamiTheme.buttonTintedGrey hoveredColor: JamiTheme.buttonTintedGreyHovered pressedColor: JamiTheme.buttonTintedGreyPressed -- GitLab