diff --git a/modules/bar/Bat.qml b/modules/bar/Bat.qml index 340630c..6ec2c91 100644 --- a/modules/bar/Bat.qml +++ b/modules/bar/Bat.qml @@ -16,27 +16,19 @@ BarComponent { property bool charging: UPower.displayDevice.state === UPowerDeviceState.Charging implicitWidth: batLayout.implicitWidth + 16 - function batteryIcon() { - let charging = root.charging; - let percent = root.percent; - if (percent <= 10) - return charging ? "battery-empty-charging" : "battery-empty"; - if (percent < 40) - return charging ? "battery-level-30-charging" : "battery-level-30"; - if (percent < 50) - return charging ? "battery-level-40-charging" : "battery-level-40"; - if (percent < 60) - return charging ? "battery-level-50-charging" : "battery-level-50"; - if (percent < 70) - return charging ? "battery-level-60-charging" : "battery-level-60"; - if (percent < 80) - return charging ? "battery-level-70-charging" : "battery-level-70"; - if (percent < 90) - return charging ? "battery-level-80-charging" : "battery-level-80"; - if (percent > 90) - return charging ? "battery-level-90-charging" : "battery-level-90"; - if (percent == 100) - return charging ? "battery-level-100-charging" : "battery-level-100"; + function batteryIcon(): string { + const p = root.percent; + const chg = root.charging; + const isFull = root.full; + + if (isFull) + return "battery-level-100-charged-symbolic"; + + if (p < 10) + return chg ? "battery-empty-charging-symbolic" : "battery-empty-symbolic"; + + const level = Math.min(100, Math.floor(p / 10) * 10); + return chg ? `battery-level-${level}-charging-symbolic` : `battery-level-${level}-symbolic`; } RowLayout { id: batLayout @@ -46,7 +38,7 @@ BarComponent { } StyledText { - text: Math.floor(root.percent, root.charging) + "%" + text: Math.floor(root.percent) + "%" } } }