From ee88df72ec9e0dc9c41fe81934e6284edcd6718e Mon Sep 17 00:00:00 2001 From: Leon Liu Date: Mon, 30 Dec 2024 17:54:27 +0900 Subject: [PATCH] update --- src-tauri/Cargo.toml | 1 + src-tauri/src/lib.rs | 38 +++++++++++++++++------- src/app.rs | 70 ++++++++++++++++++++++++++++---------------- 3 files changed, 72 insertions(+), 37 deletions(-) diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 15e6210..e17464d 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -28,3 +28,4 @@ serde_json = "1.0.133" thiserror = "2.0.8" directories = "5.0.1" indoc = "2.0.5" +open = "5.3.1" diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 5ae1329..557123f 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -65,6 +65,11 @@ fn get_config(state: State<'_, Mutex>) -> POE2FilterConfig { state.lock().unwrap().config.clone() } +#[tauri::command] +fn open_config_folder(state: State<'_, Mutex>) { + let _ = open::that(state.lock().unwrap().config_dir.clone()); +} + fn generate_filter(config: &POE2FilterConfig) -> String { let mut rules: Vec = vec![]; let weapons_to_hide = config @@ -75,9 +80,12 @@ fn generate_filter(config: &POE2FilterConfig) -> String { .collect::>() .join(" "); let max_level = config.settings.max_level; - rules.push(with_leveling_setting(formatdoc! {" + rules.push(with_leveling_setting( + formatdoc! {" Hide - Class {weapons_to_hide}"}, max_level)); + Class {weapons_to_hide}"}, + max_level, + )); config .armours @@ -124,10 +132,13 @@ fn generate_filter(config: &POE2FilterConfig) -> String { armour_rules .iter() .map(|rule| { - with_leveling_setting(formatdoc! {" + with_leveling_setting( + formatdoc! {" Show Class {kind} - {rule}"}, max_level) + {rule}"}, + max_level, + ) }) .collect::>() }) @@ -138,9 +149,12 @@ fn generate_filter(config: &POE2FilterConfig) -> String { .map(|filter| format!(r#""{}""#, filter.kind.to_string())) .collect::>() .join(" "); - rules.push(with_leveling_setting(formatdoc! {" + rules.push(with_leveling_setting( + formatdoc! {" Hide - Class {all_armours}"}, max_level)); + Class {all_armours}"}, + max_level, + )); (11..max_level) .map(|i| { @@ -219,9 +233,7 @@ fn init() -> AppState { }) .collect(), accessories: vec![], - settings: FilterSettings { - max_level: 80 - } + settings: FilterSettings { max_level: 80 }, }; write_config(config_dir.join(CONFIG_PATH), &config); config @@ -257,7 +269,11 @@ pub fn run() { Ok(()) }) .plugin(tauri_plugin_opener::init()) - .invoke_handler(tauri::generate_handler![update, get_config]) + .invoke_handler(tauri::generate_handler![ + update, + get_config, + open_config_folder + ]) .run(tauri::generate_context!()) .expect("error while running tauri application"); } @@ -271,7 +287,7 @@ struct POE2FilterConfig { } #[derive(Debug, Clone, Serialize, Deserialize, Default)] struct FilterSettings { - max_level: u32 + max_level: u32, } #[derive(Debug, Clone, strum_macros::Display, EnumIter, Serialize, Deserialize)] diff --git a/src/app.rs b/src/app.rs index 6487c4b..67d34cd 100644 --- a/src/app.rs +++ b/src/app.rs @@ -119,8 +119,20 @@ fn Main(config: POE2FilterConfig) -> impl IntoView { let max_level = store.settings().max_level(); view! {
-