diff --git a/Modules/Bar/Battery.qml b/Modules/Bar/Battery.qml index 4342abd..ccdea95 100644 --- a/Modules/Bar/Battery.qml +++ b/Modules/Bar/Battery.qml @@ -62,62 +62,43 @@ Item { iconCircleColor: Colors.accentPrimary iconTextColor: Colors.backgroundPrimary textColor: charging ? Colors.accentPrimary : Colors.textPrimary - MouseArea { - anchors.fill: parent - hoverEnabled: true - onEntered: { - pill.showDelayed() - batteryTooltip.show() + tooltipText: { + let lines = [] + if (!root.isReady) { + return "" } - onExited: { - pill.hide() - batteryTooltip.show() + + if (root.battery.timeToEmpty > 0) { + lines.push("Time left: " + Time.formatVagueHumanReadableTime( + root.battery.timeToEmpty)) } - } - NTooltip { - id: batteryTooltip - positionAbove: false - target: pill - delay: Style.tooltipDelayLong - text: { - let lines = [] - if (!root.isReady) { - return "" - } - if (root.battery.timeToEmpty > 0) { - lines.push("Time left: " + Time.formatVagueHumanReadableTime( - root.battery.timeToEmpty)) - } + if (root.battery.timeToFull > 0) { + lines.push("Time until full: " + Time.formatVagueHumanReadableTime( + root.battery.timeToFull)) + } - if (root.battery.timeToFull > 0) { - lines.push("Time until full: " + Time.formatVagueHumanReadableTime( - root.battery.timeToFull)) - } - - if (root.battery.changeRate !== undefined) { - const rate = root.battery.changeRate - if (rate > 0) { - lines.push( - root.charging ? "Charging rate: " + rate.toFixed( - 2) + " W" : "Discharging rate: " + rate.toFixed( - 2) + " W") - } else if (rate < 0) { - lines.push("Discharging rate: " + Math.abs(rate).toFixed(2) + " W") - } else { - lines.push("Estimating...") - } + if (root.battery.changeRate !== undefined) { + const rate = root.battery.changeRate + if (rate > 0) { + lines.push( + root.charging ? "Charging rate: " + rate.toFixed( + 2) + " W" : "Discharging rate: " + rate.toFixed( + 2) + " W") + } else if (rate < 0) { + lines.push("Discharging rate: " + Math.abs(rate).toFixed(2) + " W") } else { - lines.push(root.charging ? "Charging" : "Discharging") + lines.push("Estimating...") } - - if (root.battery.healthPercentage !== undefined - && root.battery.healthPercentage > 0) { - lines.push("Health: " + Math.round( - root.battery.healthPercentage) + "%") - } - return lines.join("\n") + } else { + lines.push(root.charging ? "Charging" : "Discharging") } + + if (root.battery.healthPercentage !== undefined + && root.battery.healthPercentage > 0) { + lines.push("Health: " + Math.round(root.battery.healthPercentage) + "%") + } + return lines.join("\n") } } } diff --git a/Widgets/NPill.qml b/Widgets/NPill.qml index 8448e17..20b8817 100644 --- a/Widgets/NPill.qml +++ b/Widgets/NPill.qml @@ -9,6 +9,7 @@ Item { property string icon: "" property string text: "" + property string tooltipText: "" property color pillColor: Colors.surfaceVariant property color textColor: Colors.textPrimary property color iconCircleColor: Colors.accentPrimary @@ -30,6 +31,7 @@ Item { 1, textItem.implicitWidth + pillPaddingHorizontal * 2 + pillOverlap) + // TBC, do we use those ? signal shown signal hidden @@ -165,6 +167,37 @@ Item { } } + NTooltip { + id: tooltip + positionAbove: false + target: pill + delay: Style.tooltipDelayLong + text: root.tooltipText + } + + Timer { + id: showTimer + interval: Style.pillDelay + onTriggered: { + if (!showPill) { + showAnim.start() + } + } + } + + MouseArea { + anchors.fill: parent + hoverEnabled: true + onEntered: { + showDelayed() + tooltip.show() + } + onExited: { + hide() + tooltip.hide() + } + } + function show() { if (!showPill) { shouldAnimateHide = autoHide @@ -191,14 +224,4 @@ Item { delayedHideAnim.restart() } } - - Timer { - id: showTimer - interval: Style.pillDelay - onTriggered: { - if (!showPill) { - showAnim.start() - } - } - } }