From 53c5e8e6ffa24787a74fc9c7b1a053034ab4e87c Mon Sep 17 00:00:00 2001 From: zhangkun <2840441575@qq.com> Date: Sun, 28 Apr 2024 00:27:01 +0800 Subject: [PATCH] feat: Move tooltipShowTimer to Item from ToolTip to item Log: --- frame/qml/PanelToolTip.qml | 19 +----------------- .../launcherItem/package/launcheritem.qml | 19 ++++++++++++++---- .../multitaskview/package/multitaskview.qml | 19 ++++++++++++++---- panels/dock/taskmanager/package/AppItem.qml | 20 +++++++++++++++---- 4 files changed, 47 insertions(+), 30 deletions(-) diff --git a/frame/qml/PanelToolTip.qml b/frame/qml/PanelToolTip.qml index 208bb602d..4e1c49c62 100644 --- a/frame/qml/PanelToolTip.qml +++ b/frame/qml/PanelToolTip.qml @@ -23,15 +23,7 @@ Item { } } - Timer { - id: toolTipShowTimer - interval: 50 - onTriggered: { - showToolTip() - } - } - - function showToolTip() + function open() { var window = Panel.toolTipWindow if (!window) @@ -50,18 +42,9 @@ Item { window.show() toolTip.open() } - - function open() - { - toolTipShowTimer.start(); - } function close() { - if (toolTipShowTimer.running) { - toolTipShowTimer.stop() - } - var window = Panel.toolTipWindow if (!window) return diff --git a/panels/dock/launcherItem/package/launcheritem.qml b/panels/dock/launcherItem/package/launcheritem.qml index beeefdf49..76bf7752d 100644 --- a/panels/dock/launcherItem/package/launcheritem.qml +++ b/panels/dock/launcherItem/package/launcheritem.qml @@ -66,6 +66,16 @@ AppletItem { // 9:14 (iconSize/dockHeight) icon.height: Dock.MAX_DOCK_TASKMANAGER_ICON_SIZE icon.width: Dock.MAX_DOCK_TASKMANAGER_ICON_SIZE + Timer { + id: toolTipShowTimer + interval: 50 + onTriggered: { + var point = Applet.rootObject.mapToItem(null, Applet.rootObject.width / 2, 0) + toolTip.toolTipX = point.x + toolTip.toolTipY = point.y + toolTip.open() + } + } onClicked: { Applet.toggleLauncher() toolTip.close() @@ -74,11 +84,12 @@ AppletItem { onYChanged: updateLaunchpadPos() onHoveredChanged: { if (hovered) { - var point = Applet.rootObject.mapToItem(null, Applet.rootObject.width / 2, 0) - toolTip.toolTipX = point.x - toolTip.toolTipY = point.y - toolTip.open() + toolTipShowTimer.start() } else { + if (toolTipShowTimer.running) { + toolTipShowTimer.stop() + } + toolTip.close() } } diff --git a/panels/dock/multitaskview/package/multitaskview.qml b/panels/dock/multitaskview/package/multitaskview.qml index 242beb114..460120318 100644 --- a/panels/dock/multitaskview/package/multitaskview.qml +++ b/panels/dock/multitaskview/package/multitaskview.qml @@ -31,17 +31,28 @@ AppletItem { // 9:14 (iconSize/dockHeight) icon.height: Dock.MAX_DOCK_TASKMANAGER_ICON_SIZE icon.width: Dock.MAX_DOCK_TASKMANAGER_ICON_SIZE + Timer { + id: toolTipShowTimer + interval: 50 + onTriggered: { + var point = Applet.rootObject.mapToItem(null, Applet.rootObject.width / 2, 0) + toolTip.toolTipX = point.x + toolTip.toolTipY = point.y + toolTip.open() + } + } onClicked: { Applet.openWorkspace() toolTip.close() } onHoveredChanged: { if (hovered) { - var point = Applet.rootObject.mapToItem(null, Applet.rootObject.width / 2, 0) - toolTip.toolTipX = point.x - toolTip.toolTipY = point.y - toolTip.open() + toolTipShowTimer.start() } else { + if (toolTipShowTimer.running) { + toolTipShowTimer.stop() + } + toolTip.close() } } diff --git a/panels/dock/taskmanager/package/AppItem.qml b/panels/dock/taskmanager/package/AppItem.qml index e142d0462..5bcae9e18 100644 --- a/panels/dock/taskmanager/package/AppItem.qml +++ b/panels/dock/taskmanager/package/AppItem.qml @@ -242,10 +242,7 @@ Item { onEntered: { if (windows.length === 0) { - var point = root.mapToItem(null, root.width / 2, 0) - toolTip.toolTipX = point.x - toolTip.toolTipY = point.y - toolTip.open() + toolTipShowTimer.start() return } @@ -264,6 +261,10 @@ Item { } onExited: { + if (toolTipShowTimer.running) { + toolTipShowTimer.stop() + } + if (windows.length === 0) { toolTip.close() return @@ -276,6 +277,17 @@ Item { text: root.name } + Timer { + id: toolTipShowTimer + interval: 50 + onTriggered: { + var point = root.mapToItem(null, root.width / 2, 0) + toolTip.toolTipX = point.x + toolTip.toolTipY = point.y + toolTip.open() + } + } + function closeItemPreview() { if (previewTimer.running) { previewTimer.stop()