Skip to content

Commit f0c6962

Browse files
committed
Loaded
1 parent 57aeb6b commit f0c6962

3 files changed

Lines changed: 40 additions & 14 deletions

File tree

Lines changed: 38 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
use czkawka_core::common::get_all_available_threads;
2-
use slint::{ComponentHandle, VecModel};
2+
use slint::{ComponentHandle, SharedString, VecModel};
3+
use slint::Model;
34

45
use crate::settings::combo_box::StringComboBoxItems;
56
use crate::{GuiState, MainWindow, Settings};
67

7-
//
8-
// // Some info needs to be send to gui at the start like available thread number in OS.
98
pub(crate) fn set_initial_gui_infos(app: &MainWindow) {
109
let threads = get_all_available_threads();
1110
let settings = app.global::<Settings>();
@@ -25,13 +24,40 @@ pub(crate) fn set_initial_gui_infos(app: &MainWindow) {
2524
video_optimizer_crop_type,
2625
video_optimizer_mode,
2726
video_optimizer_video_codec,
28-
} = *collected_items;
29-
30-
settings.set_languages_list(VecModel::from_slice(&StringComboBoxItems::get_display_names(&languages)));
31-
settings.set_similar_images_sub_available_hash_size(VecModel::from_slice(&StringComboBoxItems::get_display_names(&collected_items.hash_size)));
32-
settings.set_similar_images_sub_available_resize_algorithm(VecModel::from_slice(&StringComboBoxItems::get_display_names(&collected_items.resize_algorithm)));
33-
settings.set_similar_images_sub_available_hash_type(VecModel::from_slice(&StringComboBoxItems::get_display_names(&collected_items.image_hash_alg)));
34-
settings.set_biggest_files_sub_method(VecModel::from_slice(&StringComboBoxItems::get_display_names(&collected_items.biggest_files_method)));
35-
settings.set_duplicates_sub_check_method(VecModel::from_slice(&StringComboBoxItems::get_display_names(&collected_items.duplicates_check_method)));
36-
settings.set_duplicates_sub_available_hash_type(VecModel::from_slice(&StringComboBoxItems::get_display_names(&collected_items.duplicates_hash_type)));
27+
} = &*collected_items;
28+
29+
let languages_display_names = StringComboBoxItems::get_display_names(languages);
30+
let hash_size_display_names = StringComboBoxItems::get_display_names(hash_size);
31+
let resize_algorithm_display_names = StringComboBoxItems::get_display_names(resize_algorithm);
32+
let image_hash_alg_display_names = StringComboBoxItems::get_display_names(image_hash_alg
33+
);
34+
let duplicates_hash_type_display_names = StringComboBoxItems::get_display_names(duplicates_hash_type);
35+
let biggest_files_method_display_names = StringComboBoxItems::get_display_names(biggest_files_method);
36+
let audio_check_type_display_names = StringComboBoxItems::get_display_names(audio_check_type);
37+
let duplicates_check_method_display_names = StringComboBoxItems::get_display_names(duplicates_check_method);
38+
let videos_crop_detect_display_names = StringComboBoxItems::get_display_names(videos_crop_detect);
39+
let video_optimizer_crop_type_display_names = StringComboBoxItems::get_display_names(video_optimizer_crop_type);
40+
let video_optimizer_mode_display_names = StringComboBoxItems::get_display_names(video_optimizer_mode);
41+
let video_optimizer_video_codec_display_names = StringComboBoxItems::get_display_names(video_optimizer_video_codec);
42+
43+
// Currently this is not possible due to slint bug - after 11.0 version I will try to fight with this - https://github.com/slint-ui/slint/issues/7632
44+
// For now I just assert that names will be in sync with slint files
45+
46+
// settings.set_languages_list(VecModel::from_slice(&StringComboBoxItems::get_display_names(&languages)));
47+
// settings.set_similar_images_sub_available_hash_size(VecModel::from_slice(&StringComboBoxItems::get_display_names(&hash_size)));
48+
// settings.set_similar_images_sub_available_resize_algorithm(VecModel::from_slice(&StringComboBoxItems::get_display_names(&resize_algorithm)));
49+
// settings.set_similar_images_sub_available_hash_type(VecModel::from_slice(&StringComboBoxItems::get_display_names(&image_hash_alg)));
50+
// settings.set_biggest_files_sub_method(VecModel::from_slice(&StringComboBoxItems::get_display_names(&biggest_files_method)));
51+
// settings.set_duplicates_sub_check_method(VecModel::from_slice(&StringComboBoxItems::get_display_names(&duplicates_check_method)));
52+
// settings.set_duplicates_sub_available_hash_type(VecModel::from_slice(&StringComboBoxItems::get_display_names(&duplicates_hash_type)));
53+
// settings.set_similar_music_sub_audio_check_type(VecModel::from_slice(&StringComboBoxItems::get_display_names(&audio_check_type)));
54+
// settings.set_similar_videos_crop_detect(VecModel::from_slice(&StringComboBoxItems::get_display_names(&videos_crop_detect)));
55+
// settings.set_video_optimizer_sub_crop_type(VecModel::from_slice(&StringComboBoxItems::get_display_names(&video_optimizer_crop_type)));
56+
// settings.set_video_optimizer_sub_mode(VecModel::from_slice(&StringComboBoxItems::get_display_names(&video_optimizer_mode)));
57+
// settings.set_video_optimizer_sub_video_codec_config(VecModel::from_slice(&StringComboBoxItems::get_display_names(&video_optimizer_video_codec)));
58+
59+
60+
// let a : () = settings.get_languages_list().iter().collect::<Vec<SharedString>>();
61+
assert_eq!(settings.get_languages_list().iter().collect::<Vec<SharedString>>(), languages_display_names);
62+
3763
}

krokiet/src/settings/combo_box.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ impl StringComboBoxItems {
163163
*STRING_COMBO_BOX_ITEMS.lock().expect("Can't lock string combobox items") = Self::regenerate_items();
164164
}
165165

166-
pub(crate) fn get_display_names<T>(items: &Vec<StringComboBoxItem<T>>) -> Vec<SharedString> {
166+
pub(crate) fn get_display_names<T: Debug + Clone>(items: &[StringComboBoxItem<T>]) -> Vec<SharedString> {
167167
items.iter().map(|e| e.display_name.clone().into()).collect()
168168
}
169169
}

krokiet/ui/settings.slint

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ export global Settings {
44
in-out property <int> settings_preset_idx: 0;
55
in-out property <[string]> settings_presets: ["Preset 1", "Preset 2"];
66

7-
in-out property <[string]> languages_list: ["English", "Polski (Polish)", "Français (French)", "Italiano (Italian)", "Русский (Russian)", "український (Ukrainian)", "한국인 (Korean)", "Česky (Czech)", "Deutsch (German)", "やまと (Japanese)", "Português (Portuguese)", "Português Brasileiro (Brazilian Portuguese)", "简体中文 (Simplified Chinese)", "繁體中文 (Traditional Chinese)", "Español (Spanish)", "Norsk (Norwegian)", "Swedish (Svenska)", "المملكة العربية السعودية (Saudi Arabia)", "България (Bulgaria)", "Ελλάδα (Greece)", "Nederland (Netherlands)", "România (Romanian)", "Türkçe (Turkish)"];
7+
in-out property <[string]> languages_list: ["English", "Polski (Polish)", "Français (French)", "Italiano (Italian)", "Русский (Russian)", "український (Ukrainian)", "한국어 (Korean)", "Česky (Czech)", "Deutsch (German)", "日本語 (Japanese)", "Português (Portuguese)", "Português Brasileiro (Brazilian Portuguese)", "简体中文 (Simplified Chinese)", "繁體中文 (Traditional Chinese)", "Español (Spanish)", "Norsk (Norwegian)", "Svenska (Swedish)", "العربية (Arabic)", "Български (Bulgarian)", "Ελληνικά (Greek)", "Nederlands (Dutch)", "Română (Romanian)", "Türkçe (Turkish)"];
88
in-out property <int> language_index: 0;
99
in-out property <string> language_value: "English";
1010

0 commit comments

Comments
 (0)