@@ -8,6 +8,7 @@ pub enum PrefsKey {
8
8
HubEditorsPath ,
9
9
HubAppDataPath ,
10
10
NewProjectPath ,
11
+ ProjectSortType
11
12
}
12
13
13
14
#[ derive( Debug , Clone , serde:: Serialize , serde:: Deserialize ) ]
@@ -21,6 +22,7 @@ pub struct Prefs {
21
22
pub hub_editors_path : Option < PathBuf > ,
22
23
// typically C:\Users\nomno\AppData\Roaming\UnityHub\
23
24
pub hub_appdata_path : Option < PathBuf > ,
25
+ pub project_sort_type : Option < crate :: project:: SortType >
24
26
}
25
27
26
28
impl Default for Prefs {
@@ -47,6 +49,8 @@ impl Default for Prefs {
47
49
hub_editors_path : None ,
48
50
49
51
hub_appdata_path : Some ( dirs_next:: config_dir ( ) . unwrap ( ) . join ( "UnityHub" ) ) ,
52
+
53
+ project_sort_type : None
50
54
}
51
55
}
52
56
}
@@ -85,8 +89,11 @@ pub fn cmd_save_prefs(app_handle: tauri::AppHandle, app_state: tauri::State<AppS
85
89
}
86
90
87
91
#[ tauri:: command]
88
- pub fn cmd_set_pref_value ( app_state : tauri:: State < ' _ , AppState > , key : PrefsKey , value : serde_json:: Value ) -> Result < ( ) , errors:: AnyError > {
89
- let mut prefs = app:: get_prefs ( & app_state) ?;
92
+ pub fn cmd_set_pref_value ( app_handle : tauri:: AppHandle , app_state : tauri:: State < ' _ , AppState > , key : PrefsKey , value : serde_json:: Value ) -> Result < ( ) , errors:: AnyError > {
93
+ // let mut prefs = app::get_prefs(&app_state)?;
94
+ let mut prefs = app_state. prefs . lock ( )
95
+ . map_err ( |_| errors:: str_error ( "Failed to get prefs. Is it locked?" ) ) ?;
96
+
90
97
match key {
91
98
PrefsKey :: NewProjectPath => {
92
99
prefs. new_project_path = serde_json:: from_value ( value) ?;
@@ -100,7 +107,13 @@ pub fn cmd_set_pref_value(app_state: tauri::State<'_, AppState>, key: PrefsKey,
100
107
PrefsKey :: HubAppDataPath => {
101
108
prefs. hub_appdata_path = serde_json:: from_value ( value) ?;
102
109
} ,
110
+ PrefsKey :: ProjectSortType => {
111
+ prefs. project_sort_type = serde_json:: from_value ( value) ?;
112
+ } ,
103
113
// _ => return Err(errors::str_error("Invalid key")),
104
114
}
115
+
116
+ app:: save_prefs_to_disk ( & prefs, & app_handle) ?;
117
+
105
118
Ok ( ( ) )
106
119
}
0 commit comments