Refactor BatteryWidget

- Update tooltip from the rust code instead of slint
This commit is contained in:
Candifloss 2025-11-21 22:17:08 +05:30
parent 962bed3dad
commit 42ee42b904
3 changed files with 12 additions and 17 deletions

View File

@ -51,7 +51,7 @@ fn select_icon(status: &str, level: &str) -> SharedString {
},
"notcharging" => "󰂃",
"full" => "󰂄",
_ => "󰂑", // unknown fallback
_ => "󰂑", // Unknown fallback
};
SharedString::from(icon)
@ -83,11 +83,13 @@ fn start_battery_updater(ui: &TopBar) {
// Select icon
let icon = select_icon(&status, &final_level);
// Compose tooltip text (Rust handles it now)
let tooltip = format!("Battery: {cap}% ({status})");
// Update Slint properties
ui.set_battery_status(status.into());
ui.set_battery_capacity(cap.into());
ui.set_battery_capacity_level(final_level.into());
ui.set_battery_icon(icon);
ui.set_battery_capacity_level(final_level.into());
ui.set_battery_tooltip(tooltip.into());
}
});
}
@ -99,7 +101,7 @@ pub fn install(ui: &TopBar) {
// Click → open battery monitor
ui.on_show_battery(move || {
if weak.upgrade().is_some() {
run_cmd("xclock"); // Fix later
run_cmd("xclock"); // Placeholder: Fix later
}
});

View File

@ -1,10 +1,5 @@
import { SquareIconWidget } from "square-icon-widget.slint";
export component BatteryWidget inherits SquareIconWidget {
in property <string> battery_status;
in property <int> battery_capacity;
in property <string> battery_capacity_level;
// Compose tooltip here
tooltip_text: "Battery: " + battery_capacity + "% (" + battery_status + ")";
in property <string> battery_capacity_level; // To determine icon color later
}

View File

@ -19,10 +19,9 @@ export component TopBar inherits Window {
callback show_calendar();
// Battery widget
in property <string> battery_status;
in property <int> battery_capacity;
in property <string> battery_capacity_level;
in property <string> battery_tooltip;
in property <string> battery_icon;
in property <string> battery_capacity_level;
callback show_battery();
@ -73,10 +72,9 @@ export component TopBar inherits Window {
BatteryWidget {
bar_height: root.bar_height;
icon_text: root.battery_icon;
square_btn_callback => root.show_battery();
battery_status: root.battery_status;
battery_capacity: root.battery_capacity;
tooltip_text: root.battery_tooltip;
battery_capacity_level: root.battery_capacity_level;
square_btn_callback => root.show_battery();
}
DateWidget {