GTK App reactive switch and better UI

This commit is contained in:
dav 2023-12-09 12:38:54 -08:00
parent 29eedb7e9a
commit f7f59fd24d
20 changed files with 875 additions and 361 deletions

View file

@ -0,0 +1,44 @@
use super::*;
pub struct SettingsScreen {
_diag_group: AsyncController<settings::DiagGroup>,
}
pub struct SettingsScreenInit {
pub daemon_client: Arc<Mutex<Option<DaemonClient>>>,
}
#[relm4::component(pub)]
impl SimpleComponent for SettingsScreen {
type Init = SettingsScreenInit;
type Input = ();
type Output = ();
view! {
#[name(preferences)]
adw::PreferencesPage {}
}
fn init(
init: Self::Init,
root: &Self::Root,
sender: ComponentSender<Self>,
) -> ComponentParts<Self> {
let diag_group = settings::DiagGroup::builder()
.launch(settings::DiagGroupInit {
daemon_client: Arc::clone(&init.daemon_client),
})
.forward(sender.input_sender(), |_| ());
let widgets = view_output!();
widgets.preferences.add(diag_group.widget());
let model = SettingsScreen {
_diag_group: diag_group,
};
ComponentParts { model, widgets }
}
fn update(&mut self, _: Self::Input, _sender: ComponentSender<Self>) {}
}