diff --git a/src/framework/uicomponents/qml/Muse/UiComponents/CheckBox.qml b/src/framework/uicomponents/qml/Muse/UiComponents/CheckBox.qml index 3955d9e56740e..73c030f59bf50 100644 --- a/src/framework/uicomponents/qml/Muse/UiComponents/CheckBox.qml +++ b/src/framework/uicomponents/qml/Muse/UiComponents/CheckBox.qml @@ -109,6 +109,7 @@ FocusScope { horizontalAlignment: Text.AlignLeft wrapMode: Text.WordWrap maximumLineCount: 2 + displayTruncatedTextOnHover: true } } diff --git a/src/framework/uicomponents/qml/Muse/UiComponents/StyledTextLabel.qml b/src/framework/uicomponents/qml/Muse/UiComponents/StyledTextLabel.qml index dea7bf06da1b8..01b34543d93c6 100644 --- a/src/framework/uicomponents/qml/Muse/UiComponents/StyledTextLabel.qml +++ b/src/framework/uicomponents/qml/Muse/UiComponents/StyledTextLabel.qml @@ -21,10 +21,13 @@ */ import QtQuick +pragma ComponentBehavior: Bound + Text { id: root readonly property bool isEmpty: text.length === 0 + property bool displayTruncatedTextOnHover: false color: ui.theme.fontPrimaryColor linkColor: ui.theme.linkColor @@ -43,21 +46,27 @@ Text { Qt.openUrlExternally(link) } - onHoveredLinkChanged: { - if (Boolean(hoveredLink)) { - mouseAreaLoader.active = true - } - } - Loader { id: mouseAreaLoader anchors.fill: parent - active: false + active: (root.displayTruncatedTextOnHover && root.truncated) || root.hoveredLink sourceComponent: MouseArea { anchors.fill: parent - acceptedButtons: Qt.NoButton cursorShape: root.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor + hoverEnabled: true + + onPressed: { + ui.tooltip.hide(root, true) + } + + onContainsMouseChanged: { + if (!containsMouse || !root.truncated || root.hoveredLink) { + ui.tooltip.hide(root) + return + } + ui.tooltip.show(root, root.text) + } } } } diff --git a/src/framework/uicomponents/qml/Muse/UiComponents/StyledToolTip.qml b/src/framework/uicomponents/qml/Muse/UiComponents/StyledToolTip.qml index 8ee0393b1779d..4a904f07de466 100644 --- a/src/framework/uicomponents/qml/Muse/UiComponents/StyledToolTip.qml +++ b/src/framework/uicomponents/qml/Muse/UiComponents/StyledToolTip.qml @@ -72,7 +72,6 @@ StyledPopupView { font: ui.theme.bodyBoldFont horizontalAlignment: Text.AlignLeft wrapMode: Text.WordWrap - maximumLineCount: 2 } StyledTextLabel { diff --git a/src/framework/uicomponents/qml/Muse/UiComponents/VisibilityBox.qml b/src/framework/uicomponents/qml/Muse/UiComponents/VisibilityBox.qml index c8abc50c084ce..bca83963edc1b 100644 --- a/src/framework/uicomponents/qml/Muse/UiComponents/VisibilityBox.qml +++ b/src/framework/uicomponents/qml/Muse/UiComponents/VisibilityBox.qml @@ -82,6 +82,7 @@ FocusScope { horizontalAlignment: Text.AlignLeft wrapMode: Text.WordWrap maximumLineCount: 2 + displayTruncatedTextOnHover: true } } } diff --git a/src/inspector/qml/MuseScore/Inspector/common/InspectorPropertyView.qml b/src/inspector/qml/MuseScore/Inspector/common/InspectorPropertyView.qml index 2dc6bbabe3343..ffe8fd7f0a66b 100644 --- a/src/inspector/qml/MuseScore/Inspector/common/InspectorPropertyView.qml +++ b/src/inspector/qml/MuseScore/Inspector/common/InspectorPropertyView.qml @@ -112,6 +112,7 @@ Column { wrapMode: Text.Wrap maximumLineCount: 2 + displayTruncatedTextOnHover: true } } } diff --git a/src/instrumentsscene/qml/MuseScore/InstrumentsScene/InstrumentsDialog.qml b/src/instrumentsscene/qml/MuseScore/InstrumentsScene/InstrumentsDialog.qml index f1fb660239ddc..6cbe828e76d7d 100644 --- a/src/instrumentsscene/qml/MuseScore/InstrumentsScene/InstrumentsDialog.qml +++ b/src/instrumentsscene/qml/MuseScore/InstrumentsScene/InstrumentsDialog.qml @@ -89,6 +89,7 @@ StyledDialogView { StyledTextLabel { id: descriptionLabel text: instrumentsPage.description + displayTruncatedTextOnHover: true Layout.fillWidth: true Layout.maximumHeight: buttonBox.height diff --git a/src/playback/qml/MuseScore/Playback/internal/SoundFlag/MuseSoundsParams.qml b/src/playback/qml/MuseScore/Playback/internal/SoundFlag/MuseSoundsParams.qml index 98fb4dcf69483..69832f3aef1d7 100644 --- a/src/playback/qml/MuseScore/Playback/internal/SoundFlag/MuseSoundsParams.qml +++ b/src/playback/qml/MuseScore/Playback/internal/SoundFlag/MuseSoundsParams.qml @@ -105,9 +105,14 @@ Item { StyledTextLabel { id: noOptionsLabel + width: parent.width + text: qsTrc("playback", "Sound flag options are not available for this sound.") horizontalAlignment: Text.AlignLeft wrapMode: Text.Wrap + maximumLineCount: 2 + + displayTruncatedTextOnHover: true visible: root.noOptions } diff --git a/src/playback/qml/MuseScore/Playback/internal/SoundFlag/ParamsGridView.qml b/src/playback/qml/MuseScore/Playback/internal/SoundFlag/ParamsGridView.qml index b4b98e91e977a..60f5ed550c78d 100644 --- a/src/playback/qml/MuseScore/Playback/internal/SoundFlag/ParamsGridView.qml +++ b/src/playback/qml/MuseScore/Playback/internal/SoundFlag/ParamsGridView.qml @@ -142,6 +142,14 @@ Column { text: button.text font: ui.theme.bodyFont + + Component.onCompleted: { + button.toolTipTitle = truncated ? button.text : "" + } + + onTruncatedChanged: { + button.toolTipTitle = truncated ? button.text : "" + } } } } diff --git a/src/project/qml/MuseScore/Project/NewScoreDialog.qml b/src/project/qml/MuseScore/Project/NewScoreDialog.qml index 9436d2eb568a9..cf21a3d91bf20 100644 --- a/src/project/qml/MuseScore/Project/NewScoreDialog.qml +++ b/src/project/qml/MuseScore/Project/NewScoreDialog.qml @@ -123,6 +123,7 @@ StyledDialogView { text: pagesStack.currentIndex === 0 ? chooseInstrumentsAndTemplatePage.description : "" + displayTruncatedTextOnHover: true Layout.fillWidth: true Layout.maximumHeight: buttonBox.height diff --git a/src/project/qml/MuseScore/Project/internal/NewScore/MeasuresSettings.qml b/src/project/qml/MuseScore/Project/internal/NewScore/MeasuresSettings.qml index 3aa8b636fc0e1..e5f9d7359be21 100644 --- a/src/project/qml/MuseScore/Project/internal/NewScore/MeasuresSettings.qml +++ b/src/project/qml/MuseScore/Project/internal/NewScore/MeasuresSettings.qml @@ -190,6 +190,8 @@ FlatButton { text: qsTrc("project/newscore", "Hint: You can also add & delete measures after you have created your score") wrapMode: Text.WordWrap maximumLineCount: 2 + + displayTruncatedTextOnHover: true } } }