diff options
4 files changed, 30 insertions, 6 deletions
diff --git a/share/qtcreator/qmldesigner/itemLibraryQmlSources/Assets.qml b/share/qtcreator/qmldesigner/itemLibraryQmlSources/Assets.qml index 8173457f73..66760b1a24 100644 --- a/share/qtcreator/qmldesigner/itemLibraryQmlSources/Assets.qml +++ b/share/qtcreator/qmldesigner/itemLibraryQmlSources/Assets.qml @@ -665,15 +665,23 @@ Item { MouseArea { id: mouseArea + property bool allowTooltip: true + anchors.fill: parent hoverEnabled: true acceptedButtons: Qt.LeftButton | Qt.RightButton onExited: tooltipBackend.hideTooltip() - onCanceled: tooltipBackend.hideTooltip() + onEntered: allowTooltip = true + onCanceled: { + tooltipBackend.hideTooltip() + allowTooltip = true + } onPositionChanged: tooltipBackend.reposition() onPressed: (mouse)=> { forceActiveFocus() + allowTooltip = false + tooltipBackend.hideTooltip() var ctrlDown = mouse.modifiers & Qt.ControlModifier if (mouse.button === Qt.LeftButton) { if (!root.selectedAssets[filePath] && !ctrlDown) @@ -698,12 +706,12 @@ Item { root.contextDir = model.fileDir root.isDirContextMenu = false - tooltipBackend.hideTooltip() contextMenu.popup() } } onReleased: (mouse)=> { + allowTooltip = true if (mouse.button === Qt.LeftButton) { if (!(mouse.modifiers & Qt.ControlModifier)) root.selectedAssets = {} @@ -720,7 +728,7 @@ Item { Timer { interval: 1000 - running: mouseArea.containsMouse + running: mouseArea.containsMouse && mouseArea.allowTooltip onTriggered: { if (suffix === ".ttf" || suffix === ".otf") { tooltipBackend.name = fileName diff --git a/share/qtcreator/qmldesigner/itemLibraryQmlSources/ItemDelegate.qml b/share/qtcreator/qmldesigner/itemLibraryQmlSources/ItemDelegate.qml index 03e536676d..130ec2aff6 100644 --- a/share/qtcreator/qmldesigner/itemLibraryQmlSources/ItemDelegate.qml +++ b/share/qtcreator/qmldesigner/itemLibraryQmlSources/ItemDelegate.qml @@ -88,6 +88,8 @@ Item { onShowContextMenu: delegateRoot.showContextMenu() onPressed: (mouse)=> { + allowTooltip = false + hide() if (mouse.button === Qt.LeftButton) rootView.startDragAndDrop(itemLibraryEntry, mapToGlobal(mouse.x, mouse.y)) } diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/ImagePreviewTooltipArea.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/ImagePreviewTooltipArea.qml index e354f5a698..11d6d8445e 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/ImagePreviewTooltipArea.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/ImagePreviewTooltipArea.qml @@ -30,6 +30,8 @@ import HelperWidgets 2.0 MouseArea { id: mouseArea + property bool allowTooltip: true + signal showContextMenu() function hide() @@ -38,7 +40,12 @@ MouseArea { } onExited: tooltipBackend.hideTooltip() - onCanceled: tooltipBackend.hideTooltip() + onEntered: allowTooltip = true + onCanceled: { + tooltipBackend.hideTooltip() + allowTooltip = true + } + onReleased: allowTooltip = true onPositionChanged: tooltipBackend.reposition() onClicked: function(mouse) { forceActiveFocus() @@ -51,7 +58,7 @@ MouseArea { Timer { interval: 1000 - running: mouseArea.containsMouse + running: mouseArea.containsMouse && mouseArea.allowTooltip onTriggered: { tooltipBackend.name = itemName tooltipBackend.path = componentPath diff --git a/src/plugins/qmldesigner/components/navigator/navigatortreeview.cpp b/src/plugins/qmldesigner/components/navigator/navigatortreeview.cpp index d679e6017d..f243341938 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatortreeview.cpp +++ b/src/plugins/qmldesigner/components/navigator/navigatortreeview.cpp @@ -293,8 +293,15 @@ void NavigatorTreeView::mousePressEvent(QMouseEvent *event) void NavigatorTreeView::startDrag(Qt::DropActions supportedActions) { - if (m_dragAllowed) + if (m_dragAllowed) { + if (m_previewToolTip) { + // Workaround to ensure tooltip doesn't linger during drag, as drag grabs all mouse + // events on some platforms (e.g. mac) + m_previewToolTip->hide(); + m_previewToolTipNodeId = -1; + } QTreeView::startDrag(supportedActions); + } } } |