make battery icons adapt to battery percentage

This commit is contained in:
end-4
2026-03-11 23:33:45 +01:00
parent 0b0693b1fd
commit e3eeff8d5d
6 changed files with 16 additions and 5 deletions
@@ -8,6 +8,17 @@ import qs.services
Singleton {
id: root
function getBatteryIcon(percentage: int): string {
if (percentage >= 93) return "battery_android_full";
if (percentage >= 78) return "battery_android_6";
if (percentage >= 64) return "battery_android_5";
if (percentage >= 50) return "battery_android_4";
if (percentage >= 35) return "battery_android_3";
if (percentage >= 21) return "battery_android_2";
if (percentage >= 7) return "battery_android_1";
return "battery_android_0";
}
function getBluetoothDeviceMaterialSymbol(systemIconName: string): string {
if (systemIconName.includes("headset") || systemIconName.includes("headphones"))
return "headphones";
@@ -185,7 +185,7 @@ HBarWidgetWithPopout {
return "energy_savings_leaf";
if (PowerProfiles.profile == PowerProfile.Performance)
return "local_fire_department";
return "battery_android_full";
return C.Icons.getBatteryIcon(battCircProg.value * 100);
}
}
}
@@ -15,7 +15,7 @@ StyledPopup {
// Header
StyledPopupHeaderRow {
icon: "battery_android_full"
icon: Icons.getBatteryIcon(Battery.percentage * 100)
label: Translation.tr("Battery")
}
@@ -307,7 +307,7 @@ MouseArea {
IconAndTextPair {
visible: Battery.available
icon: Battery.isCharging ? "bolt" : "battery_android_full"
icon: Battery.isCharging ? "bolt" : Icons.getBatteryIcon(Battery.percentage * 100)
text: Math.round(Battery.percentage * 100)
color: (Battery.isLow && !Battery.isCharging) ? Appearance.colors.colError : Appearance.colors.colOnSurfaceVariant
}
@@ -92,7 +92,7 @@ Rectangle {
id: boltIcon
anchors.verticalCenter: parent.verticalCenter
fill: 1
text: Battery.isCharging ? "bolt" : "battery_android_full"
text: Battery.isCharging ? "bolt" : Icons.getBatteryIcon(Battery.percentage * 100)
color: batteryWidget.colText
iconSize: 24
animateChange: true
@@ -44,7 +44,7 @@ MouseArea {
id: boltIcon
Layout.alignment: Qt.AlignHCenter
fill: 1
text: isCharging ? "bolt" : "battery_android_full"
text: isCharging ? "bolt" : Icons.getBatteryIcon(Battery.percentage * 100)
iconSize: Appearance.font.pixelSize.normal
animateChange: true
}