diff --git a/src/commoncomponents/HoverableButton.qml b/src/commoncomponents/HoverableButton.qml index 2b04f9b13dce76b3bbbd1c7e7d540f99b934eeca..420b581546a33be0ce56a8a210fdae9de6a812cd 100644 --- a/src/commoncomponents/HoverableButton.qml +++ b/src/commoncomponents/HoverableButton.qml @@ -53,10 +53,16 @@ Button { property var baseColor: null property alias color: hoverableButton.baseColor + property string toolTipText: "" + font.pointSize: fontPointSize hoverEnabled: true + ToolTip.delay: Qt.styleHints.mousePressAndHoldInterval + ToolTip.visible: hovered && (toolTipText.length > 0) + ToolTip.text: toolTipText + background: Rectangle { id: hoverableButtonBackground @@ -90,7 +96,7 @@ Button { MouseArea { anchors.fill: parent - hoverEnabled: false + hoverEnabled: hoverableButton.hoverEnabled onPressed: { hoverableButtonBackground.color = onPressColor diff --git a/src/commoncomponents/HoverableButtonTextItem.qml b/src/commoncomponents/HoverableButtonTextItem.qml index fc1d6bb00ed6e767478ac172f7150c9efa813921..5ce9cebc160e3e570cfbb64a0d0855027d62585a 100644 --- a/src/commoncomponents/HoverableButtonTextItem.qml +++ b/src/commoncomponents/HoverableButtonTextItem.qml @@ -46,11 +46,17 @@ Button { property alias radius: hoverableButtonBackground.radius property alias source: hoverableButtonImage.source + property string toolTipText: "" + font.pointSize: fontPointSize font.kerning: true hoverEnabled: true + ToolTip.delay: Qt.styleHints.mousePressAndHoldInterval + ToolTip.visible: hovered && (toolTipText.length > 0) + ToolTip.text: toolTipText + contentItem: Text { text: hoverableButton.text font: hoverableButton.font diff --git a/src/commoncomponents/HoverableRadiusButton.qml b/src/commoncomponents/HoverableRadiusButton.qml index ef98e075c474b5cc54e68d046bc491a9ab610672..cdea4ef137ccd2c175c6da6579449930e87c282b 100644 --- a/src/commoncomponents/HoverableRadiusButton.qml +++ b/src/commoncomponents/HoverableRadiusButton.qml @@ -40,7 +40,7 @@ Button { property string onExitColor: backgroundColor property alias radius: hoverableButtonBackground.radius property alias source: hoverableButtonImage.source - property bool isHovering: false + property string toolTipText: "" radius: height / 2 function enterBtn(){ btnMouseArea.entered() @@ -54,6 +54,11 @@ Button { function releaseBtn(){ btnMouseArea.released() } + + ToolTip.delay: Qt.styleHints.mousePressAndHoldInterval + ToolTip.visible: hovered && (toolTipText.length > 0) + ToolTip.text: toolTipText + font.pointSize: fontPointSize font.kerning: true hoverEnabled: true @@ -82,11 +87,9 @@ Button { } onEntered: { hoverableButtonBackground.color = onEnterColor - isHovering = true } onExited: { hoverableButtonBackground.color = onExitColor - isHovering = false } } } diff --git a/src/commoncomponents/PhotoboothView.qml b/src/commoncomponents/PhotoboothView.qml index 3a76bc8be52c8486b030b5d9cda07f2df372797d..7cf14ab7dee210bd162a3eac0dc667448dedcaee 100644 --- a/src/commoncomponents/PhotoboothView.qml +++ b/src/commoncomponents/PhotoboothView.qml @@ -206,19 +206,21 @@ ColumnLayout{ font.pointSize: 10 font.kerning: true + toolTipText: qsTr("Press this button to take photo") + radius: height / 6 source: { - if(isDefaultIcon){ - return addPhotoIconUrl - } if(takePhotoState) { + toolTipText = qsTr("Press this button to finish taking photo") return cameraAltIconUrl } if(hasAvatar){ + toolTipText = qsTr("Press this button to retake photo") return refreshIconUrl } else { + toolTipText = qsTr("Press this button to take photo") return addPhotoIconUrl } } @@ -267,6 +269,8 @@ ColumnLayout{ radius: height / 6 source: "qrc:/images/icons/round-folder-24px.svg" + toolTipText: qsTr("Import avatar from image file") + onClicked: { importFromFileToAvatar_Dialog.open() } diff --git a/src/mainview/components/AccountComboBox.qml b/src/mainview/components/AccountComboBox.qml index fac5b11aa5b3bd169b21ba5f1f292dbdcb038ebe..e0529fd7cbe5f0656859c0bb023cb85475f45d20 100644 --- a/src/mainview/components/AccountComboBox.qml +++ b/src/mainview/components/AccountComboBox.qml @@ -221,6 +221,9 @@ ComboBox { width: 24 height: 24 + toolTipText: qsTr("Press to display QR code") + hoverEnabled: true + source: "qrc:/images/qrcode.png" backgroundColor: "white" onClicked: { @@ -243,6 +246,9 @@ ComboBox { source: !mainViewWindow.inSettingsView ? "qrc:/images/icons/round-settings-24px.svg" : "qrc:/images/icons/round-close-24px.svg" + toolTipText: !mainViewWindow.inSettingsView ?qsTr("Press to toggle to settings page") : qsTr("Press to toggle to call page") + hoverEnabled: true + backgroundColor: "white" onClicked: { settingBtnClicked() diff --git a/src/mainview/components/CallOverlayButtonGroup.qml b/src/mainview/components/CallOverlayButtonGroup.qml index 49511f32cbd6d216236d2dc80248edc279947676..c360a7cdaae3edab6be8508ac45081d580b02d27 100644 --- a/src/mainview/components/CallOverlayButtonGroup.qml +++ b/src/mainview/components/CallOverlayButtonGroup.qml @@ -97,6 +97,8 @@ Rectangle { checkedColor: JamiTheme.declineButtonPressedRed radius: 30 + toolTipText: !checked ? qsTr("Press to mute the call") : qsTr("Press to unmute the call") + onClicked: { CallAdapter.muteThisCallToggle() } @@ -120,6 +122,8 @@ Rectangle { color: "white" radius: 30 + toolTipText: qsTr("Press to hang up the call") + onClicked: { CallAdapter.hangUpThisCall() } @@ -145,6 +149,8 @@ Rectangle { checkedColor: JamiTheme.declineButtonPressedRed radius: 30 + toolTipText: !checked ? qsTr("Press to pause the call") : qsTr("Press to resume the call") + onClicked: { CallAdapter.videoPauseThisCallToggle() } @@ -173,6 +179,8 @@ Rectangle { source: "qrc:/images/icons/ic_group_add_white_24dp.png" radius: 30 + toolTipText: qsTr("Press to add more contact into conference call") + onClicked: { root.addToConferenceButtonClicked() } @@ -196,6 +204,8 @@ Rectangle { source: "qrc:/images/icons/ic_chat_white_24dp.png" radius: 30 + toolTipText: qsTr("Press to toggle open the chatview") + onClicked: { root.chatButtonClicked() } @@ -218,6 +228,8 @@ Rectangle { source: "qrc:/images/icons/more_vert-24px.svg" radius: 30 + toolTipText: qsTr("Press to open chat options") + onClicked: { var rectPos = mapToItem(callStackViewWindow, optionsButton.x, optionsButton.y) callViewContextMenu.activate() diff --git a/src/mainview/components/OutgoingCallPage.qml b/src/mainview/components/OutgoingCallPage.qml index 79866183a7a56235f2a74f2bcf5931ba2871f239..c3a4fd51d203cf0cb946bfff264dd7df477df8b5 100644 --- a/src/mainview/components/OutgoingCallPage.qml +++ b/src/mainview/components/OutgoingCallPage.qml @@ -190,6 +190,8 @@ Rectangle { source: "qrc:/images/icons/ic_close_white_24dp.png" radius: 30 + toolTipText: qsTr("Cancel the call") + onClicked: { outgoingCallPageRect.callCancelButtonIsClicked() } diff --git a/src/settingsview/components/AvSettingPage.qml b/src/settingsview/components/AvSettingPage.qml index d6451e9376defe41a7e1fe9e2eb39575b985c131..64a9f1cdc16a4cc3e16417b3842710bd9d748c00 100644 --- a/src/settingsview/components/AvSettingPage.qml +++ b/src/settingsview/components/AvSettingPage.qml @@ -281,6 +281,8 @@ Rectangle { source: "qrc:/images/icons/ic_arrow_back_24px.svg" backgroundColor: "white" onExitColor: "white" + toolTipText: qsTr("Toggle to display side panel") + hoverEnabled: true visible: mainViewWindow.sidePanelHidden @@ -381,9 +383,8 @@ Rectangle { font.kerning: true model: audioInputDeviceModel - textRole: "ID_UTF8" - + tooltipText: qsTr("Audio input device selector") onActivated: { slotAudioInputIndexChanged(index) } @@ -436,9 +437,8 @@ Rectangle { font.kerning: true model: audioOutputDeviceModel - textRole: "ID_UTF8" - + tooltipText: qsTr("Choose the audio output device") onActivated: { slotAudioOutputIndexChanged(index) } @@ -478,7 +478,7 @@ Rectangle { model: audioOutputDeviceModel textRole: "ID_UTF8" - + tooltipText: qsTr("Choose the ringtone output device") onActivated: { slotRingtoneDeviceIndexChanged(index) } @@ -580,7 +580,7 @@ Rectangle { model: videoInputDeviceModel textRole: "DeviceName_UTF8" - + tooltipText: qsTr("Video device selector") onActivated: { slotDeviceBoxCurrentIndexChanged(index) } @@ -620,6 +620,8 @@ Rectangle { model: videoFormatResolutionModel textRole: "Resolution_UTF8" + tooltipText: qsTr("Video device resolution selector") + onActivated: { slotFormatCurrentIndexChanged(index,true) } @@ -659,6 +661,8 @@ Rectangle { model: videoFormatFpsModel textRole: "FPS_ToDisplay_UTF8" + tooltipText: qsTr("Video device fps selector") + onActivated: { slotFormatCurrentIndexChanged(index,false) } diff --git a/src/settingsview/components/CurrentAccountSettingsScrollPage.qml b/src/settingsview/components/CurrentAccountSettingsScrollPage.qml index d7ba3cafd39fde941d9896ecfe9483388e505423..d2847d04a27a307b1d22d8852cf5254d55877e71 100644 --- a/src/settingsview/components/CurrentAccountSettingsScrollPage.qml +++ b/src/settingsview/components/CurrentAccountSettingsScrollPage.qml @@ -474,6 +474,8 @@ Rectangle { source: "qrc:/images/icons/ic_arrow_back_24px.svg" backgroundColor: "white" onExitColor: "white" + toolTipText: qsTr("Toggle to display side panel") + hoverEnabled: true visible: mainViewWindow.sidePanelHidden @@ -858,6 +860,8 @@ Rectangle { font.pointSize: JamiTheme.buttonFontSize font.kerning: true + toolTipText: qsTr("Register the name as typed") + radius: height / 2 } } @@ -887,6 +891,7 @@ Rectangle { text: ClientWrapper.accountAdaptor.hasPassword() ? qsTr("Change Password") : qsTr("Set Password") + toolTipText: ClientWrapper.accountAdaptor.hasPassword() ? qsTr("Change the current password") : qsTr("Currently no password, press this button to set a password") font.pointSize: JamiTheme.textFontSize font.kerning: true @@ -910,6 +915,8 @@ Rectangle { Layout.preferredHeight: JamiTheme.preferredFieldHeight Layout.maximumHeight: JamiTheme.preferredFieldHeight + toolTipText: qsTr("Press this button to export account to a .gz file") + text: qsTr("Export Account") font.pointSize: JamiTheme.textFontSize font.kerning: true @@ -940,6 +947,8 @@ Rectangle { Layout.preferredHeight: JamiTheme.preferredFieldHeight Layout.maximumHeight: JamiTheme.preferredFieldHeight + toolTipText: qsTr("Press this button to delete this account") + text: qsTr("Delete Account") font.pointSize: JamiTheme.textFontSize font.kerning: true @@ -1021,6 +1030,8 @@ Rectangle { radius: height / 2 + toolTipText: qsTr("Press to link one more device with this account") + text: qsTr("+ Link Another Device") font.pointSize: JamiTheme.textFontSize font.kerning: true @@ -1076,6 +1087,8 @@ Rectangle { radius: height / 2 + toolTipText: qsTr("press to open or hide display of banned contact") + source: bannedContactsListWidget.visible? "qrc:/images/icons/round-arrow_drop_up-24px.svg" : "qrc:/images/icons/round-arrow_drop_down-24px.svg" onClicked: { @@ -1164,6 +1177,8 @@ Rectangle { radius: height / 2 + toolTipText: qsTr("Press to display or hide advance settings") + source: { if (advanceSettingsView.visible) { return "qrc:/images/icons/round-arrow_drop_up-24px.svg" diff --git a/src/settingsview/components/CurrentSIPAccountSettingScrollPage.qml b/src/settingsview/components/CurrentSIPAccountSettingScrollPage.qml index eb5aaaba6782d2828ccdd1a16e2807f2a6936aa3..a4b67ec41ee3853b39900250bd119d7f6700e262 100644 --- a/src/settingsview/components/CurrentSIPAccountSettingScrollPage.qml +++ b/src/settingsview/components/CurrentSIPAccountSettingScrollPage.qml @@ -122,6 +122,8 @@ Rectangle { backgroundColor: "white" onExitColor: "white" + toolTipText: qsTr("Toggle to display side panel") + hoverEnabled: true visible: mainViewWindow.sidePanelHidden onClicked: { @@ -420,6 +422,7 @@ Rectangle { Layout.maximumHeight: JamiTheme.preferredFieldHeight text: qsTr("Delete Account") + toolTipText: qsTr("Delete this account") font.pointSize: JamiTheme.textFontSize font.kerning: true radius: height / 2 diff --git a/src/settingsview/components/GeneralSettingsPage.qml b/src/settingsview/components/GeneralSettingsPage.qml index 008ba6b99b31a0aaf263116c07d0cc9c58be3813..412612f9e20654dec70454890a553b570912fefd 100644 --- a/src/settingsview/components/GeneralSettingsPage.qml +++ b/src/settingsview/components/GeneralSettingsPage.qml @@ -194,7 +194,8 @@ Rectangle { source: "qrc:/images/icons/ic_arrow_back_24px.svg" backgroundColor: "white" onExitColor: "white" - + toolTipText: qsTr("Toggle to display side panel") + hoverEnabled: true visible: mainViewWindow.sidePanelHidden onClicked: { @@ -273,6 +274,8 @@ Rectangle { labelText: desktopNotificationsElidedText.elidedText fontPointSize: JamiTheme.settingsFontSize + tooltipText: qsTr("toggle enable notifications") + onSwitchToggled: { slotSetNotifications(checked) } @@ -292,6 +295,8 @@ Rectangle { labelText: keepMinimizeElidedText.elidedText fontPointSize: JamiTheme.settingsFontSize + tooltipText: qsTr("toggle keep minimized on close") + onSwitchToggled: { slotSetClosedOrMin(checked) } @@ -311,6 +316,8 @@ Rectangle { labelText: runOnStartupElidedText.elidedText fontPointSize: JamiTheme.settingsFontSize + tooltipText: qsTr("toggle run application on system startup") + onSwitchToggled: { slotSetRunOnStartUp(checked) } @@ -359,6 +366,7 @@ Rectangle { icon.height: 24 icon.width: 24 + toolTipText: qsTr("Press to choose download folder path") text: downloadPath fontPointSize: JamiTheme.buttonFontSize @@ -529,6 +537,7 @@ Rectangle { icon.height: 24 icon.width: 24 + toolTipText: qsTr("Press to choose record folder path") text: recordPath fontPointSize: JamiTheme.buttonFontSize @@ -571,6 +580,8 @@ Rectangle { labelText: autoUpdateText.elidedText fontPointSize: JamiTheme.settingsFontSize + tooltipText: qsTr("toggle automatic updates") + onSwitchToggled: { slotSetUpdateAutomatic(checked) } @@ -596,7 +607,8 @@ Rectangle { radius: height / 2 - text: qsTr("Check for updates now") + toolTipText: qsTr("Check for updates now") + text: qsTr("Updates") fontPointSize: JamiTheme.buttonFontSize onClicked: { @@ -617,7 +629,8 @@ Rectangle { radius: height / 2 - text: "Install the latest beta version" + toolTipText: qsTr("Install the latest beta version") + text: qsTr("Beta Install") fontPointSize: JamiTheme.buttonFontSize onClicked: { diff --git a/src/settingsview/components/PluginSettingsPage.qml b/src/settingsview/components/PluginSettingsPage.qml index 636b8106f0ec2bf689eb71de76b64a775e425168..293bfc41b7cd955cdcdcedfde68c7a5e08906227 100644 --- a/src/settingsview/components/PluginSettingsPage.qml +++ b/src/settingsview/components/PluginSettingsPage.qml @@ -74,6 +74,8 @@ Rectangle { backgroundColor: "white" onExitColor: "white" + toolTipText: qsTr("Toggle to display side panel") + hoverEnabled: true visible: mainViewWindow.sidePanelHidden onClicked: { diff --git a/src/settingsview/components/SettingParaCombobox.qml b/src/settingsview/components/SettingParaCombobox.qml index dc447a65491b4ece8c56fd8ee0da2c2cbce4851e..19fe92263de72395299f1148be5d6277bf7dd264 100644 --- a/src/settingsview/components/SettingParaCombobox.qml +++ b/src/settingsview/components/SettingParaCombobox.qml @@ -28,6 +28,12 @@ import "../../constant" ComboBox { id: control + property string tooltipText:"" + + ToolTip.delay: Qt.styleHints.mousePressAndHoldInterval + ToolTip.visible: hovered && (tooltipText.length > 0) + ToolTip.text: tooltipText + delegate: ItemDelegate { width: control.width contentItem: Text { diff --git a/src/settingsview/components/ToggleSwitch.qml b/src/settingsview/components/ToggleSwitch.qml index 3b9d0f12d5bf678a4bbf15dddbf160f6be6f6a65..cd4f5a4496e27af3f63be25e2e49bc707ac34685 100644 --- a/src/settingsview/components/ToggleSwitch.qml +++ b/src/settingsview/components/ToggleSwitch.qml @@ -32,6 +32,8 @@ RowLayout { property int heightOfLayout: 30 property int fontPointSize: 13 + property string tooltipText: "" + property alias toggleSwitch: switchOfLayout property alias checked: switchOfLayout.checked @@ -66,6 +68,11 @@ RowLayout { Layout.preferredHeight: heightOfSwitch Layout.maximumHeight: heightOfSwitch + hoverEnabled: true + ToolTip.delay: Qt.styleHints.mousePressAndHoldInterval + ToolTip.visible: hovered && (tooltipText.length > 0) + ToolTip.text: tooltipText + onToggled: { switchToggled() } diff --git a/src/wizardview/WizardView.qml b/src/wizardview/WizardView.qml index 0f3c29da7787ef481c24bd908171b50452f36dc1..3277ec4194bd00df58efd8057a6429320c07807d 100644 --- a/src/wizardview/WizardView.qml +++ b/src/wizardview/WizardView.qml @@ -611,6 +611,8 @@ Window { font.pointSize: 10 font.kerning: true + toolTipText: qsTr("Previous page button") + onClicked: { // stop photobooth previewing if(controlPanelStackView.currentIndex == controlPanelStackView.createAccountPageId) { @@ -662,6 +664,8 @@ Window { font.pointSize: 10 font.kerning: true + toolTipText: qsTr("Cancel account create/link") + onClicked: { wizardViewWindow.hide() needToShowMainViewWindow(addedAccountIndex) @@ -696,6 +700,8 @@ Window { font.pointSize: 10 font.kerning: true + toolTipText: qsTr("Next page button") + onClicked: { // stop photobooth previewing if(controlPanelStackView.currentIndex == controlPanelStackView.createAccountPageId) { diff --git a/src/wizardview/components/HoverableGradientButton.qml b/src/wizardview/components/HoverableGradientButton.qml index 905bd41b6bf79106837d1fe9125899e73115baae..8b1ebd26001c7e78f68438383e78e1b56516abd8 100644 --- a/src/wizardview/components/HoverableGradientButton.qml +++ b/src/wizardview/components/HoverableGradientButton.qml @@ -50,9 +50,10 @@ Button { property string onExitColor: backgroundColor property string textColor: "white" + property string toolTipText: "" + property alias radius: hoverableButtonBackground.radius - property bool isHovering: false property bool isBeingPressed: false radius: height / 2 @@ -60,6 +61,10 @@ Button { font.kerning: true hoverEnabled: true + ToolTip.delay: Qt.styleHints.mousePressAndHoldInterval + ToolTip.visible: hovered && (toolTipText.length > 0) + ToolTip.text: toolTipText + contentItem: Text { text: hoverableButton.text font: hoverableButton.font @@ -89,11 +94,9 @@ Button { } onEntered: { hoverableButtonBackground.color = onEnterColor - isHovering = true } onExited: { hoverableButtonBackground.color = onExitColor - isHovering = false } } } @@ -114,7 +117,7 @@ Button { if(isBeingPressed){ return startColorPressed } else { - if(isHovering){ + if(hoverableButton.hovered){ return startColorHovered } else { return startColor @@ -130,7 +133,7 @@ Button { if(isBeingPressed){ return endColorPressed } else { - if(isHovering){ + if(hoverableButton.hovered){ return endColorHovered } else { return endColor diff --git a/src/wizardview/components/WelcomePageLayout.qml b/src/wizardview/components/WelcomePageLayout.qml index 3c7190b0e84072d2d6a0db1d1d076e54f5113ce0..0bff7aef040f73256bab18ff78d00f479640175f 100644 --- a/src/wizardview/components/WelcomePageLayout.qml +++ b/src/wizardview/components/WelcomePageLayout.qml @@ -102,6 +102,8 @@ ColumnLayout { font.kerning: true radius: height / 2 + toolTipText: qsTr("Create new Jami account") + onClicked: { welcomePageRedirectPage(1) } @@ -125,6 +127,8 @@ ColumnLayout { backgroundColor: JamiTheme.releaseColor radius: height / 2 + toolTipText: qsTr("Import account from other device") + onClicked: { welcomePageRedirectPage(5) } @@ -148,6 +152,8 @@ ColumnLayout { backgroundColor: JamiTheme.releaseColor radius: height / 2 + toolTipText: qsTr("Import account from backup file") + onClicked: { welcomePageRedirectPage(3) } @@ -175,6 +181,12 @@ ColumnLayout { radius: height /2 } + hoverEnabled: true + + ToolTip.delay: Qt.styleHints.mousePressAndHoldInterval + ToolTip.visible: hovered + ToolTip.text: qsTr("Show advanced options") + onClicked: { connectAccountManagerButton.visible = !connectAccountManagerButton.visible newSIPAccountButton.visible = !newSIPAccountButton.visible @@ -200,6 +212,8 @@ ColumnLayout { backgroundColor: JamiTheme.releaseColor radius: height / 2 + toolTipText: qsTr("Login to account manager") + onClicked: { welcomePageRedirectPage(6) } @@ -224,6 +238,8 @@ ColumnLayout { radius: height / 2 backgroundColor: JamiTheme.releaseColor + toolTipText: qsTr("Create new SIP account") + onClicked: { welcomePageRedirectPage(2) }