From 9e0bb64d0708ea2bb1fc1fd41680743b665ca504 Mon Sep 17 00:00:00 2001 From: quadbyte Date: Sun, 10 Aug 2025 15:09:58 -0400 Subject: [PATCH] NIconButton: added native tooltip handling --- Modules/Bar/Bar.qml | 4 ++-- Modules/Bar/Battery.qml | 2 +- Modules/DemoPanel/DemoPanel.qml | 15 +-------------- Widgets/NIconButton.qml | 14 ++++++++++++++ 4 files changed, 18 insertions(+), 17 deletions(-) diff --git a/Modules/Bar/Bar.qml b/Modules/Bar/Bar.qml index e803582..c9c8365 100644 --- a/Modules/Bar/Bar.qml +++ b/Modules/Bar/Bar.qml @@ -83,8 +83,8 @@ Variants { NIconButton { id: demoPanelToggle - icon: "experiment" + tooltipText: "Open demo panel" anchors.verticalCenter: parent.verticalCenter onClicked: function () { demoPanel.isLoaded = !demoPanel.isLoaded @@ -93,8 +93,8 @@ Variants { NIconButton { id: sidePanelToggle - icon: "widgets" + tooltipText: "Open side panel" anchors.verticalCenter: parent.verticalCenter onClicked: function () { // Map this button's center to the screen and open the side panel below it diff --git a/Modules/Bar/Battery.qml b/Modules/Bar/Battery.qml index ebbb6f3..ff80f00 100644 --- a/Modules/Bar/Battery.qml +++ b/Modules/Bar/Battery.qml @@ -60,7 +60,7 @@ NPill { if (testMode) { lines.push("Time left: " + Time.formatVagueHumanReadableDuration(12345)) - return lines.join("\n"); + return lines.join("\n") } if (!root.isReady) { diff --git a/Modules/DemoPanel/DemoPanel.qml b/Modules/DemoPanel/DemoPanel.qml index 5b26c70..167e849 100644 --- a/Modules/DemoPanel/DemoPanel.qml +++ b/Modules/DemoPanel/DemoPanel.qml @@ -52,18 +52,6 @@ NLoader { NIconButton { id: myIconButton icon: "refresh" - onEntered: function () { - myTooltip.show() - } - onExited: function () { - myTooltip.hide() - } - } - NTooltip { - id: myTooltip - target: myIconButton - positionAbove: false - text: "Hello world" } NDivider { @@ -74,9 +62,8 @@ NLoader { // NToggle ColumnLayout { spacing: Style.marginLarge * scaling - uniformCellSizes: true NText { - text: "NToggle + NTooltip" + text: "NToggle" color: Colors.accentSecondary } diff --git a/Widgets/NIconButton.qml b/Widgets/NIconButton.qml index 1c2e370..40a996f 100644 --- a/Widgets/NIconButton.qml +++ b/Widgets/NIconButton.qml @@ -11,6 +11,7 @@ Rectangle { property real sizeMultiplier: 0.8 property real size: Style.baseWidgetSize * sizeMultiplier * scaling property string icon + property string tooltipText property bool enabled: true property bool hovering: false property var onEntered: function () {} @@ -37,16 +38,29 @@ Rectangle { opacity: root.enabled ? Style.opacityFull : Style.opacityMedium } + NTooltip { + id: tooltip + target: root + positionAbove: false + text: root.tooltipText + } + MouseArea { anchors.fill: parent cursorShape: Qt.PointingHandCursor hoverEnabled: true onEntered: { hovering = true + if (tooltipText) { + tooltip.show() + } root.onEntered() } onExited: { hovering = false + if (tooltipText) { + tooltip.hide() + } root.onExited() } onClicked: {