From 747a784977ef77c6113c4ae300652cec1528e261 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mikrut?= Date: Fri, 16 Feb 2024 23:00:48 +0100 Subject: [PATCH] =?UTF-8?q?Poprawa=20element=C3=B3w?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- krokiet/src/model_operations.rs | 2 -- krokiet/src/settings.rs | 16 +++++++++++----- krokiet/ui/settings.slint | 7 +++++++ krokiet/ui/tool_settings.slint | 9 +++++++++ 4 files changed, 27 insertions(+), 7 deletions(-) diff --git a/krokiet/src/model_operations.rs b/krokiet/src/model_operations.rs index 724855c..ea3d0e6 100644 --- a/krokiet/src/model_operations.rs +++ b/krokiet/src/model_operations.rs @@ -34,8 +34,6 @@ pub fn collect_path_name_from_model(items: &[MainListModel], active_tab: Current items .iter() .map(|item| { - dbg!(item.val_str.iter().nth(path_idx).unwrap().to_string()); - dbg!(item.val_str.iter().nth(name_idx).unwrap().to_string()); ( item.val_str.iter().nth(path_idx).unwrap().to_string(), item.val_str.iter().nth(name_idx).unwrap().to_string(), diff --git a/krokiet/src/settings.rs b/krokiet/src/settings.rs index 20839a0..9e07b9b 100644 --- a/krokiet/src/settings.rs +++ b/krokiet/src/settings.rs @@ -8,7 +8,7 @@ use home::home_dir; use image_hasher::{FilterType, HashAlg}; use log::{debug, error, info, warn}; use serde::{Deserialize, Serialize}; -use slint::{ComponentHandle, Model, ModelRc}; +use slint::{ComponentHandle, Model, ModelRc, SharedString, VecModel}; use czkawka_core::common::{get_all_available_threads, set_number_of_threads}; use czkawka_core::common_dir_traversal::CheckingMethod; @@ -447,6 +447,8 @@ pub fn set_settings_to_gui(app: &MainWindow, custom_settings: &SettingsCustom) { 0 }); settings.set_similar_images_sub_hash_size_index(similar_images_sub_hash_size_idx as i32); + settings.set_similar_images_sub_hash_size_value(ALLOWED_HASH_SIZE_VALUES[similar_images_sub_hash_size_idx].1.to_string().into()); + // TODO all items with _value are not necessary, but due bug in slint are required, because combobox is not updated properly let similar_images_sub_hash_type_idx = get_hash_type_idx(&custom_settings.similar_images_sub_hash_type).unwrap_or_else(|| { warn!( @@ -465,6 +467,7 @@ pub fn set_settings_to_gui(app: &MainWindow, custom_settings: &SettingsCustom) { 0 }); settings.set_similar_images_sub_resize_algorithm_index(similar_images_sub_resize_algorithm_idx as i32); + settings.set_similar_images_sub_resize_algorithm_value(ALLOWED_RESIZE_ALGORITHM_VALUES[similar_images_sub_resize_algorithm_idx].1.to_string().into()); settings.set_similar_images_sub_ignore_same_size(custom_settings.similar_images_sub_ignore_same_size); settings.set_similar_images_sub_max_similarity(40.0); @@ -478,6 +481,7 @@ pub fn set_settings_to_gui(app: &MainWindow, custom_settings: &SettingsCustom) { 0 }); settings.set_duplicates_sub_check_method_index(duplicates_sub_check_method_idx as i32); + settings.set_duplicates_sub_check_method_value(ALLOWED_DUPLICATES_CHECK_METHOD_VALUES[duplicates_sub_check_method_idx].1.to_string().into()); let duplicates_sub_available_hash_type_idx = get_duplicates_hash_type_idx(&custom_settings.duplicates_sub_available_hash_type).unwrap_or_else(|| { warn!( "Value of duplicates hash type \"{}\" is invalid, setting it to default value", @@ -486,6 +490,7 @@ pub fn set_settings_to_gui(app: &MainWindow, custom_settings: &SettingsCustom) { 0 }); settings.set_duplicates_sub_available_hash_type_index(duplicates_sub_available_hash_type_idx as i32); + settings.set_duplicates_sub_available_hash_type_value(ALLOWED_DUPLICATES_HASH_TYPE_VALUES[duplicates_sub_available_hash_type_idx].1.to_string().into()); let biggest_files_sub_method_idx = get_biggest_item_idx(&custom_settings.biggest_files_sub_method).unwrap_or_else(|| { warn!( @@ -495,7 +500,10 @@ pub fn set_settings_to_gui(app: &MainWindow, custom_settings: &SettingsCustom) { 0 }); settings.set_biggest_files_sub_method_index(biggest_files_sub_method_idx as i32); + settings.set_biggest_files_sub_method_value(ALLOWED_BIG_FILE_SIZE_VALUES[biggest_files_sub_method_idx].1.to_string().into()); settings.set_biggest_files_sub_number_of_files(custom_settings.biggest_files_sub_number_of_files.to_string().into()); + let all_gui_items: Vec = ALLOWED_BIG_FILE_SIZE_VALUES.iter().map(|(_, gui_name, _)| (*gui_name).into()).collect::>(); + settings.set_biggest_files_sub_method(ModelRc::new(VecModel::from(all_gui_items))); settings.set_similar_videos_sub_ignore_same_size(custom_settings.similar_videos_sub_ignore_same_size); settings.set_similar_videos_sub_current_similarity(custom_settings.similar_videos_sub_similarity as f32); @@ -509,6 +517,7 @@ pub fn set_settings_to_gui(app: &MainWindow, custom_settings: &SettingsCustom) { 0 }); settings.set_similar_music_sub_audio_check_type_index(similar_music_sub_audio_check_type_idx as i32); + settings.set_similar_music_sub_audio_check_type_value(ALLOWED_AUDIO_CHECK_TYPE_VALUES[similar_music_sub_audio_check_type_idx].1.to_string().into()); settings.set_similar_music_sub_approximate_comparison(custom_settings.similar_music_sub_approximate_comparison); settings.set_similar_music_sub_title(custom_settings.similar_music_sub_title); settings.set_similar_music_sub_artist(custom_settings.similar_music_sub_artist); @@ -704,9 +713,6 @@ fn default_biggest_method() -> String { fn default_audio_check_type() -> String { ALLOWED_AUDIO_CHECK_TYPE_VALUES[0].0.to_string() } -fn default_hash_size() -> u8 { - DEFAULT_HASH_SIZE -} fn default_video_similarity() -> i32 { DEFAULT_VIDEO_SIMILARITY } @@ -752,7 +758,7 @@ pub fn default_hash_type() -> String { ALLOWED_HASH_TYPE_VALUES[0].0.to_string() } pub fn default_sub_hash_size() -> u8 { - 16 + DEFAULT_HASH_SIZE } fn get_allowed_hash_size_idx(h_size: u8) -> Option { diff --git a/krokiet/ui/settings.slint b/krokiet/ui/settings.slint index e35d74f..d004a64 100644 --- a/krokiet/ui/settings.slint +++ b/krokiet/ui/settings.slint @@ -43,10 +43,13 @@ export global Settings { // Similar Images in-out property <[string]> similar_images_sub_available_hash_size: ["8", "16", "32", "64"]; in-out property similar_images_sub_hash_size_index: 0; + in-out property similar_images_sub_hash_size_value: "8"; in-out property <[string]> similar_images_sub_available_resize_algorithm: ["Lanczos3", "Nearest", "Triangle", "Gaussian", "CatmullRom"]; in-out property similar_images_sub_resize_algorithm_index: 0; + in-out property similar_images_sub_resize_algorithm_value: "Lanczos3"; in-out property <[string]> similar_images_sub_available_hash_type: ["Gradient", "Mean", "VertGradient", "BlockHash", "DoubleGradient"]; in-out property similar_images_sub_hash_type_index: 0; + in-out property similar_images_sub_hash_type_value: "Gradient"; in-out property similar_images_sub_max_similarity: 40; in-out property similar_images_sub_current_similarity: 20; in-out property similar_images_sub_ignore_same_size; @@ -54,12 +57,15 @@ export global Settings { // Duplicates in-out property <[string]> duplicates_sub_check_method: ["Hash", "Size", "Name", "Size and Name"]; in-out property duplicates_sub_check_method_index: 0; + in-out property duplicates_sub_check_method_value: "Hash"; in-out property <[string]> duplicates_sub_available_hash_type: ["Blake3", "CRC32", "XXH3"]; in-out property duplicates_sub_available_hash_type_index: 0; + in-out property duplicates_sub_available_hash_type_value: "Blake3"; // Big files in-out property <[string]> biggest_files_sub_method: ["The Biggest", "The Smallest"]; in-out property biggest_files_sub_method_index: 0; + in-out property biggest_files_sub_method_value: "The Biggest"; in-out property biggest_files_sub_number_of_files: 50; // Similar Videos @@ -70,6 +76,7 @@ export global Settings { // Same Music in-out property <[string]> similar_music_sub_audio_check_type: ["Tags", "Fingerprint"]; in-out property similar_music_sub_audio_check_type_index: 0; + in-out property similar_music_sub_audio_check_type_value: "Tags"; in-out property similar_music_sub_approximate_comparison; in-out property similar_music_sub_title: true; in-out property similar_music_sub_artist: true; diff --git a/krokiet/ui/tool_settings.slint b/krokiet/ui/tool_settings.slint index 0f9537a..f527705 100644 --- a/krokiet/ui/tool_settings.slint +++ b/krokiet/ui/tool_settings.slint @@ -19,6 +19,7 @@ component ComboBoxWrapper inherits HorizontalLayout { in-out property text; in-out property <[string]> model; in-out property current_index; + in-out property current_value; spacing: 5px; Text { text <=> root.text; @@ -27,6 +28,7 @@ component ComboBoxWrapper inherits HorizontalLayout { ComboBox { model: root.model; current_index <=> root.current_index; + current_value <=> root.current_value; } } @@ -72,16 +74,19 @@ export component ToolSettings { text: "Hash size"; model: Settings.similar_images_sub_available_hash_size; current_index <=> Settings.similar_images_sub_hash_size_index; + current_value <=> Settings.similar_images_sub_hash_size_value; } ComboBoxWrapper { text: "Resize Algorithm"; model: Settings.similar_images_sub_available_resize_algorithm; current_index <=> Settings.similar_images_sub_resize_algorithm_index; + current_value <=> Settings.similar_images_sub_resize_algorithm_value; } ComboBoxWrapper { text: "Hash type"; model: Settings.similar_images_sub_available_hash_type; current_index <=> Settings.similar_images_sub_hash_type_index; + current_value <=> Settings.similar_images_sub_hash_type_value; } CheckBoxWrapper { text: "Ignore same size"; @@ -105,11 +110,13 @@ export component ToolSettings { text: "Check method"; model: Settings.duplicates_sub_check_method; current_index <=> Settings.duplicates_sub_check_method_index; + current_value <=> Settings.duplicates_sub_check_method_value; } ComboBoxWrapper { text: "Hash type"; model: Settings.duplicates_sub_available_hash_type; current_index <=> Settings.duplicates_sub_available_hash_type_index; + current_value <=> Settings.duplicates_sub_available_hash_type_value; } Rectangle {} } @@ -122,6 +129,7 @@ export component ToolSettings { text: "Checked files"; model: Settings.biggest_files_sub_method; current_index <=> Settings.biggest_files_sub_method_index; + current_value <=> Settings.biggest_files_sub_method_value; } TextComponent { name: "Number of files"; @@ -156,6 +164,7 @@ export component ToolSettings { text: "Audio check type"; model: Settings.similar_music_sub_audio_check_type; current_index <=> Settings.similar_music_sub_audio_check_type_index; + current_value <=> Settings.similar_music_sub_audio_check_type_value; } CheckBoxWrapper { text: "Approximate Tag Comparison";