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" => "󰂃", "notcharging" => "󰂃",
"full" => "󰂄", "full" => "󰂄",
_ => "󰂑", // unknown fallback _ => "󰂑", // Unknown fallback
}; };
SharedString::from(icon) SharedString::from(icon)
@ -83,11 +83,13 @@ fn start_battery_updater(ui: &TopBar) {
// Select icon // Select icon
let icon = select_icon(&status, &final_level); let icon = select_icon(&status, &final_level);
// Compose tooltip text (Rust handles it now)
let tooltip = format!("Battery: {cap}% ({status})");
// Update Slint properties // 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_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 // Click → open battery monitor
ui.on_show_battery(move || { ui.on_show_battery(move || {
if weak.upgrade().is_some() { 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"; import { SquareIconWidget } from "square-icon-widget.slint";
export component BatteryWidget inherits SquareIconWidget { export component BatteryWidget inherits SquareIconWidget {
in property <string> battery_status; in property <string> battery_capacity_level; // To determine icon color later
in property <int> battery_capacity;
in property <string> battery_capacity_level;
// Compose tooltip here
tooltip_text: "Battery: " + battery_capacity + "% (" + battery_status + ")";
} }

View File

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