mirror of
https://gitlab.freedesktop.org/upower/upower.git
synced 2026-05-05 09:58:06 +02:00
daemon: Add battery-level specific icons
Rather than relying on the percentage equivalence, which just doesn't work for "Unknown" battery levels. https://bugs.freedesktop.org/show_bug.cgi?id=97484
This commit is contained in:
parent
33e9039eb0
commit
e7de44f0d5
1 changed files with 35 additions and 11 deletions
|
|
@ -91,16 +91,36 @@ update_warning_level (UpDevice *device)
|
|||
}
|
||||
|
||||
static const gchar *
|
||||
get_device_charge_icon (gdouble percentage,
|
||||
gboolean charging)
|
||||
get_device_charge_icon (gdouble percentage,
|
||||
UpDeviceLevel battery_level,
|
||||
gboolean charging)
|
||||
{
|
||||
if (percentage < 10)
|
||||
return charging ? "battery-caution-charging-symbolic" : "battery-caution-symbolic";
|
||||
else if (percentage < 30)
|
||||
return charging ? "battery-low-charging-symbolic" : "battery-low-symbolic";
|
||||
else if (percentage < 60)
|
||||
return charging ? "battery-good-charging-symbolic" : "battery-good-symbolic";
|
||||
return charging ? "battery-full-charging-symbolic" : "battery-full-symbolic";
|
||||
if (battery_level == UP_DEVICE_LEVEL_NONE) {
|
||||
if (percentage < 10)
|
||||
return charging ? "battery-caution-charging-symbolic" : "battery-caution-symbolic";
|
||||
else if (percentage < 30)
|
||||
return charging ? "battery-low-charging-symbolic" : "battery-low-symbolic";
|
||||
else if (percentage < 60)
|
||||
return charging ? "battery-good-charging-symbolic" : "battery-good-symbolic";
|
||||
return charging ? "battery-full-charging-symbolic" : "battery-full-symbolic";
|
||||
} else {
|
||||
switch (battery_level) {
|
||||
case UP_DEVICE_LEVEL_UNKNOWN:
|
||||
/* The lack of symmetry is on purpose */
|
||||
return charging ? "battery-good-charging-symbolic" : "battery-caution-symbolic";
|
||||
case UP_DEVICE_LEVEL_LOW:
|
||||
case UP_DEVICE_LEVEL_CRITICAL:
|
||||
return charging ? "battery-caution-charging-symbolic" : "battery-caution-symbolic";
|
||||
case UP_DEVICE_LEVEL_NORMAL:
|
||||
return charging ? "battery-low-charging-symbolic" : "battery-low-symbolic";
|
||||
case UP_DEVICE_LEVEL_HIGH:
|
||||
return charging ? "battery-good-charging-symbolic" : "battery-good-symbolic";
|
||||
case UP_DEVICE_LEVEL_FULL:
|
||||
return charging ? "battery-full-charging-symbolic" : "battery-full-symbolic";
|
||||
default:
|
||||
g_assert_not_reached ();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* This needs to be called when one of those properties changes:
|
||||
|
|
@ -133,11 +153,15 @@ update_icon_name (UpDevice *device)
|
|||
break;
|
||||
case UP_DEVICE_STATE_CHARGING:
|
||||
case UP_DEVICE_STATE_PENDING_CHARGE:
|
||||
icon_name = get_device_charge_icon (up_exported_device_get_percentage (skeleton), TRUE);
|
||||
icon_name = get_device_charge_icon (up_exported_device_get_percentage (skeleton),
|
||||
up_exported_device_get_battery_level (skeleton),
|
||||
TRUE);
|
||||
break;
|
||||
case UP_DEVICE_STATE_DISCHARGING:
|
||||
case UP_DEVICE_STATE_PENDING_DISCHARGE:
|
||||
icon_name = get_device_charge_icon (up_exported_device_get_percentage (skeleton), FALSE);
|
||||
icon_name = get_device_charge_icon (up_exported_device_get_percentage (skeleton),
|
||||
up_exported_device_get_battery_level (skeleton),
|
||||
FALSE);
|
||||
break;
|
||||
default:
|
||||
icon_name = "battery-missing-symbolic";
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue