From 2380df2612b714334f371e8f20a2a9f1509e7788 Mon Sep 17 00:00:00 2001 From: Gabriele Musco Date: Sun, 4 Aug 2024 17:39:44 +0200 Subject: [PATCH] feat: application doesn't need tracker; remove useless variable for debug view state; remove xrdevice merging between refreshes, always replace with updated list --- src/ui/app.rs | 41 ++------------------------ src/xr_devices.rs | 75 ----------------------------------------------- 2 files changed, 2 insertions(+), 114 deletions(-) diff --git a/src/ui/app.rs b/src/ui/app.rs index 62e92c2..573c878 100644 --- a/src/ui/app.rs +++ b/src/ui/app.rs @@ -59,61 +59,32 @@ use std::collections::VecDeque; use std::fs::remove_file; use std::time::Duration; -#[tracker::track] pub struct App { - enable_debug_view: bool, - - #[tracker::do_not_track] application: adw::Application, - #[tracker::do_not_track] app_win: adw::ApplicationWindow, - #[tracker::do_not_track] inhibit_id: Option, - #[tracker::do_not_track] main_view: Controller, - #[tracker::do_not_track] debug_view: Controller, - #[tracker::do_not_track] split_view: Option, - #[tracker::do_not_track] about_dialog: adw::AboutDialog, - #[tracker::do_not_track] build_window: Controller, - #[tracker::do_not_track] setcap_confirm_dialog: adw::MessageDialog, - #[tracker::do_not_track] libsurvive_setup_window: Controller, - #[tracker::do_not_track] config: Config, - #[tracker::do_not_track] xrservice_worker: Option, - #[tracker::do_not_track] autostart_worker: Option, - #[tracker::do_not_track] restart_xrservice: bool, - #[tracker::do_not_track] build_worker: Option, - #[tracker::do_not_track] profiles: Vec, - #[tracker::do_not_track] xr_devices: Vec, - #[tracker::do_not_track] libmonado: Option, - #[tracker::do_not_track] wivrn_conf_editor: Option>, - - #[tracker::do_not_track] skip_depcheck: bool, - - #[tracker::do_not_track] wivrn_appimage_warn_shown: bool, - #[tracker::do_not_track] configure_wivrn_action: gtk::gio::SimpleAction, - - #[tracker::do_not_track] openxr_prober_worker: Option, } @@ -348,8 +319,6 @@ impl SimpleComponent for App { } fn update(&mut self, message: Self::Input, sender: ComponentSender) { - self.reset(); - match message { Msg::NoOp => {} Msg::OnServiceLog(rows) => { @@ -391,10 +360,7 @@ impl SimpleComponent for App { }; if stop_condition { if let Some(monado) = self.libmonado.as_ref() { - self.xr_devices = XRDevice::merge( - &self.xr_devices, - &XRDevice::from_libmonado(monado), - ); + self.xr_devices = XRDevice::from_libmonado(monado); self.main_view .sender() .emit(MainViewMsg::UpdateDevices(self.xr_devices.clone())); @@ -408,7 +374,6 @@ impl SimpleComponent for App { } } Msg::EnableDebugViewChanged(val) => { - self.set_enable_debug_view(val); self.config.debug_view_enabled = val; self.config.save(); self.split_view.clone().unwrap().set_collapsed(!val); @@ -884,7 +849,6 @@ impl SimpleComponent for App { let selected_profile = config.get_selected_profile(&profiles); let mut model = App { - tracker: 0, application: init.application, app_win: root.clone(), inhibit_id: None, @@ -923,7 +887,6 @@ impl SimpleComponent for App { .detach(), split_view: None, setcap_confirm_dialog, - enable_debug_view: config.debug_view_enabled, config, profiles, xrservice_worker: None, @@ -955,7 +918,7 @@ impl SimpleComponent for App { ) ); actions.add_action(RelmAction::::new_stateful( - &model.enable_debug_view, + &model.config.debug_view_enabled, clone!( #[strong] sender, diff --git a/src/xr_devices.rs b/src/xr_devices.rs index 3a03435..aea681f 100644 --- a/src/xr_devices.rs +++ b/src/xr_devices.rs @@ -319,79 +319,4 @@ impl XRDevice { } res } - - #[deprecated] - pub fn from_log_message(s: &str) -> Vec { - let mut res = vec![]; - let rows = s.split('\n'); - let mut in_section = false; - for row in rows { - if !in_section && row.starts_with("\tIn roles:") { - in_section = true; - continue; - } - if in_section { - if row.starts_with("\tResult:") { - break; - } - match row.trim().split(": ").collect::>()[..] { - [_, ""] => {} - [dev_type_s, name] => { - if let Some(xrdt) = XRDeviceRole::from_monado_str(dev_type_s) { - res.push(Self { - dev_type: xrdt, - name: name.to_string(), - ..Default::default() - }); - } - } - _ => {} - } - } - } - res - } - - pub fn merge(old: &[Self], new: &[Self]) -> Vec { - if old.is_empty() { - return Vec::from(new); - } - let new_dev_types = new - .iter() - .filter_map(|d| { - if d.dev_type == XRDeviceRole::GenericTracker { - None - } else { - Some(d.dev_type) - } - }) - .collect::>(); - let mut res = old - .iter() - .filter(|d| !new_dev_types.contains(&d.dev_type)) - .map(Self::clone) - .collect::>(); - let old_tracker_serials = old - .iter() - .filter_map(|d| { - if d.dev_type == XRDeviceRole::GenericTracker { - d.serial.clone() - } else { - None - } - }) - .collect::>(); - for n_dev in new { - if n_dev.dev_type == XRDeviceRole::GenericTracker { - if let Some(n_serial) = n_dev.serial.as_ref() { - if !old_tracker_serials.contains(n_serial) { - res.push(n_dev.clone()); - } - } - } else { - res.push(n_dev.clone()); - } - } - res - } }