From 12ce4f18a7b2e9fc8d6554f3e436d4e84f8025c6 Mon Sep 17 00:00:00 2001 From: Observer KRypt0n_ Date: Sat, 18 Mar 2023 20:44:33 +0200 Subject: [PATCH] fix: fixed DXVK applying on changed default path during initial setup As well I disabled long swipes and wheel scrolling for carousel. Don't know why I forgot to do it before, but nobody noticed it so.. --- src/ui/first_run/download_components.rs | 20 ++++++++++++-------- src/ui/first_run/main.rs | 8 ++++++-- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/ui/first_run/download_components.rs b/src/ui/first_run/download_components.rs index 6c0068c..2b2cf0b 100644 --- a/src/ui/first_run/download_components.rs +++ b/src/ui/first_run/download_components.rs @@ -314,15 +314,17 @@ impl SimpleAsyncComponent for DownloadComponentsApp { async fn update(&mut self, msg: Self::Input, sender: AsyncComponentSender) { match msg { DownloadComponentsAppMsg::UpdateVersionsLists => { + let config = config::get().unwrap_or_else(|_| CONFIG.clone()); + // 4 latest versions of 4 first available wine group - self.wine_versions = wine::get_groups(&CONFIG.components.path).unwrap() + self.wine_versions = wine::get_groups(&config.components.path).unwrap() .into_iter() .take(4) .flat_map(|group| group.versions.into_iter().take(4)) .collect(); // 4 latest versions of 4 first available dxvk group - self.dxvk_versions = dxvk::get_groups(&CONFIG.components.path).unwrap() + self.dxvk_versions = dxvk::get_groups(&config.components.path).unwrap() .into_iter() .take(4) .flat_map(|group| group.versions.into_iter().take(4)) @@ -331,7 +333,7 @@ impl SimpleAsyncComponent for DownloadComponentsApp { #[allow(unused_must_use)] DownloadComponentsAppMsg::DownloadWine => { - let config = config::get().unwrap_or_default(); + let config = config::get().unwrap_or_else(|_| CONFIG.clone()); self.selected_wine = Some(self.wine_versions[self.wine_combo.selected() as usize].clone()); self.selected_dxvk = Some(self.dxvk_versions[self.dxvk_combo.selected() as usize].clone()); @@ -350,7 +352,7 @@ impl SimpleAsyncComponent for DownloadComponentsApp { if wine.is_downloaded_in(&config.game.wine.builds) { tracing::info!("Wine already installed: {}", wine.name); - let mut config = config::get().unwrap_or_default(); + let mut config = config::get().unwrap_or_else(|_| CONFIG.clone()); config.game.wine.selected = Some(wine.name); @@ -402,7 +404,7 @@ impl SimpleAsyncComponent for DownloadComponentsApp { // Create prefix InstallerUpdate::UnpackingFinished => { - let mut config = config::get().unwrap_or_default(); + let mut config = config::get().unwrap_or_else(|_| CONFIG.clone()); config.game.wine.selected = Some(wine.name.clone()); @@ -443,7 +445,7 @@ impl SimpleAsyncComponent for DownloadComponentsApp { self.downloading_wine = Some(true); self.creating_prefix = Some(false); - let config = config::get().unwrap_or_default(); + let config = config::get().unwrap_or_else(|_| CONFIG.clone()); tracing::info!("Creating wine prefix"); @@ -477,7 +479,7 @@ impl SimpleAsyncComponent for DownloadComponentsApp { self.creating_prefix = Some(true); self.downloading_dxvk = Some(false); - let config = config::get().unwrap_or_default(); + let config = config::get().unwrap_or_else(|_| CONFIG.clone()); let dxvk = self.selected_dxvk.clone().unwrap(); let progress_bar_input = self.progress_bar.sender().clone(); @@ -554,7 +556,7 @@ impl SimpleAsyncComponent for DownloadComponentsApp { self.downloading_dxvk = Some(true); self.applying_dxvk = Some(false); - let config = config::get().unwrap_or_default(); + let config = config::get().unwrap_or_else(|_| CONFIG.clone()); tracing::info!("Applying DXVK"); @@ -603,6 +605,8 @@ impl SimpleAsyncComponent for DownloadComponentsApp { // Skip DXVK applying if we don't need it else { + tracing::info!("Selected wine version has `need_dxvk = false` feature. Skipping DXVK applying..."); + sender.input(DownloadComponentsAppMsg::Continue); } } diff --git a/src/ui/first_run/main.rs b/src/ui/first_run/main.rs index 3973f8d..7342010 100644 --- a/src/ui/first_run/main.rs +++ b/src/ui/first_run/main.rs @@ -97,6 +97,8 @@ impl SimpleComponent for FirstRunApp { set_visible: model.loading.is_none(), set_allow_mouse_drag: false, + set_allow_long_swipes: false, + set_allow_scroll_wheel: false, append = model.welcome.widget(), append = model.tos_warning.widget(), @@ -217,12 +219,14 @@ impl SimpleComponent for FirstRunApp { // Update components index sender.input(FirstRunAppMsg::SetLoadingStatus(Some(Some(tr("updating-components-index"))))); + let config = config::get().unwrap_or_else(|_| CONFIG.clone()); + let components_sender = self.download_components.sender().clone(); - let components = ComponentsLoader::new(&CONFIG.components.path); + let components = ComponentsLoader::new(config.components.path); #[allow(unused_must_use)] std::thread::spawn(move || { - match components.is_sync(&CONFIG.components.servers) { + match components.is_sync(config.components.servers) { Ok(true) => (), Ok(false) => {