11use czkawka_core:: common:: get_all_available_threads;
2- use slint:: { ComponentHandle , VecModel } ;
2+ use slint:: { ComponentHandle , SharedString , VecModel } ;
3+ use slint:: Model ;
34
45use crate :: settings:: combo_box:: StringComboBoxItems ;
56use crate :: { GuiState , MainWindow , Settings } ;
67
7- //
8- // // Some info needs to be send to gui at the start like available thread number in OS.
98pub ( 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}
0 commit comments