Skip to content

Commit 2a21287

Browse files
authored
Merge pull request #44 from lonesometraveler/gui_settings
Refactor GuiSettingsContainer load/save
2 parents 06733d7 + a498a5b commit 2a21287

File tree

2 files changed

+16
-17
lines changed

2 files changed

+16
-17
lines changed

src/gui.rs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use crate::data::{DataContainer, SerialDirection};
22
use crate::toggle::toggle;
3-
use crate::{vec2, APP_INFO};
3+
use crate::{vec2, APP_INFO, PREFS_KEY};
44
use core::f32;
55
use eframe::egui::panel::Side;
66
use eframe::egui::plot::{Legend, Line, Plot, PlotPoints};
@@ -568,12 +568,8 @@ impl eframe::App for MyApp {
568568
}
569569

570570
fn save(&mut self, _storage: &mut dyn Storage) {
571-
let prefs_key = "config/gui";
572-
match self.gui_conf.save(&APP_INFO, prefs_key) {
573-
Ok(_) => {}
574-
Err(err) => {
575-
println!("gui settings save failed: {:?}", err);
576-
}
571+
if let Err(err) = self.gui_conf.save(&APP_INFO, PREFS_KEY) {
572+
println!("gui settings save failed: {:?}", err);
577573
}
578574
}
579575
}

src/main.rs

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ const APP_INFO: AppInfo = AppInfo {
2929
name: "Serial Monitor",
3030
author: "Linus Leo Stöckli",
3131
};
32+
const PREFS_KEY: &str = "config/gui";
3233

3334
fn split(payload: &str) -> Vec<f32> {
3435
let mut split_data: Vec<&str> = vec![];
@@ -120,16 +121,7 @@ fn main_thread(
120121
}
121122

122123
fn main() {
123-
let mut gui_settings = GuiSettingsContainer::default();
124-
let prefs_key = "config/gui";
125-
if let Ok(load_result) = GuiSettingsContainer::load(&APP_INFO, prefs_key) {
126-
gui_settings = load_result;
127-
} else {
128-
// save default settings
129-
if gui_settings.save(&APP_INFO, prefs_key).is_err() {
130-
println!("failed to save gui_settings");
131-
}
132-
}
124+
let gui_settings = load_gui_settings();
133125

134126
let device_lock = Arc::new(RwLock::new(gui_settings.device.clone()));
135127
let devices_lock = Arc::new(RwLock::new(vec![gui_settings.device.clone()]));
@@ -213,3 +205,14 @@ fn main() {
213205
println!("error: {e:?}");
214206
}
215207
}
208+
209+
fn load_gui_settings() -> GuiSettingsContainer {
210+
let gui_settings = GuiSettingsContainer::load(&APP_INFO, PREFS_KEY).unwrap_or_default();
211+
if gui_settings == GuiSettingsContainer::default() {
212+
// save default settings
213+
if gui_settings.save(&APP_INFO, PREFS_KEY).is_err() {
214+
println!("failed to save gui_settings");
215+
}
216+
}
217+
gui_settings
218+
}

0 commit comments

Comments
 (0)