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