ensure persistent_state is easier and more infallible to add fields to
This commit is contained in:
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
mod app;
|
pub mod app;
|
||||||
mod colours;
|
mod colours;
|
||||||
mod debug;
|
mod debug;
|
||||||
pub mod run;
|
pub mod run;
|
||||||
|
|||||||
+1
-3
@@ -14,9 +14,7 @@ fn app_creator(
|
|||||||
let mut app = Box::new(App::default());
|
let mut app = Box::new(App::default());
|
||||||
// load previously selected launch platform & settings from persistent state
|
// load previously selected launch platform & settings from persistent state
|
||||||
if let Some(persistent_state) = PersistentState::get() {
|
if let Some(persistent_state) = PersistentState::get() {
|
||||||
app.launch.selected = persistent_state.launcher;
|
persistent_state.apply_to(&mut app);
|
||||||
app.anti_afk.enabled = persistent_state.anti_afk_enabled;
|
|
||||||
app.settings = persistent_state.settings;
|
|
||||||
}
|
}
|
||||||
// check if we're elevated. if not, and the user wants an elevated launch - relaunch elevated
|
// check if we're elevated. if not, and the user wants an elevated launch - relaunch elevated
|
||||||
if !app.flags.elevated && app.settings.start_elevated {
|
if !app.flags.elevated && app.settings.start_elevated {
|
||||||
|
|||||||
@@ -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 serde::{Deserialize, Serialize};
|
||||||
use std::{
|
use std::{
|
||||||
fs::{self, File},
|
fs::{self, File},
|
||||||
@@ -24,4 +28,15 @@ impl PersistentState {
|
|||||||
let json = serde_json::to_string_pretty(&self).unwrap();
|
let json = serde_json::to_string_pretty(&self).unwrap();
|
||||||
config_file.write_all(json.as_bytes()).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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user