2021-11-25 20:36:49 +13:00
|
|
|
use std::cell::RefCell;
|
|
|
|
use std::collections::HashMap;
|
|
|
|
use std::rc::Rc;
|
2020-11-01 02:23:31 +13:00
|
|
|
|
2022-05-22 20:59:09 +12:00
|
|
|
use gtk4::prelude::*;
|
|
|
|
use gtk4::{Button, Entry};
|
2021-11-28 08:49:20 +13:00
|
|
|
|
|
|
|
use czkawka_core::common_traits::SaveResults;
|
|
|
|
|
2022-06-01 03:52:55 +12:00
|
|
|
use crate::flg;
|
2022-01-14 03:58:33 +13:00
|
|
|
use crate::gui_structs::gui_data::GuiData;
|
2022-01-14 18:34:43 +13:00
|
|
|
use crate::help_functions::BottomButtonsEnum;
|
2022-01-20 10:35:07 +13:00
|
|
|
use crate::localizer_core::generate_translation_hashmap;
|
2021-11-28 08:49:20 +13:00
|
|
|
use crate::notebook_enums::*;
|
|
|
|
|
2020-11-01 02:23:31 +13:00
|
|
|
pub fn connect_button_save(gui_data: &GuiData) {
|
2021-01-11 08:12:08 +13:00
|
|
|
let buttons_save = gui_data.bottom_buttons.buttons_save.clone();
|
2021-11-25 20:36:49 +13:00
|
|
|
let buttons_save_clone = gui_data.bottom_buttons.buttons_save.clone();
|
2020-11-01 02:23:31 +13:00
|
|
|
let shared_duplication_state = gui_data.shared_duplication_state.clone();
|
|
|
|
let shared_empty_folders_state = gui_data.shared_empty_folders_state.clone();
|
|
|
|
let shared_big_files_state = gui_data.shared_big_files_state.clone();
|
|
|
|
let shared_temporary_files_state = gui_data.shared_temporary_files_state.clone();
|
|
|
|
let shared_empty_files_state = gui_data.shared_empty_files_state.clone();
|
|
|
|
let shared_similar_images_state = gui_data.shared_similar_images_state.clone();
|
2021-11-23 23:10:24 +13:00
|
|
|
let shared_similar_videos_state = gui_data.shared_similar_videos_state.clone();
|
2020-11-03 09:56:07 +13:00
|
|
|
let shared_same_music_state = gui_data.shared_same_music_state.clone();
|
2020-12-22 04:09:39 +13:00
|
|
|
let shared_same_invalid_symlinks = gui_data.shared_same_invalid_symlinks.clone();
|
2021-01-13 08:06:12 +13:00
|
|
|
let shared_broken_files_state = gui_data.shared_broken_files_state.clone();
|
2022-04-23 07:46:33 +12:00
|
|
|
let shared_bad_extensions_state = gui_data.shared_bad_extensions_state.clone();
|
2021-11-25 20:36:49 +13:00
|
|
|
let shared_buttons = gui_data.shared_buttons.clone();
|
|
|
|
let entry_info = gui_data.entry_info.clone();
|
2021-01-11 08:12:08 +13:00
|
|
|
let notebook_main = gui_data.main_notebook.notebook_main.clone();
|
2021-01-11 00:06:25 +13:00
|
|
|
buttons_save.connect_clicked(move |_| {
|
|
|
|
let file_name;
|
|
|
|
|
2021-06-26 04:07:13 +12:00
|
|
|
match to_notebook_main_enum(notebook_main.current_page().unwrap()) {
|
2021-01-11 00:06:25 +13:00
|
|
|
NotebookMainEnum::Duplicate => {
|
|
|
|
file_name = "results_duplicates.txt";
|
|
|
|
|
|
|
|
shared_duplication_state.borrow_mut().save_results_to_file(file_name);
|
|
|
|
}
|
|
|
|
NotebookMainEnum::EmptyDirectories => {
|
|
|
|
file_name = "results_empty_folder.txt";
|
|
|
|
|
|
|
|
shared_empty_folders_state.borrow_mut().save_results_to_file(file_name);
|
|
|
|
}
|
|
|
|
NotebookMainEnum::EmptyFiles => {
|
|
|
|
file_name = "results_empty_files.txt";
|
|
|
|
|
|
|
|
shared_empty_files_state.borrow_mut().save_results_to_file(file_name);
|
|
|
|
}
|
|
|
|
NotebookMainEnum::Temporary => {
|
|
|
|
file_name = "results_temporary_files.txt";
|
|
|
|
|
|
|
|
shared_temporary_files_state.borrow_mut().save_results_to_file(file_name);
|
|
|
|
}
|
|
|
|
NotebookMainEnum::BigFiles => {
|
|
|
|
file_name = "results_big_files.txt";
|
|
|
|
|
|
|
|
shared_big_files_state.borrow_mut().save_results_to_file(file_name);
|
|
|
|
}
|
|
|
|
NotebookMainEnum::SimilarImages => {
|
|
|
|
file_name = "results_similar_images.txt";
|
|
|
|
|
|
|
|
shared_similar_images_state.borrow_mut().save_results_to_file(file_name);
|
|
|
|
}
|
2021-11-23 23:10:24 +13:00
|
|
|
NotebookMainEnum::SimilarVideos => {
|
|
|
|
file_name = "results_similar_videos.txt";
|
|
|
|
|
|
|
|
shared_similar_videos_state.borrow_mut().save_results_to_file(file_name);
|
|
|
|
}
|
2021-01-11 00:06:25 +13:00
|
|
|
NotebookMainEnum::SameMusic => {
|
|
|
|
file_name = "results_same_music.txt";
|
|
|
|
|
|
|
|
shared_same_music_state.borrow_mut().save_results_to_file(file_name);
|
|
|
|
}
|
|
|
|
NotebookMainEnum::Symlinks => {
|
|
|
|
file_name = "results_invalid_symlinks.txt";
|
|
|
|
|
|
|
|
shared_same_invalid_symlinks.borrow_mut().save_results_to_file(file_name);
|
|
|
|
}
|
2021-01-13 08:06:12 +13:00
|
|
|
NotebookMainEnum::BrokenFiles => {
|
|
|
|
file_name = "results_broken_files.txt";
|
|
|
|
|
|
|
|
shared_broken_files_state.borrow_mut().save_results_to_file(file_name);
|
|
|
|
}
|
2022-04-23 07:46:33 +12:00
|
|
|
NotebookMainEnum::BadExtensions => {
|
|
|
|
file_name = "results_bad_extensions.txt";
|
|
|
|
|
|
|
|
shared_bad_extensions_state.borrow_mut().save_results_to_file(file_name);
|
|
|
|
}
|
2020-12-22 04:09:39 +13:00
|
|
|
}
|
2021-12-22 06:44:20 +13:00
|
|
|
post_save_things(
|
|
|
|
file_name,
|
|
|
|
&to_notebook_main_enum(notebook_main.current_page().unwrap()),
|
|
|
|
&shared_buttons,
|
|
|
|
&entry_info,
|
|
|
|
&buttons_save_clone,
|
|
|
|
);
|
2020-11-01 02:23:31 +13:00
|
|
|
});
|
|
|
|
}
|
2021-11-28 08:57:10 +13:00
|
|
|
|
2021-12-22 06:44:20 +13:00
|
|
|
fn post_save_things(
|
|
|
|
file_name: &str,
|
|
|
|
type_of_tab: &NotebookMainEnum,
|
2022-01-14 18:34:43 +13:00
|
|
|
shared_buttons: &Rc<RefCell<HashMap<NotebookMainEnum, HashMap<BottomButtonsEnum, bool>>>>,
|
2021-12-22 06:44:20 +13:00
|
|
|
entry_info: &Entry,
|
|
|
|
buttons_save: &Button,
|
|
|
|
) {
|
2022-01-20 10:35:07 +13:00
|
|
|
entry_info.set_text(flg!("save_results_to_file", generate_translation_hashmap(vec![("name", file_name.to_string())])).as_str());
|
2020-11-05 06:15:06 +13:00
|
|
|
// Set state
|
|
|
|
{
|
|
|
|
buttons_save.hide();
|
2022-01-14 18:34:43 +13:00
|
|
|
*shared_buttons.borrow_mut().get_mut(type_of_tab).unwrap().get_mut(&BottomButtonsEnum::Save).unwrap() = false;
|
2020-11-05 06:15:06 +13:00
|
|
|
}
|
|
|
|
}
|