mirror of
https://github.com/Zedfrigg/ironbar.git
synced 2025-08-17 14:51:04 +02:00
refactor: replace channel macros with ext trait methods
This commit is contained in:
parent
d5744f597c
commit
f929aef2d9
50 changed files with 658 additions and 476 deletions
|
@ -7,6 +7,7 @@ use tokio::sync::{broadcast, mpsc};
|
|||
use zbus;
|
||||
use zbus::fdo::PropertiesProxy;
|
||||
|
||||
use crate::channels::{AsyncSenderExt, BroadcastReceiverExt};
|
||||
use crate::clients::upower::BatteryState;
|
||||
use crate::config::{CommonConfig, LayoutConfig};
|
||||
use crate::gtk_helpers::{IronbarGtkExt, IronbarLabelExt};
|
||||
|
@ -15,7 +16,7 @@ use crate::modules::PopupButton;
|
|||
use crate::modules::{
|
||||
Module, ModuleInfo, ModuleParts, ModulePopup, ModuleUpdateEvent, WidgetContext,
|
||||
};
|
||||
use crate::{glib_recv, module_impl, send_async, spawn, try_send};
|
||||
use crate::{module_impl, spawn};
|
||||
|
||||
const DAY: i64 = 24 * 60 * 60;
|
||||
const HOUR: i64 = 60 * 60;
|
||||
|
@ -116,7 +117,7 @@ impl Module<Button> for UpowerModule {
|
|||
time_to_empty,
|
||||
};
|
||||
|
||||
send_async!(tx, ModuleUpdateEvent::Update(properties.clone()));
|
||||
tx.send_update(properties.clone()).await;
|
||||
|
||||
while let Some(signal) = prop_changed_stream.next().await {
|
||||
let args = signal.args().expect("Invalid signal arguments");
|
||||
|
@ -156,7 +157,7 @@ impl Module<Button> for UpowerModule {
|
|||
}
|
||||
}
|
||||
|
||||
send_async!(tx, ModuleUpdateEvent::Update(properties.clone()));
|
||||
tx.send_update(properties.clone()).await;
|
||||
}
|
||||
|
||||
Result::<()>::Ok(())
|
||||
|
@ -195,22 +196,23 @@ impl Module<Button> for UpowerModule {
|
|||
|
||||
let tx = context.tx.clone();
|
||||
button.connect_clicked(move |button| {
|
||||
try_send!(tx, ModuleUpdateEvent::TogglePopup(button.popup_id()));
|
||||
tx.send_spawn(ModuleUpdateEvent::TogglePopup(button.popup_id()));
|
||||
});
|
||||
|
||||
let format = self.format.clone();
|
||||
|
||||
let rx = context.subscribe();
|
||||
glib_recv!(rx, properties => {
|
||||
rx.recv_glib(move |properties| {
|
||||
let state = properties.state;
|
||||
let is_charging = state == BatteryState::Charging || state == BatteryState::PendingCharge;
|
||||
let is_charging =
|
||||
state == BatteryState::Charging || state == BatteryState::PendingCharge;
|
||||
let time_remaining = if is_charging {
|
||||
seconds_to_string(properties.time_to_full)
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
seconds_to_string(properties.time_to_empty)
|
||||
};
|
||||
let format = format.replace("{percentage}", &properties.percentage.to_string())
|
||||
let format = format
|
||||
.replace("{percentage}", &properties.percentage.to_string())
|
||||
.replace("{time_remaining}", &time_remaining)
|
||||
.replace("{state}", battery_state_to_string(state));
|
||||
|
||||
|
@ -218,7 +220,7 @@ impl Module<Button> for UpowerModule {
|
|||
icon_name.push_str(&properties.icon_name);
|
||||
|
||||
ImageProvider::parse(&icon_name, &icon_theme, false, self.icon_size)
|
||||
.map(|provider| provider.load_into_image(&icon));
|
||||
.map(|provider| provider.load_into_image(&icon));
|
||||
|
||||
label.set_label_escaped(&format);
|
||||
});
|
||||
|
@ -249,7 +251,7 @@ impl Module<Button> for UpowerModule {
|
|||
label.add_class("upower-details");
|
||||
container.add(&label);
|
||||
|
||||
glib_recv!(rx, properties => {
|
||||
rx.recv_glib(move |properties| {
|
||||
let state = properties.state;
|
||||
let format = match state {
|
||||
BatteryState::Charging | BatteryState::PendingCharge => {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue