From c34cf187d5e49fd913eb5df882b659ed60ed9141 Mon Sep 17 00:00:00 2001 From: futile Date: Thu, 6 Nov 2025 23:55:04 +0000 Subject: [PATCH] ensure persistent_state is easier and more infallible to add fields to --- src/gui.rs | 2 +- src/gui/run.rs | 4 +--- src/util/persistent_state.rs | 17 ++++++++++++++++- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/gui.rs b/src/gui.rs index 30b044b..c8804fa 100644 --- a/src/gui.rs +++ b/src/gui.rs @@ -1,4 +1,4 @@ -mod app; +pub mod app; mod colours; mod debug; pub mod run; diff --git a/src/gui/run.rs b/src/gui/run.rs index 88ecba4..bb3d23a 100644 --- a/src/gui/run.rs +++ b/src/gui/run.rs @@ -14,9 +14,7 @@ fn app_creator( let mut app = Box::new(App::default()); // load previously selected launch platform & settings from persistent state if let Some(persistent_state) = PersistentState::get() { - app.launch.selected = persistent_state.launcher; - app.anti_afk.enabled = persistent_state.anti_afk_enabled; - app.settings = persistent_state.settings; + persistent_state.apply_to(&mut app); } // check if we're elevated. if not, and the user wants an elevated launch - relaunch elevated if !app.flags.elevated && app.settings.start_elevated { diff --git a/src/util/persistent_state.rs b/src/util/persistent_state.rs index 87714e3..6c7f514 100644 --- a/src/util/persistent_state.rs +++ b/src/util/persistent_state.rs @@ -1,4 +1,8 @@ -use crate::{features::launch::Platform, gui::settings::Settings, util::consts::path}; +use crate::{ + features::launch::Platform, + gui::{app, settings::Settings}, + util::consts::path, +}; use serde::{Deserialize, Serialize}; use std::{ fs::{self, File}, @@ -24,4 +28,15 @@ impl PersistentState { let json = serde_json::to_string_pretty(&self).unwrap(); config_file.write_all(json.as_bytes()).unwrap(); } + + pub fn apply_to(self, app: &mut app::App) { + let Self { + launcher, + anti_afk_enabled, + settings, + } = self; + app.launch.selected = launcher; + app.anti_afk.enabled = anti_afk_enabled; + app.settings = settings; + } }