mirror of
https://github.com/zoriya/noctalia-shell.git
synced 2026-08-15 18:43:59 +00:00
Battery + NPill working and factorized
This commit is contained in:
+30
-49
@@ -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")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+33
-10
@@ -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()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user