feat: charging icons if device is charging

This commit is contained in:
Gabriele Musco 2024-07-31 08:23:00 +02:00
commit 520f7af8b4
3 changed files with 30 additions and 16 deletions

View file

@ -22,19 +22,27 @@ impl From<BatteryStatus> for EnvisionBatteryStatus {
}
impl EnvisionBatteryStatus {
pub fn icon(&self) -> &str {
match self.battery_status.charge {
n if n >= 1.0 => "battery-level-100-symbolic",
n if n >= 0.9 => "battery-level-90-symbolic",
n if n >= 0.8 => "battery-level-80-symbolic",
n if n >= 0.7 => "battery-level-70-symbolic",
n if n >= 0.6 => "battery-level-60-symbolic",
n if n >= 0.5 => "battery-level-50-symbolic",
n if n >= 0.4 => "battery-level-40-symbolic",
n if n >= 0.3 => "battery-level-30-symbolic",
n if n >= 0.2 => "battery-level-20-symbolic",
n if n >= 0.1 => "battery-level-10-symbolic",
_ => "battery-level-0-symbolic",
}
pub fn icon(&self) -> String {
format!(
"{}{}-symbolic",
match self.battery_status.charge {
n if n >= 1.0 => "battery-level-100",
n if n >= 0.9 => "battery-level-90",
n if n >= 0.8 => "battery-level-80",
n if n >= 0.7 => "battery-level-70",
n if n >= 0.6 => "battery-level-60",
n if n >= 0.5 => "battery-level-50",
n if n >= 0.4 => "battery-level-40",
n if n >= 0.3 => "battery-level-30",
n if n >= 0.2 => "battery-level-20",
n if n >= 0.1 => "battery-level-10",
_ => "battery-level-0",
},
if self.battery_status.charging {
"-charging"
} else {
""
}
)
}
}

View file

@ -95,7 +95,7 @@ impl AsyncFactoryComponent for DeviceRowModel {
gtk::Image {
set_icon_name: self.battery_status
.as_ref()
.map(|bs| bs.icon()),
.map(|bs| bs.icon()).as_deref(),
},
gtk::Label {
set_text: &self.battery_status

View file

@ -319,7 +319,13 @@ impl XRDevice {
res.push(Self {
index: dev.id.to_string(),
serial: dev.serial().ok(),
battery: dev.battery_status().ok(),
battery: dev.battery_status().ok().and_then(|bs| {
if bs.present {
Some(bs)
} else {
None
}
}),
name: dev.name,
dev_type: xrd,
})