2020-11-01 02:23:31 +13:00
|
|
|
extern crate gtk;
|
|
|
|
use crate::gui_data::GuiData;
|
|
|
|
use crate::help_functions::*;
|
|
|
|
use gtk::prelude::*;
|
|
|
|
use std::collections::HashMap;
|
|
|
|
|
|
|
|
pub fn connect_notebook_tabs(gui_data: &GuiData) {
|
|
|
|
let shared_buttons = gui_data.shared_buttons.clone();
|
|
|
|
let buttons_array = gui_data.buttons_array.clone();
|
|
|
|
let notebook_main_children_names = gui_data.notebook_main_children_names.clone();
|
|
|
|
let notebook_main_clone = gui_data.notebook_main.clone();
|
|
|
|
let buttons_names = gui_data.buttons_names.clone();
|
|
|
|
let upper_notebooks_labels = gui_data.upper_notebooks_labels.clone();
|
|
|
|
let shared_upper_notebooks = gui_data.shared_upper_notebooks.clone();
|
|
|
|
let notebook_upper = gui_data.notebook_upper.clone();
|
|
|
|
let notebook_upper_children_names = gui_data.notebook_upper_children_names.clone();
|
|
|
|
|
2020-12-22 04:09:39 +13:00
|
|
|
// TODO Remove this because disabling it doesn't works
|
|
|
|
// Remove on Windows last tab(Invalid symlinks) because is not available
|
|
|
|
// if cfg!(target_family = "windows") {
|
|
|
|
// for (index, widget) in notebook_main_clone.get_children().iter().enumerate() {
|
|
|
|
// if widget.get_buildable_name() == Some("scrolled_window_invalid_symlinks".to_string()) {
|
|
|
|
// notebook_main_clone.remove_page(Some(index as u32));
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
|
2020-11-01 02:23:31 +13:00
|
|
|
notebook_main_clone.connect_switch_page(move |_, _, number| {
|
|
|
|
let page: &str;
|
|
|
|
match notebook_main_children_names.get(number as usize).unwrap().as_str() {
|
2020-11-05 06:15:06 +13:00
|
|
|
"notebook_main_duplicate_finder_label" => page = "duplicate",
|
|
|
|
"scrolled_window_main_empty_folder_finder" => page = "empty_folder",
|
2020-11-01 02:23:31 +13:00
|
|
|
"scrolled_window_main_empty_files_finder" => page = "empty_file",
|
|
|
|
"scrolled_window_main_temporary_files_finder" => page = "temporary_file",
|
|
|
|
"notebook_big_main_file_finder" => page = "big_file",
|
|
|
|
"notebook_main_similar_images_finder_label" => page = "similar_images",
|
|
|
|
"notebook_main_zeroed_files_finder" => page = "zeroed_files",
|
2020-11-03 09:56:07 +13:00
|
|
|
"notebook_main_same_music_finder" => page = "same_music",
|
2020-12-22 04:09:39 +13:00
|
|
|
"scrolled_window_invalid_symlinks" => page = "invalid_symlinks",
|
2020-11-01 02:23:31 +13:00
|
|
|
e => {
|
|
|
|
panic!("Not existent page {}", e);
|
|
|
|
}
|
|
|
|
};
|
|
|
|
// Buttons
|
|
|
|
set_buttons(&mut *shared_buttons.borrow_mut().get_mut(page).unwrap(), &buttons_array, &buttons_names);
|
|
|
|
// Upper notebook
|
|
|
|
{
|
|
|
|
let mut hashmap: HashMap<&str, &str> = Default::default();
|
|
|
|
hashmap.insert("notebook_upper_included_directories", "included_directories");
|
|
|
|
hashmap.insert("notebook_upper_excluded_directories", "excluded_directories");
|
|
|
|
hashmap.insert("notebook_upper_excluded_items", "excluded_items");
|
|
|
|
hashmap.insert("notebook_upper_allowed_extensions", "allowed_extensions");
|
2020-12-08 03:25:44 +13:00
|
|
|
hashmap.insert("notebook_upper_settings", "settings");
|
2020-11-01 02:23:31 +13:00
|
|
|
|
|
|
|
for tab in ¬ebook_upper_children_names {
|
|
|
|
let name = hashmap.get(tab.as_str()).unwrap().to_string();
|
|
|
|
let index = upper_notebooks_labels.iter().position(|x| *x == name).unwrap();
|
|
|
|
if *shared_upper_notebooks.borrow_mut().get_mut(page).unwrap().get_mut(&name).unwrap() {
|
|
|
|
notebook_upper.get_children().get(index).unwrap().show();
|
|
|
|
} else {
|
|
|
|
notebook_upper.get_children().get(index).unwrap().hide();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|