Modernize popovers code and simplify later changes (#137)
This commit is contained in:
parent
123bba381f
commit
d84722aa51
|
@ -218,7 +218,7 @@ Author: Rafał Mikrut
|
|||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<object class="GtkPopover" id="popover_select_duplicate">
|
||||
<object class="GtkPopover" id="popover_select">
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
|
@ -226,8 +226,8 @@ Author: Rafał Mikrut
|
|||
<property name="can_focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkButton" id="buttons_popover_duplicate_select_all">
|
||||
<property name="label" translatable="yes">Select All</property>
|
||||
<object class="GtkButton" id="buttons_popover_select_custom">
|
||||
<property name="label" translatable="yes">Select custom</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
|
@ -239,8 +239,8 @@ Author: Rafał Mikrut
|
|||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="buttons_popover_duplicate_unselect_all">
|
||||
<property name="label" translatable="yes">Unselect All</property>
|
||||
<object class="GtkButton" id="buttons_popover_unselect_custom">
|
||||
<property name="label" translatable="yes">Unselect custom</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
|
@ -252,7 +252,7 @@ Author: Rafał Mikrut
|
|||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparator">
|
||||
<object class="GtkSeparator" id="separator_select_custom">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
</object>
|
||||
|
@ -263,8 +263,8 @@ Author: Rafał Mikrut
|
|||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="buttons_popover_duplicate_reverse">
|
||||
<property name="label" translatable="yes">Reverse Selection</property>
|
||||
<object class="GtkButton" id="buttons_popover_select_all_images_except_biggest">
|
||||
<property name="label" translatable="yes">Select all except biggest</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
|
@ -276,9 +276,11 @@ Author: Rafał Mikrut
|
|||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparator">
|
||||
<object class="GtkButton" id="buttons_popover_select_all_images_except_smallest">
|
||||
<property name="label" translatable="yes">Select all except smallest</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
|
@ -287,11 +289,9 @@ Author: Rafał Mikrut
|
|||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="buttons_popover_duplicate_select_all_except_oldest">
|
||||
<property name="label" translatable="yes">Select all except oldest</property>
|
||||
<object class="GtkSeparator" id="separator_select_image_size">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
|
@ -300,8 +300,8 @@ Author: Rafał Mikrut
|
|||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="buttons_popover_duplicate_select_all_except_newest">
|
||||
<property name="label" translatable="yes">Select all except newest</property>
|
||||
<object class="GtkButton" id="buttons_popover_select_all_except_oldest">
|
||||
<property name="label" translatable="yes">Select all except oldest</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
|
@ -313,8 +313,8 @@ Author: Rafał Mikrut
|
|||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="buttons_popover_duplicate_select_one_oldest">
|
||||
<property name="label" translatable="yes">Select one oldest</property>
|
||||
<object class="GtkButton" id="buttons_popover_select_all_except_newest">
|
||||
<property name="label" translatable="yes">Select all except newest</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
|
@ -326,8 +326,8 @@ Author: Rafał Mikrut
|
|||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="buttons_popover_duplicate_select_one_newest">
|
||||
<property name="label" translatable="yes">Select one newest</property>
|
||||
<object class="GtkButton" id="buttons_popover_select_one_oldest">
|
||||
<property name="label" translatable="yes">Select one oldest</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
|
@ -339,9 +339,11 @@ Author: Rafał Mikrut
|
|||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparator">
|
||||
<object class="GtkButton" id="buttons_popover_select_one_newest">
|
||||
<property name="label" translatable="yes">Select one newest</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
|
@ -350,11 +352,9 @@ Author: Rafał Mikrut
|
|||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="buttons_popover_duplicate_select_custom">
|
||||
<property name="label" translatable="yes">Select custom</property>
|
||||
<object class="GtkSeparator" id="separator_select_date">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
|
@ -363,8 +363,8 @@ Author: Rafał Mikrut
|
|||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="buttons_popover_duplicate_unselect_custom">
|
||||
<property name="label" translatable="yes">Unselect custom</property>
|
||||
<object class="GtkButton" id="buttons_popover_reverse">
|
||||
<property name="label" translatable="yes">Reverse Selection</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
|
@ -375,18 +375,19 @@ Author: Rafał Mikrut
|
|||
<property name="position">11</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<object class="GtkPopover" id="popover_select_simple_list">
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkButton" id="buttons_popover_simple_list_select_all">
|
||||
<object class="GtkSeparator" id="separator_select_reverse">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">12</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="buttons_popover_select_all">
|
||||
<property name="label" translatable="yes">Select All</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
|
@ -395,11 +396,11 @@ Author: Rafał Mikrut
|
|||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
<property name="position">13</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="buttons_popover_simple_list_unselect_all">
|
||||
<object class="GtkButton" id="buttons_popover_unselect_all">
|
||||
<property name="label" translatable="yes">Unselect All</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
|
@ -408,128 +409,7 @@ Author: Rafał Mikrut
|
|||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparator">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="buttons_popover_simple_list_reverse">
|
||||
<property name="label" translatable="yes">Reverse Selection</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparator">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="buttons_popover_simple_list_select_custom">
|
||||
<property name="label" translatable="yes">Select custom</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">5</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="buttons_popover_simple_list_unselect_custom">
|
||||
<property name="label" translatable="yes">Unselect custom</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">6</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<object class="GtkPopover" id="popover_select_very_simple_list">
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkButton" id="buttons_popover_very_simple_list_select_all">
|
||||
<property name="label" translatable="yes">Select All</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="buttons_popover_very_simple_list_unselect_all">
|
||||
<property name="label" translatable="yes">Unselect All</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparator">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="buttons_popover_very_simple_list_reverse">
|
||||
<property name="label" translatable="yes">Reverse Selection</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">3</property>
|
||||
<property name="position">14</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
|
|
|
@ -1,28 +1,138 @@
|
|||
extern crate gtk;
|
||||
use crate::gui_data::GuiData;
|
||||
use gtk::prelude::*;
|
||||
use std::collections::HashMap;
|
||||
|
||||
pub fn connect_button_select(gui_data: &GuiData) {
|
||||
// let mode = ["all", "image_size", "reverse", "custom", "date"];
|
||||
let mut hashmap: HashMap<&str, Vec<&str>> = Default::default();
|
||||
{
|
||||
// Remember to update connect_popovers file, because this data are connected to each others
|
||||
hashmap.insert("images", vec!["all", "image_size", "reverse", "custom", "date"]);
|
||||
hashmap.insert("duplicate", vec!["all", "reverse", "custom", "date"]);
|
||||
hashmap.insert("music", vec!["all", "reverse", "custom", "date"]);
|
||||
|
||||
hashmap.insert("empty_files", vec!["all", "reverse", "custom"]);
|
||||
hashmap.insert("empty_folders", vec!["all", "reverse", "custom"]);
|
||||
hashmap.insert("big", vec!["all", "reverse", "custom"]);
|
||||
hashmap.insert("symlinks", vec!["all", "reverse", "custom"]);
|
||||
hashmap.insert("zeroed", vec!["all", "reverse", "custom"]);
|
||||
hashmap.insert("temporary", vec!["all", "reverse", "custom"]);
|
||||
}
|
||||
|
||||
let gui_data = gui_data.clone();
|
||||
let notebook_main_children_names = gui_data.notebook_main_children_names.clone();
|
||||
let notebook_main = gui_data.notebook_main.clone();
|
||||
let buttons_select_clone = gui_data.buttons_select.clone();
|
||||
let popover_select_duplicate = gui_data.popover_select_duplicate.clone();
|
||||
let popover_select_simple_list = gui_data.popover_select_simple_list.clone();
|
||||
let popover_select_very_simple_list = gui_data.popover_select_very_simple_list.clone();
|
||||
let popover_select = gui_data.popover_select.clone();
|
||||
let buttons_select = gui_data.buttons_select.clone();
|
||||
buttons_select_clone.connect_clicked(move |_| match notebook_main_children_names.get(notebook_main.get_current_page().unwrap() as usize).unwrap().as_str() {
|
||||
"notebook_main_duplicate_finder_label" | "notebook_main_same_music_finder" | "notebook_main_similar_images_finder_label" => {
|
||||
popover_select_duplicate.set_relative_to(Some(&buttons_select));
|
||||
popover_select_duplicate.popup();
|
||||
|
||||
buttons_select_clone.connect_clicked(move |_| {
|
||||
let current_mode;
|
||||
|
||||
match notebook_main_children_names.get(notebook_main.get_current_page().unwrap() as usize).unwrap().as_str() {
|
||||
"notebook_main_duplicate_finder_label" => {
|
||||
current_mode = "duplicate";
|
||||
}
|
||||
"notebook_main_same_music_finder" => {
|
||||
current_mode = "music";
|
||||
}
|
||||
"notebook_main_similar_images_finder_label" => {
|
||||
current_mode = "images";
|
||||
}
|
||||
"scrolled_window_main_empty_folder_finder" => {
|
||||
current_mode = "empty_folders";
|
||||
}
|
||||
"scrolled_window_main_empty_files_finder" => {
|
||||
current_mode = "empty_files";
|
||||
}
|
||||
"scrolled_window_main_temporary_files_finder" => {
|
||||
current_mode = "temporary";
|
||||
}
|
||||
"notebook_big_main_file_finder" => {
|
||||
current_mode = "big";
|
||||
}
|
||||
"notebook_main_zeroed_files_finder" => {
|
||||
current_mode = "zeroed";
|
||||
}
|
||||
"scrolled_window_invalid_symlinks" => {
|
||||
current_mode = "symlinks";
|
||||
}
|
||||
e => panic!("Not existent {}", e),
|
||||
}
|
||||
"scrolled_window_main_empty_folder_finder" | "scrolled_window_main_empty_files_finder" | "scrolled_window_main_temporary_files_finder" | "notebook_big_main_file_finder" | "notebook_main_zeroed_files_finder" => {
|
||||
popover_select_simple_list.set_relative_to(Some(&buttons_select));
|
||||
popover_select_simple_list.popup();
|
||||
}
|
||||
"scrolled_window_invalid_symlinks" => {
|
||||
popover_select_very_simple_list.set_relative_to(Some(&buttons_select));
|
||||
popover_select_very_simple_list.popup();
|
||||
}
|
||||
e => panic!("Not existent {}", e),
|
||||
show_required_popovers(&gui_data, current_mode, &hashmap);
|
||||
popover_select.set_relative_to(Some(&buttons_select));
|
||||
popover_select.popup();
|
||||
});
|
||||
}
|
||||
|
||||
fn show_required_popovers(gui_data: &GuiData, current_mode: &str, hashmap: &HashMap<&str, Vec<&str>>) {
|
||||
let buttons_popover_select_all = gui_data.buttons_popover_select_all.clone();
|
||||
let buttons_popover_unselect_all = gui_data.buttons_popover_unselect_all.clone();
|
||||
let buttons_popover_reverse = gui_data.buttons_popover_reverse.clone();
|
||||
let buttons_popover_select_all_except_oldest = gui_data.buttons_popover_select_all_except_oldest.clone();
|
||||
let buttons_popover_select_all_except_newest = gui_data.buttons_popover_select_all_except_newest.clone();
|
||||
let buttons_popover_select_one_oldest = gui_data.buttons_popover_select_one_oldest.clone();
|
||||
let buttons_popover_select_one_newest = gui_data.buttons_popover_select_one_newest.clone();
|
||||
let buttons_popover_select_custom = gui_data.buttons_popover_select_custom.clone();
|
||||
let buttons_popover_unselect_custom = gui_data.buttons_popover_unselect_custom.clone();
|
||||
let buttons_popover_select_all_images_except_biggest = gui_data.buttons_popover_select_all_images_except_biggest.clone();
|
||||
let buttons_popover_select_all_images_except_smallest = gui_data.buttons_popover_select_all_images_except_smallest.clone();
|
||||
|
||||
let separator_select_custom = gui_data.separator_select_custom.clone();
|
||||
let separator_select_date = gui_data.separator_select_date.clone();
|
||||
let separator_select_image_size = gui_data.separator_select_image_size.clone();
|
||||
let separator_select_reverse = gui_data.separator_select_reverse.clone();
|
||||
|
||||
let vec = hashmap.get(current_mode).unwrap();
|
||||
|
||||
if vec.contains(&"all") {
|
||||
buttons_popover_select_all.show();
|
||||
buttons_popover_unselect_all.show();
|
||||
} else {
|
||||
buttons_popover_select_all.hide();
|
||||
buttons_popover_unselect_all.hide();
|
||||
}
|
||||
|
||||
if vec.contains(&"image_size") {
|
||||
buttons_popover_select_all_images_except_biggest.show();
|
||||
buttons_popover_select_all_images_except_smallest.show();
|
||||
separator_select_image_size.show();
|
||||
} else {
|
||||
buttons_popover_select_all_images_except_biggest.hide();
|
||||
buttons_popover_select_all_images_except_smallest.hide();
|
||||
separator_select_image_size.hide();
|
||||
}
|
||||
|
||||
if vec.contains(&"reverse") {
|
||||
buttons_popover_reverse.show();
|
||||
separator_select_reverse.show();
|
||||
} else {
|
||||
buttons_popover_reverse.hide();
|
||||
separator_select_reverse.hide();
|
||||
}
|
||||
|
||||
if vec.contains(&"custom") {
|
||||
buttons_popover_select_custom.show();
|
||||
buttons_popover_unselect_custom.show();
|
||||
separator_select_custom.show();
|
||||
} else {
|
||||
buttons_popover_select_custom.hide();
|
||||
buttons_popover_unselect_custom.hide();
|
||||
separator_select_custom.hide();
|
||||
}
|
||||
|
||||
if vec.contains(&"date") {
|
||||
buttons_popover_select_all_except_oldest.show();
|
||||
buttons_popover_select_all_except_newest.show();
|
||||
buttons_popover_select_one_oldest.show();
|
||||
buttons_popover_select_one_newest.show();
|
||||
separator_select_date.show();
|
||||
} else {
|
||||
buttons_popover_select_all_except_oldest.hide();
|
||||
buttons_popover_select_all_except_newest.hide();
|
||||
buttons_popover_select_one_oldest.hide();
|
||||
buttons_popover_select_one_newest.hide();
|
||||
separator_select_date.hide();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -398,15 +398,16 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver<
|
|||
{
|
||||
let list_store = get_list_store(&scrolled_window_similar_images_finder);
|
||||
|
||||
let col_indices = [0, 1, 2, 3, 4, 5, 6, 7, 8];
|
||||
let col_indices = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
|
||||
|
||||
let vec_struct_similar = sf.get_similar_images();
|
||||
|
||||
for vec_file_entry in vec_struct_similar.iter() {
|
||||
// Header
|
||||
let values: [&dyn ToValue; 9] = [
|
||||
let values: [&dyn ToValue; 10] = [
|
||||
&"".to_string(),
|
||||
&"".to_string(),
|
||||
&(0),
|
||||
&"".to_string(),
|
||||
&"".to_string(),
|
||||
&"".to_string(),
|
||||
|
@ -420,9 +421,10 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver<
|
|||
// Meat
|
||||
for file_entry in vec_file_entry.iter() {
|
||||
let (directory, file) = split_path(&file_entry.path);
|
||||
let values: [&dyn ToValue; 9] = [
|
||||
let values: [&dyn ToValue; 10] = [
|
||||
&(get_text_from_similarity(&file_entry.similarity).to_string()),
|
||||
&file_entry.size.file_size(options::BINARY).unwrap(),
|
||||
&file_entry.size,
|
||||
&file_entry.dimensions,
|
||||
&file,
|
||||
&directory,
|
||||
|
@ -472,14 +474,15 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver<
|
|||
{
|
||||
let list_store = get_list_store(&scrolled_window_zeroed_files_finder);
|
||||
|
||||
let col_indices = [0, 1, 2, 3];
|
||||
let col_indices = [0, 1, 2, 3, 4];
|
||||
|
||||
let vector = zf.get_zeroed_files();
|
||||
|
||||
for file_entry in vector {
|
||||
let (directory, file) = split_path(&file_entry.path);
|
||||
let values: [&dyn ToValue; 4] = [
|
||||
let values: [&dyn ToValue; 5] = [
|
||||
&(file_entry.size.file_size(options::BINARY).unwrap()),
|
||||
&(file_entry.size),
|
||||
&file,
|
||||
&directory,
|
||||
&(NaiveDateTime::from_timestamp(file_entry.modified_date as i64, 0).to_string()),
|
||||
|
@ -521,7 +524,7 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver<
|
|||
{
|
||||
let list_store = get_list_store(&scrolled_window_same_music_finder);
|
||||
|
||||
let col_indices = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
|
||||
let col_indices = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
|
||||
|
||||
let vector = mf.get_duplicated_music_entries();
|
||||
|
||||
|
@ -536,8 +539,9 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver<
|
|||
let text: String = "-----".to_string();
|
||||
|
||||
for vec_file_entry in vector {
|
||||
let values: [&dyn ToValue; 12] = [
|
||||
let values: [&dyn ToValue; 13] = [
|
||||
&"".to_string(),
|
||||
&(0),
|
||||
&"".to_string(),
|
||||
&"".to_string(),
|
||||
&(match is_title {
|
||||
|
@ -568,8 +572,9 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver<
|
|||
list_store.set(&list_store.append(), &col_indices, &values);
|
||||
for file_entry in vec_file_entry {
|
||||
let (directory, file) = split_path(&file_entry.path);
|
||||
let values: [&dyn ToValue; 12] = [
|
||||
let values: [&dyn ToValue; 13] = [
|
||||
&file_entry.size.file_size(options::BINARY).unwrap(),
|
||||
&file_entry.size,
|
||||
&file,
|
||||
&directory,
|
||||
&file_entry.title,
|
||||
|
|
|
@ -527,540 +527,256 @@ fn popover_unselect_custom(popover: >k::Popover, gui_data: &GuiData, scrolled_
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct PopoverObject {
|
||||
pub name: String,
|
||||
pub available_modes: Vec<String>,
|
||||
pub scrolled_windows: gtk::ScrolledWindow,
|
||||
pub column_path: Option<i32>,
|
||||
pub column_name: Option<i32>,
|
||||
pub column_color: Option<i32>,
|
||||
pub column_dimensions: Option<i32>,
|
||||
pub column_size: Option<i32>,
|
||||
pub column_size_as_bytes: Option<i32>,
|
||||
pub column_modification_as_secs: Option<i32>,
|
||||
}
|
||||
|
||||
pub fn find_name(name: &str, vec: &[PopoverObject]) -> Option<PopoverObject> {
|
||||
for e in vec {
|
||||
if e.name == *name {
|
||||
return Some(e.clone());
|
||||
}
|
||||
}
|
||||
None
|
||||
}
|
||||
|
||||
pub fn connect_popovers(gui_data: &GuiData) {
|
||||
connect_select_all(&gui_data);
|
||||
connect_unselect_all(&gui_data);
|
||||
connect_reverse(&gui_data);
|
||||
let popover_objects = vec![
|
||||
PopoverObject {
|
||||
name: "notebook_main_duplicate_finder_label".to_string(),
|
||||
available_modes: vec!["all", "reverse", "custom", "date"].iter().map(|e| e.to_string()).collect(),
|
||||
scrolled_windows: gui_data.scrolled_window_duplicate_finder.clone(),
|
||||
column_path: Some(ColumnsDuplicates::Path as i32),
|
||||
column_name: Some(ColumnsDuplicates::Name as i32),
|
||||
column_color: Some(ColumnsDuplicates::Color as i32),
|
||||
column_dimensions: None,
|
||||
column_size: None,
|
||||
column_size_as_bytes: None,
|
||||
column_modification_as_secs: Some(ColumnsDuplicates::ModificationAsSecs as i32),
|
||||
},
|
||||
PopoverObject {
|
||||
name: "notebook_main_same_music_finder".to_string(),
|
||||
available_modes: vec!["all", "reverse", "custom", "date"].iter().map(|e| e.to_string()).collect(),
|
||||
scrolled_windows: gui_data.scrolled_window_same_music_finder.clone(),
|
||||
column_path: Some(ColumnsSameMusic::Path as i32),
|
||||
column_name: Some(ColumnsSameMusic::Name as i32),
|
||||
column_color: Some(ColumnsSameMusic::Color as i32),
|
||||
column_dimensions: None,
|
||||
column_size: None,
|
||||
column_size_as_bytes: Some(ColumnsSameMusic::SizeAsBytes as i32),
|
||||
column_modification_as_secs: Some(ColumnsSameMusic::ModificationAsSecs as i32),
|
||||
},
|
||||
PopoverObject {
|
||||
name: "notebook_main_similar_images_finder_label".to_string(),
|
||||
available_modes: vec!["all", "reverse", "custom", "date"].iter().map(|e| e.to_string()).collect(),
|
||||
scrolled_windows: gui_data.scrolled_window_similar_images_finder.clone(),
|
||||
column_path: Some(ColumnsSimilarImages::Path as i32),
|
||||
column_name: Some(ColumnsSimilarImages::Name as i32),
|
||||
column_color: Some(ColumnsSimilarImages::Color as i32),
|
||||
column_dimensions: Some(ColumnsSimilarImages::Dimensions as i32),
|
||||
column_size: Some(ColumnsSimilarImages::Size as i32),
|
||||
column_size_as_bytes: Some(ColumnsSimilarImages::SizeAsBytes as i32),
|
||||
column_modification_as_secs: Some(ColumnsSimilarImages::ModificationAsSecs as i32),
|
||||
},
|
||||
PopoverObject {
|
||||
name: "scrolled_window_main_empty_folder_finder".to_string(),
|
||||
available_modes: vec!["all", "reverse", "custom"].iter().map(|e| e.to_string()).collect(),
|
||||
scrolled_windows: gui_data.scrolled_window_main_empty_folder_finder.clone(),
|
||||
column_path: Some(ColumnsEmptyFolders::Path as i32),
|
||||
column_name: Some(ColumnsEmptyFolders::Name as i32),
|
||||
column_color: None,
|
||||
column_dimensions: None,
|
||||
column_size: None,
|
||||
column_size_as_bytes: None,
|
||||
column_modification_as_secs: None,
|
||||
},
|
||||
PopoverObject {
|
||||
name: "scrolled_window_main_empty_files_finder".to_string(),
|
||||
available_modes: vec!["all", "reverse", "custom"].iter().map(|e| e.to_string()).collect(),
|
||||
scrolled_windows: gui_data.scrolled_window_main_empty_files_finder.clone(),
|
||||
column_path: Some(ColumnsEmptyFiles::Path as i32),
|
||||
column_name: Some(ColumnsEmptyFiles::Name as i32),
|
||||
column_color: None,
|
||||
column_dimensions: None,
|
||||
column_size: None,
|
||||
column_size_as_bytes: None,
|
||||
column_modification_as_secs: None,
|
||||
},
|
||||
PopoverObject {
|
||||
name: "scrolled_window_main_temporary_files_finder".to_string(),
|
||||
available_modes: vec!["all", "reverse", "custom"].iter().map(|e| e.to_string()).collect(),
|
||||
scrolled_windows: gui_data.scrolled_window_main_temporary_files_finder.clone(),
|
||||
column_path: Some(ColumnsTemporaryFiles::Path as i32),
|
||||
column_name: Some(ColumnsTemporaryFiles::Name as i32),
|
||||
column_color: None,
|
||||
column_dimensions: None,
|
||||
column_size: None,
|
||||
column_size_as_bytes: None,
|
||||
column_modification_as_secs: None,
|
||||
},
|
||||
PopoverObject {
|
||||
name: "notebook_big_main_file_finder".to_string(),
|
||||
available_modes: vec!["all", "reverse", "custom"].iter().map(|e| e.to_string()).collect(),
|
||||
scrolled_windows: gui_data.scrolled_window_big_files_finder.clone(),
|
||||
column_path: Some(ColumnsBigFiles::Path as i32),
|
||||
column_name: Some(ColumnsBigFiles::Name as i32),
|
||||
column_color: None,
|
||||
column_dimensions: None,
|
||||
column_size: None,
|
||||
column_size_as_bytes: None,
|
||||
column_modification_as_secs: None,
|
||||
},
|
||||
PopoverObject {
|
||||
name: "notebook_main_zeroed_files_finder".to_string(),
|
||||
available_modes: vec!["all", "reverse", "custom"].iter().map(|e| e.to_string()).collect(),
|
||||
scrolled_windows: gui_data.scrolled_window_zeroed_files_finder.clone(),
|
||||
column_path: Some(ColumnsZeroedFiles::Path as i32),
|
||||
column_name: Some(ColumnsZeroedFiles::Name as i32),
|
||||
column_color: None,
|
||||
column_dimensions: None,
|
||||
column_size: None,
|
||||
column_size_as_bytes: Some(ColumnsZeroedFiles::SizeAsBytes as i32),
|
||||
column_modification_as_secs: None,
|
||||
},
|
||||
];
|
||||
|
||||
connect_all_except_oldest(&gui_data);
|
||||
connect_all_except_newest(&gui_data);
|
||||
connect_one_oldest(&gui_data);
|
||||
connect_one_newest(&gui_data);
|
||||
|
||||
connect_select_custom(&gui_data);
|
||||
connect_unselect_custom(&gui_data);
|
||||
}
|
||||
pub fn connect_select_all(gui_data: &GuiData) {
|
||||
let popover_select = gui_data.popover_select.clone();
|
||||
let notebook_main_children_names = gui_data.notebook_main_children_names.clone();
|
||||
let buttons_popover_select_all = gui_data.buttons_popover_select_all.clone();
|
||||
let notebook_main = gui_data.notebook_main.clone();
|
||||
|
||||
let scrolled_window_main_empty_folder_finder = gui_data.scrolled_window_main_empty_folder_finder.clone();
|
||||
let scrolled_window_big_files_finder = gui_data.scrolled_window_big_files_finder.clone();
|
||||
let scrolled_window_main_empty_files_finder = gui_data.scrolled_window_main_empty_files_finder.clone();
|
||||
let scrolled_window_main_temporary_files_finder = gui_data.scrolled_window_main_temporary_files_finder.clone();
|
||||
let scrolled_window_similar_images_finder = gui_data.scrolled_window_similar_images_finder.clone();
|
||||
let scrolled_window_zeroed_files_finder = gui_data.scrolled_window_zeroed_files_finder.clone();
|
||||
let scrolled_window_same_music_finder = gui_data.scrolled_window_same_music_finder.clone();
|
||||
let scrolled_window_duplicate_finder = gui_data.scrolled_window_duplicate_finder.clone();
|
||||
let scrolled_window_invalid_symlinks = gui_data.scrolled_window_invalid_symlinks.clone();
|
||||
let popover_select_duplicate = gui_data.popover_select_duplicate.clone();
|
||||
let popover_select_simple_list = gui_data.popover_select_simple_list.clone();
|
||||
let popover_select_very_simple_list = gui_data.popover_select_very_simple_list.clone();
|
||||
let buttons_popover_simple_list_select_all = gui_data.buttons_popover_simple_list_select_all.clone();
|
||||
let buttons_popover_very_simple_list_select_all = gui_data.buttons_popover_very_simple_list_select_all.clone();
|
||||
let buttons_popover_duplicate_select_all = gui_data.buttons_popover_duplicate_select_all.clone();
|
||||
buttons_popover_duplicate_select_all.connect_clicked(move |_| match notebook_main_children_names.get(notebook_main.get_current_page().unwrap() as usize).unwrap().as_str() {
|
||||
"notebook_main_duplicate_finder_label" => {
|
||||
popover_select_all(&popover_select_duplicate, &scrolled_window_duplicate_finder);
|
||||
}
|
||||
"notebook_main_same_music_finder" => {
|
||||
popover_select_all(&popover_select_duplicate, &scrolled_window_same_music_finder);
|
||||
}
|
||||
"notebook_main_similar_images_finder_label" => {
|
||||
popover_select_all(&popover_select_duplicate, &scrolled_window_similar_images_finder);
|
||||
}
|
||||
e => panic!("Not existent {}", e),
|
||||
let vec_popover_objects = popover_objects.clone();
|
||||
buttons_popover_select_all.connect_clicked(move |_| {
|
||||
let object_popover = find_name(notebook_main_children_names.get(notebook_main.get_current_page().unwrap() as usize).unwrap(), &vec_popover_objects).unwrap();
|
||||
popover_select_all(&popover_select, &object_popover.scrolled_windows);
|
||||
});
|
||||
|
||||
let popover_select = gui_data.popover_select.clone();
|
||||
let notebook_main_children_names = gui_data.notebook_main_children_names.clone();
|
||||
let buttons_popover_unselect_all = gui_data.buttons_popover_unselect_all.clone();
|
||||
let notebook_main = gui_data.notebook_main.clone();
|
||||
buttons_popover_simple_list_select_all.connect_clicked(move |_| match notebook_main_children_names.get(notebook_main.get_current_page().unwrap() as usize).unwrap().as_str() {
|
||||
"scrolled_window_main_empty_folder_finder" => {
|
||||
popover_select_all(&popover_select_simple_list, &scrolled_window_main_empty_folder_finder);
|
||||
}
|
||||
"scrolled_window_main_empty_files_finder" => {
|
||||
popover_select_all(&popover_select_simple_list, &scrolled_window_main_empty_files_finder);
|
||||
}
|
||||
"scrolled_window_main_temporary_files_finder" => {
|
||||
popover_select_all(&popover_select_simple_list, &scrolled_window_main_temporary_files_finder);
|
||||
}
|
||||
"notebook_main_zeroed_files_finder" => {
|
||||
popover_select_all(&popover_select_simple_list, &scrolled_window_zeroed_files_finder);
|
||||
}
|
||||
"notebook_big_main_file_finder" => {
|
||||
popover_select_all(&popover_select_simple_list, &scrolled_window_big_files_finder);
|
||||
}
|
||||
e => panic!("Not existent {}", e),
|
||||
let vec_popover_objects = popover_objects.clone();
|
||||
buttons_popover_unselect_all.connect_clicked(move |_| {
|
||||
let object_popover = find_name(notebook_main_children_names.get(notebook_main.get_current_page().unwrap() as usize).unwrap(), &vec_popover_objects).unwrap();
|
||||
popover_unselect_all(&popover_select, &object_popover.scrolled_windows);
|
||||
});
|
||||
|
||||
let popover_select = gui_data.popover_select.clone();
|
||||
let notebook_main_children_names = gui_data.notebook_main_children_names.clone();
|
||||
let buttons_popover_reverse = gui_data.buttons_popover_reverse.clone();
|
||||
let notebook_main = gui_data.notebook_main.clone();
|
||||
buttons_popover_very_simple_list_select_all.connect_clicked(move |_| match notebook_main_children_names.get(notebook_main.get_current_page().unwrap() as usize).unwrap().as_str() {
|
||||
"scrolled_window_invalid_symlinks" => {
|
||||
popover_select_all(&popover_select_very_simple_list, &scrolled_window_invalid_symlinks);
|
||||
}
|
||||
e => panic!("Not existent {}", e),
|
||||
});
|
||||
}
|
||||
pub fn connect_unselect_all(gui_data: &GuiData) {
|
||||
let notebook_main_children_names = gui_data.notebook_main_children_names.clone();
|
||||
let notebook_main = gui_data.notebook_main.clone();
|
||||
|
||||
let scrolled_window_main_empty_folder_finder = gui_data.scrolled_window_main_empty_folder_finder.clone();
|
||||
let scrolled_window_big_files_finder = gui_data.scrolled_window_big_files_finder.clone();
|
||||
let scrolled_window_main_empty_files_finder = gui_data.scrolled_window_main_empty_files_finder.clone();
|
||||
let scrolled_window_main_temporary_files_finder = gui_data.scrolled_window_main_temporary_files_finder.clone();
|
||||
let scrolled_window_similar_images_finder = gui_data.scrolled_window_similar_images_finder.clone();
|
||||
let scrolled_window_zeroed_files_finder = gui_data.scrolled_window_zeroed_files_finder.clone();
|
||||
let scrolled_window_same_music_finder = gui_data.scrolled_window_same_music_finder.clone();
|
||||
let scrolled_window_duplicate_finder = gui_data.scrolled_window_duplicate_finder.clone();
|
||||
let scrolled_window_invalid_symlinks = gui_data.scrolled_window_invalid_symlinks.clone();
|
||||
let popover_select_duplicate = gui_data.popover_select_duplicate.clone();
|
||||
let popover_select_simple_list = gui_data.popover_select_simple_list.clone();
|
||||
let popover_select_very_simple_list = gui_data.popover_select_very_simple_list.clone();
|
||||
let buttons_popover_simple_list_unselect_all = gui_data.buttons_popover_simple_list_unselect_all.clone();
|
||||
let buttons_popover_very_simple_list_unselect_all = gui_data.buttons_popover_very_simple_list_unselect_all.clone();
|
||||
let buttons_popover_duplicate_unselect_all = gui_data.buttons_popover_duplicate_unselect_all.clone();
|
||||
buttons_popover_duplicate_unselect_all.connect_clicked(move |_| match notebook_main_children_names.get(notebook_main.get_current_page().unwrap() as usize).unwrap().as_str() {
|
||||
"notebook_main_duplicate_finder_label" => {
|
||||
popover_unselect_all(&popover_select_duplicate, &scrolled_window_duplicate_finder);
|
||||
}
|
||||
"notebook_main_same_music_finder" => {
|
||||
popover_unselect_all(&popover_select_duplicate, &scrolled_window_same_music_finder);
|
||||
}
|
||||
"notebook_main_similar_images_finder_label" => {
|
||||
popover_unselect_all(&popover_select_duplicate, &scrolled_window_similar_images_finder);
|
||||
}
|
||||
e => panic!("Not existent {}", e),
|
||||
});
|
||||
|
||||
let notebook_main_children_names = gui_data.notebook_main_children_names.clone();
|
||||
let notebook_main = gui_data.notebook_main.clone();
|
||||
buttons_popover_simple_list_unselect_all.connect_clicked(move |_| match notebook_main_children_names.get(notebook_main.get_current_page().unwrap() as usize).unwrap().as_str() {
|
||||
"scrolled_window_main_empty_folder_finder" => {
|
||||
popover_unselect_all(&popover_select_simple_list, &scrolled_window_main_empty_folder_finder);
|
||||
}
|
||||
"scrolled_window_main_empty_files_finder" => {
|
||||
popover_unselect_all(&popover_select_simple_list, &scrolled_window_main_empty_files_finder);
|
||||
}
|
||||
"scrolled_window_main_temporary_files_finder" => {
|
||||
popover_unselect_all(&popover_select_simple_list, &scrolled_window_main_temporary_files_finder);
|
||||
}
|
||||
"notebook_main_zeroed_files_finder" => {
|
||||
popover_unselect_all(&popover_select_simple_list, &scrolled_window_zeroed_files_finder);
|
||||
}
|
||||
"notebook_big_main_file_finder" => {
|
||||
popover_unselect_all(&popover_select_simple_list, &scrolled_window_big_files_finder);
|
||||
}
|
||||
e => panic!("Not existent {}", e),
|
||||
});
|
||||
|
||||
let notebook_main_children_names = gui_data.notebook_main_children_names.clone();
|
||||
let notebook_main = gui_data.notebook_main.clone();
|
||||
buttons_popover_very_simple_list_unselect_all.connect_clicked(move |_| match notebook_main_children_names.get(notebook_main.get_current_page().unwrap() as usize).unwrap().as_str() {
|
||||
"scrolled_window_invalid_symlinks" => {
|
||||
popover_unselect_all(&popover_select_very_simple_list, &scrolled_window_invalid_symlinks);
|
||||
}
|
||||
e => panic!("Not existent {}", e),
|
||||
});
|
||||
}
|
||||
pub fn connect_reverse(gui_data: &GuiData) {
|
||||
let notebook_main_children_names = gui_data.notebook_main_children_names.clone();
|
||||
let notebook_main = gui_data.notebook_main.clone();
|
||||
|
||||
let scrolled_window_main_empty_folder_finder = gui_data.scrolled_window_main_empty_folder_finder.clone();
|
||||
let scrolled_window_big_files_finder = gui_data.scrolled_window_big_files_finder.clone();
|
||||
let scrolled_window_main_empty_files_finder = gui_data.scrolled_window_main_empty_files_finder.clone();
|
||||
let scrolled_window_main_temporary_files_finder = gui_data.scrolled_window_main_temporary_files_finder.clone();
|
||||
let scrolled_window_similar_images_finder = gui_data.scrolled_window_similar_images_finder.clone();
|
||||
let scrolled_window_zeroed_files_finder = gui_data.scrolled_window_zeroed_files_finder.clone();
|
||||
let scrolled_window_same_music_finder = gui_data.scrolled_window_same_music_finder.clone();
|
||||
let scrolled_window_duplicate_finder = gui_data.scrolled_window_duplicate_finder.clone();
|
||||
let scrolled_window_invalid_symlinks = gui_data.scrolled_window_invalid_symlinks.clone();
|
||||
let popover_select_duplicate = gui_data.popover_select_duplicate.clone();
|
||||
let popover_select_simple_list = gui_data.popover_select_simple_list.clone();
|
||||
let popover_select_very_simple_list = gui_data.popover_select_very_simple_list.clone();
|
||||
let buttons_popover_simple_list_reverse = gui_data.buttons_popover_simple_list_reverse.clone();
|
||||
let buttons_popover_very_simple_list_reverse = gui_data.buttons_popover_very_simple_list_reverse.clone();
|
||||
let buttons_popover_duplicate_reverse = gui_data.buttons_popover_duplicate_reverse.clone();
|
||||
buttons_popover_duplicate_reverse.connect_clicked(move |_| match notebook_main_children_names.get(notebook_main.get_current_page().unwrap() as usize).unwrap().as_str() {
|
||||
"notebook_main_duplicate_finder_label" => {
|
||||
popover_reverse(&popover_select_duplicate, &scrolled_window_duplicate_finder);
|
||||
}
|
||||
"notebook_main_same_music_finder" => {
|
||||
popover_reverse(&popover_select_duplicate, &scrolled_window_same_music_finder);
|
||||
}
|
||||
"notebook_main_similar_images_finder_label" => {
|
||||
popover_reverse(&popover_select_duplicate, &scrolled_window_similar_images_finder);
|
||||
}
|
||||
e => panic!("Not existent {}", e),
|
||||
});
|
||||
|
||||
let notebook_main_children_names = gui_data.notebook_main_children_names.clone();
|
||||
let notebook_main = gui_data.notebook_main.clone();
|
||||
buttons_popover_simple_list_reverse.connect_clicked(move |_| match notebook_main_children_names.get(notebook_main.get_current_page().unwrap() as usize).unwrap().as_str() {
|
||||
"scrolled_window_main_empty_folder_finder" => {
|
||||
popover_reverse(&popover_select_simple_list, &scrolled_window_main_empty_folder_finder);
|
||||
}
|
||||
"scrolled_window_main_empty_files_finder" => {
|
||||
popover_reverse(&popover_select_simple_list, &scrolled_window_main_empty_files_finder);
|
||||
}
|
||||
"scrolled_window_main_temporary_files_finder" => {
|
||||
popover_reverse(&popover_select_simple_list, &scrolled_window_main_temporary_files_finder);
|
||||
}
|
||||
"notebook_main_zeroed_files_finder" => {
|
||||
popover_reverse(&popover_select_simple_list, &scrolled_window_zeroed_files_finder);
|
||||
}
|
||||
"notebook_big_main_file_finder" => {
|
||||
popover_reverse(&popover_select_simple_list, &scrolled_window_big_files_finder);
|
||||
}
|
||||
e => panic!("Not existent {}", e),
|
||||
});
|
||||
|
||||
let notebook_main_children_names = gui_data.notebook_main_children_names.clone();
|
||||
let notebook_main = gui_data.notebook_main.clone();
|
||||
buttons_popover_very_simple_list_reverse.connect_clicked(move |_| match notebook_main_children_names.get(notebook_main.get_current_page().unwrap() as usize).unwrap().as_str() {
|
||||
"scrolled_window_invalid_symlinks" => {
|
||||
popover_reverse(&popover_select_very_simple_list, &scrolled_window_invalid_symlinks);
|
||||
}
|
||||
e => panic!("Not existent {}", e),
|
||||
});
|
||||
}
|
||||
|
||||
pub fn connect_all_except_oldest(gui_data: &GuiData) {
|
||||
let notebook_main_children_names = gui_data.notebook_main_children_names.clone();
|
||||
let notebook_main = gui_data.notebook_main.clone();
|
||||
|
||||
let scrolled_window_similar_images_finder = gui_data.scrolled_window_similar_images_finder.clone();
|
||||
let scrolled_window_same_music_finder = gui_data.scrolled_window_same_music_finder.clone();
|
||||
let scrolled_window_duplicate_finder = gui_data.scrolled_window_duplicate_finder.clone();
|
||||
let popover_select_duplicate = gui_data.popover_select_duplicate.clone();
|
||||
let buttons_popover_duplicate_select_all_except_oldest = gui_data.buttons_popover_duplicate_select_all_except_oldest.clone();
|
||||
buttons_popover_duplicate_select_all_except_oldest.connect_clicked(move |_| match notebook_main_children_names.get(notebook_main.get_current_page().unwrap() as usize).unwrap().as_str() {
|
||||
"notebook_main_duplicate_finder_label" => {
|
||||
popover_all_except_oldest(
|
||||
&popover_select_duplicate,
|
||||
&scrolled_window_duplicate_finder,
|
||||
ColumnsDuplicates::Color as i32,
|
||||
ColumnsDuplicates::ModificationAsSecs as i32,
|
||||
ColumnsDuplicates::Name as i32,
|
||||
);
|
||||
}
|
||||
"notebook_main_same_music_finder" => {
|
||||
popover_all_except_oldest(
|
||||
&popover_select_duplicate,
|
||||
&scrolled_window_same_music_finder,
|
||||
ColumnsSameMusic::Color as i32,
|
||||
ColumnsSameMusic::ModificationAsSecs as i32,
|
||||
ColumnsSameMusic::Name as i32,
|
||||
);
|
||||
}
|
||||
"notebook_main_similar_images_finder_label" => {
|
||||
popover_all_except_oldest(
|
||||
&popover_select_duplicate,
|
||||
&scrolled_window_similar_images_finder,
|
||||
ColumnsSimilarImages::Color as i32,
|
||||
ColumnsSimilarImages::ModificationAsSecs as i32,
|
||||
ColumnsSimilarImages::Name as i32,
|
||||
);
|
||||
}
|
||||
e => panic!("Not existent {}", e),
|
||||
});
|
||||
}
|
||||
pub fn connect_all_except_newest(gui_data: &GuiData) {
|
||||
let notebook_main_children_names = gui_data.notebook_main_children_names.clone();
|
||||
let notebook_main = gui_data.notebook_main.clone();
|
||||
|
||||
let scrolled_window_similar_images_finder = gui_data.scrolled_window_similar_images_finder.clone();
|
||||
let scrolled_window_same_music_finder = gui_data.scrolled_window_same_music_finder.clone();
|
||||
let scrolled_window_duplicate_finder = gui_data.scrolled_window_duplicate_finder.clone();
|
||||
let popover_select_duplicate = gui_data.popover_select_duplicate.clone();
|
||||
let buttons_popover_duplicate_select_all_except_newest = gui_data.buttons_popover_duplicate_select_all_except_newest.clone();
|
||||
buttons_popover_duplicate_select_all_except_newest.connect_clicked(move |_| match notebook_main_children_names.get(notebook_main.get_current_page().unwrap() as usize).unwrap().as_str() {
|
||||
"notebook_main_duplicate_finder_label" => {
|
||||
popover_all_except_newest(
|
||||
&popover_select_duplicate,
|
||||
&scrolled_window_duplicate_finder,
|
||||
ColumnsDuplicates::Color as i32,
|
||||
ColumnsDuplicates::ModificationAsSecs as i32,
|
||||
ColumnsDuplicates::Name as i32,
|
||||
);
|
||||
}
|
||||
"notebook_main_same_music_finder" => {
|
||||
popover_all_except_newest(
|
||||
&popover_select_duplicate,
|
||||
&scrolled_window_same_music_finder,
|
||||
ColumnsSameMusic::Color as i32,
|
||||
ColumnsSameMusic::ModificationAsSecs as i32,
|
||||
ColumnsSameMusic::Name as i32,
|
||||
);
|
||||
}
|
||||
"notebook_main_similar_images_finder_label" => {
|
||||
popover_all_except_newest(
|
||||
&popover_select_duplicate,
|
||||
&scrolled_window_similar_images_finder,
|
||||
ColumnsSimilarImages::Color as i32,
|
||||
ColumnsSimilarImages::ModificationAsSecs as i32,
|
||||
ColumnsSimilarImages::Name as i32,
|
||||
);
|
||||
}
|
||||
e => panic!("Not existent {}", e),
|
||||
});
|
||||
}
|
||||
pub fn connect_one_newest(gui_data: &GuiData) {
|
||||
let notebook_main_children_names = gui_data.notebook_main_children_names.clone();
|
||||
let notebook_main = gui_data.notebook_main.clone();
|
||||
|
||||
let scrolled_window_similar_images_finder = gui_data.scrolled_window_similar_images_finder.clone();
|
||||
let scrolled_window_same_music_finder = gui_data.scrolled_window_same_music_finder.clone();
|
||||
let scrolled_window_duplicate_finder = gui_data.scrolled_window_duplicate_finder.clone();
|
||||
let popover_select_duplicate = gui_data.popover_select_duplicate.clone();
|
||||
let buttons_popover_duplicate_select_one_newest = gui_data.buttons_popover_duplicate_select_one_newest.clone();
|
||||
buttons_popover_duplicate_select_one_newest.connect_clicked(move |_| match notebook_main_children_names.get(notebook_main.get_current_page().unwrap() as usize).unwrap().as_str() {
|
||||
"notebook_main_duplicate_finder_label" => {
|
||||
popover_one_newest(
|
||||
&popover_select_duplicate,
|
||||
&scrolled_window_duplicate_finder,
|
||||
ColumnsDuplicates::Color as i32,
|
||||
ColumnsDuplicates::ModificationAsSecs as i32,
|
||||
ColumnsDuplicates::Name as i32,
|
||||
);
|
||||
}
|
||||
"notebook_main_same_music_finder" => {
|
||||
popover_one_newest(
|
||||
&popover_select_duplicate,
|
||||
&scrolled_window_same_music_finder,
|
||||
ColumnsSameMusic::Color as i32,
|
||||
ColumnsSameMusic::ModificationAsSecs as i32,
|
||||
ColumnsSameMusic::Name as i32,
|
||||
);
|
||||
}
|
||||
"notebook_main_similar_images_finder_label" => {
|
||||
popover_one_newest(
|
||||
&popover_select_duplicate,
|
||||
&scrolled_window_similar_images_finder,
|
||||
ColumnsSimilarImages::Color as i32,
|
||||
ColumnsSimilarImages::ModificationAsSecs as i32,
|
||||
ColumnsSimilarImages::Name as i32,
|
||||
);
|
||||
}
|
||||
e => panic!("Not existent {}", e),
|
||||
});
|
||||
}
|
||||
pub fn connect_one_oldest(gui_data: &GuiData) {
|
||||
let notebook_main_children_names = gui_data.notebook_main_children_names.clone();
|
||||
let notebook_main = gui_data.notebook_main.clone();
|
||||
|
||||
let scrolled_window_similar_images_finder = gui_data.scrolled_window_similar_images_finder.clone();
|
||||
let scrolled_window_same_music_finder = gui_data.scrolled_window_same_music_finder.clone();
|
||||
let scrolled_window_duplicate_finder = gui_data.scrolled_window_duplicate_finder.clone();
|
||||
let popover_select_duplicate = gui_data.popover_select_duplicate.clone();
|
||||
let buttons_popover_duplicate_select_one_oldest = gui_data.buttons_popover_duplicate_select_one_oldest.clone();
|
||||
buttons_popover_duplicate_select_one_oldest.connect_clicked(move |_| match notebook_main_children_names.get(notebook_main.get_current_page().unwrap() as usize).unwrap().as_str() {
|
||||
"notebook_main_duplicate_finder_label" => {
|
||||
popover_one_oldest(
|
||||
&popover_select_duplicate,
|
||||
&scrolled_window_duplicate_finder,
|
||||
ColumnsDuplicates::Color as i32,
|
||||
ColumnsDuplicates::ModificationAsSecs as i32,
|
||||
ColumnsDuplicates::Name as i32,
|
||||
);
|
||||
}
|
||||
"notebook_main_same_music_finder" => {
|
||||
popover_one_oldest(
|
||||
&popover_select_duplicate,
|
||||
&scrolled_window_same_music_finder,
|
||||
ColumnsSameMusic::Color as i32,
|
||||
ColumnsSameMusic::ModificationAsSecs as i32,
|
||||
ColumnsSameMusic::Name as i32,
|
||||
);
|
||||
}
|
||||
"notebook_main_similar_images_finder_label" => {
|
||||
popover_one_oldest(
|
||||
&popover_select_duplicate,
|
||||
&scrolled_window_similar_images_finder,
|
||||
ColumnsSimilarImages::Color as i32,
|
||||
ColumnsSimilarImages::ModificationAsSecs as i32,
|
||||
ColumnsSimilarImages::Name as i32,
|
||||
);
|
||||
}
|
||||
e => panic!("Not existent {}", e),
|
||||
});
|
||||
}
|
||||
|
||||
pub fn connect_select_custom(gui_data: &GuiData) {
|
||||
let notebook_main_children_names = gui_data.notebook_main_children_names.clone();
|
||||
let notebook_main = gui_data.notebook_main.clone();
|
||||
|
||||
let gui_data = gui_data.clone();
|
||||
let second_gui_data = gui_data.clone();
|
||||
let scrolled_window_main_empty_folder_finder = gui_data.scrolled_window_main_empty_folder_finder.clone();
|
||||
let scrolled_window_big_files_finder = gui_data.scrolled_window_big_files_finder.clone();
|
||||
let scrolled_window_main_empty_files_finder = gui_data.scrolled_window_main_empty_files_finder.clone();
|
||||
let scrolled_window_main_temporary_files_finder = gui_data.scrolled_window_main_temporary_files_finder.clone();
|
||||
let scrolled_window_similar_images_finder = gui_data.scrolled_window_similar_images_finder.clone();
|
||||
let scrolled_window_zeroed_files_finder = gui_data.scrolled_window_zeroed_files_finder.clone();
|
||||
let scrolled_window_same_music_finder = gui_data.scrolled_window_same_music_finder.clone();
|
||||
let scrolled_window_duplicate_finder = gui_data.scrolled_window_duplicate_finder.clone();
|
||||
let popover_select_duplicate = gui_data.popover_select_duplicate.clone();
|
||||
let popover_select_simple_list = gui_data.popover_select_simple_list.clone();
|
||||
let buttons_popover_simple_list_select_custom = gui_data.buttons_popover_simple_list_select_custom.clone();
|
||||
let buttons_popover_duplicate_select_custom = gui_data.buttons_popover_duplicate_select_custom.clone();
|
||||
buttons_popover_duplicate_select_custom.connect_clicked(move |_| match notebook_main_children_names.get(notebook_main.get_current_page().unwrap() as usize).unwrap().as_str() {
|
||||
"notebook_main_duplicate_finder_label" => {
|
||||
popover_select_custom(
|
||||
&popover_select_duplicate,
|
||||
&gui_data,
|
||||
&scrolled_window_duplicate_finder,
|
||||
Some(ColumnsDuplicates::Color as i32),
|
||||
ColumnsDuplicates::Name as i32,
|
||||
ColumnsDuplicates::Path as i32,
|
||||
);
|
||||
}
|
||||
"notebook_main_same_music_finder" => {
|
||||
popover_select_custom(
|
||||
&popover_select_duplicate,
|
||||
&gui_data,
|
||||
&scrolled_window_same_music_finder,
|
||||
Some(ColumnsSameMusic::Color as i32),
|
||||
ColumnsSameMusic::Name as i32,
|
||||
ColumnsSameMusic::Path as i32,
|
||||
);
|
||||
}
|
||||
"notebook_main_similar_images_finder_label" => {
|
||||
popover_select_custom(
|
||||
&popover_select_duplicate,
|
||||
&gui_data,
|
||||
&scrolled_window_similar_images_finder,
|
||||
Some(ColumnsSimilarImages::Color as i32),
|
||||
ColumnsSimilarImages::Name as i32,
|
||||
ColumnsSimilarImages::Path as i32,
|
||||
);
|
||||
}
|
||||
e => panic!("Not existent {}", e),
|
||||
});
|
||||
|
||||
let gui_data = second_gui_data;
|
||||
let notebook_main_children_names = gui_data.notebook_main_children_names.clone();
|
||||
let notebook_main = gui_data.notebook_main.clone();
|
||||
buttons_popover_simple_list_select_custom.connect_clicked(move |_| match notebook_main_children_names.get(notebook_main.get_current_page().unwrap() as usize).unwrap().as_str() {
|
||||
"scrolled_window_main_empty_folder_finder" => {
|
||||
popover_select_custom(
|
||||
&popover_select_simple_list,
|
||||
&gui_data,
|
||||
&scrolled_window_main_empty_folder_finder,
|
||||
None,
|
||||
ColumnsEmptyFolders::Name as i32,
|
||||
ColumnsEmptyFolders::Path as i32,
|
||||
);
|
||||
}
|
||||
"scrolled_window_main_empty_files_finder" => {
|
||||
popover_select_custom(&popover_select_simple_list, &gui_data, &scrolled_window_main_empty_files_finder, None, ColumnsEmptyFiles::Name as i32, ColumnsEmptyFiles::Path as i32);
|
||||
}
|
||||
"scrolled_window_main_temporary_files_finder" => {
|
||||
popover_select_custom(
|
||||
&popover_select_simple_list,
|
||||
&gui_data,
|
||||
&scrolled_window_main_temporary_files_finder,
|
||||
None,
|
||||
ColumnsTemporaryFiles::Name as i32,
|
||||
ColumnsTemporaryFiles::Path as i32,
|
||||
);
|
||||
}
|
||||
"notebook_main_zeroed_files_finder" => {
|
||||
popover_select_custom(&popover_select_simple_list, &gui_data, &scrolled_window_zeroed_files_finder, None, ColumnsZeroedFiles::Name as i32, ColumnsZeroedFiles::Path as i32);
|
||||
}
|
||||
"notebook_big_main_file_finder" => {
|
||||
popover_select_custom(&popover_select_simple_list, &gui_data, &scrolled_window_big_files_finder, None, ColumnsBigFiles::Name as i32, ColumnsBigFiles::Path as i32);
|
||||
}
|
||||
e => panic!("Not existent {}", e),
|
||||
});
|
||||
}
|
||||
pub fn connect_unselect_custom(gui_data: &GuiData) {
|
||||
let notebook_main_children_names = gui_data.notebook_main_children_names.clone();
|
||||
let notebook_main = gui_data.notebook_main.clone();
|
||||
|
||||
let gui_data = gui_data.clone();
|
||||
let second_gui_data = gui_data.clone();
|
||||
let scrolled_window_main_empty_folder_finder = gui_data.scrolled_window_main_empty_folder_finder.clone();
|
||||
let scrolled_window_big_files_finder = gui_data.scrolled_window_big_files_finder.clone();
|
||||
let scrolled_window_main_empty_files_finder = gui_data.scrolled_window_main_empty_files_finder.clone();
|
||||
let scrolled_window_main_temporary_files_finder = gui_data.scrolled_window_main_temporary_files_finder.clone();
|
||||
let scrolled_window_similar_images_finder = gui_data.scrolled_window_similar_images_finder.clone();
|
||||
let scrolled_window_zeroed_files_finder = gui_data.scrolled_window_zeroed_files_finder.clone();
|
||||
let scrolled_window_same_music_finder = gui_data.scrolled_window_same_music_finder.clone();
|
||||
let scrolled_window_duplicate_finder = gui_data.scrolled_window_duplicate_finder.clone();
|
||||
let popover_select_duplicate = gui_data.popover_select_duplicate.clone();
|
||||
let popover_select_simple_list = gui_data.popover_select_simple_list.clone();
|
||||
let buttons_popover_simple_list_unselect_custom = gui_data.buttons_popover_simple_list_unselect_custom.clone();
|
||||
let buttons_popover_duplicate_unselect_custom = gui_data.buttons_popover_duplicate_unselect_custom.clone();
|
||||
buttons_popover_duplicate_unselect_custom.connect_clicked(move |_| match notebook_main_children_names.get(notebook_main.get_current_page().unwrap() as usize).unwrap().as_str() {
|
||||
"notebook_main_duplicate_finder_label" => {
|
||||
popover_unselect_custom(
|
||||
&popover_select_duplicate,
|
||||
&gui_data,
|
||||
&scrolled_window_duplicate_finder,
|
||||
Some(ColumnsDuplicates::Color as i32),
|
||||
ColumnsDuplicates::Name as i32,
|
||||
ColumnsDuplicates::Path as i32,
|
||||
);
|
||||
}
|
||||
"notebook_main_same_music_finder" => {
|
||||
popover_unselect_custom(
|
||||
&popover_select_duplicate,
|
||||
&gui_data,
|
||||
&scrolled_window_same_music_finder,
|
||||
Some(ColumnsSameMusic::Color as i32),
|
||||
ColumnsSameMusic::Name as i32,
|
||||
ColumnsSameMusic::Path as i32,
|
||||
);
|
||||
}
|
||||
"notebook_main_similar_images_finder_label" => {
|
||||
popover_unselect_custom(
|
||||
&popover_select_duplicate,
|
||||
&gui_data,
|
||||
&scrolled_window_similar_images_finder,
|
||||
Some(ColumnsSimilarImages::Color as i32),
|
||||
ColumnsSimilarImages::Name as i32,
|
||||
ColumnsSimilarImages::Path as i32,
|
||||
);
|
||||
}
|
||||
e => panic!("Not existent {}", e),
|
||||
});
|
||||
|
||||
let gui_data = second_gui_data;
|
||||
let notebook_main_children_names = gui_data.notebook_main_children_names.clone();
|
||||
let notebook_main = gui_data.notebook_main.clone();
|
||||
buttons_popover_simple_list_unselect_custom.connect_clicked(move |_| match notebook_main_children_names.get(notebook_main.get_current_page().unwrap() as usize).unwrap().as_str() {
|
||||
"scrolled_window_main_empty_folder_finder" => {
|
||||
popover_unselect_custom(
|
||||
&popover_select_simple_list,
|
||||
&gui_data,
|
||||
&scrolled_window_main_empty_folder_finder,
|
||||
None,
|
||||
ColumnsEmptyFolders::Name as i32,
|
||||
ColumnsEmptyFolders::Path as i32,
|
||||
);
|
||||
}
|
||||
"scrolled_window_main_empty_files_finder" => {
|
||||
popover_unselect_custom(&popover_select_simple_list, &gui_data, &scrolled_window_main_empty_files_finder, None, ColumnsEmptyFiles::Name as i32, ColumnsEmptyFiles::Path as i32);
|
||||
}
|
||||
"scrolled_window_main_temporary_files_finder" => {
|
||||
popover_unselect_custom(
|
||||
&popover_select_simple_list,
|
||||
&gui_data,
|
||||
&scrolled_window_main_temporary_files_finder,
|
||||
None,
|
||||
ColumnsTemporaryFiles::Name as i32,
|
||||
ColumnsTemporaryFiles::Path as i32,
|
||||
);
|
||||
}
|
||||
"notebook_main_zeroed_files_finder" => {
|
||||
popover_unselect_custom(&popover_select_simple_list, &gui_data, &scrolled_window_zeroed_files_finder, None, ColumnsZeroedFiles::Name as i32, ColumnsZeroedFiles::Path as i32);
|
||||
}
|
||||
"notebook_big_main_file_finder" => {
|
||||
popover_unselect_custom(&popover_select_simple_list, &gui_data, &scrolled_window_big_files_finder, None, ColumnsBigFiles::Name as i32, ColumnsBigFiles::Path as i32);
|
||||
}
|
||||
e => panic!("Not existent {}", e),
|
||||
let vec_popover_objects = popover_objects.clone();
|
||||
buttons_popover_reverse.connect_clicked(move |_| {
|
||||
let object_popover = find_name(notebook_main_children_names.get(notebook_main.get_current_page().unwrap() as usize).unwrap(), &vec_popover_objects).unwrap();
|
||||
popover_reverse(&popover_select, &object_popover.scrolled_windows);
|
||||
});
|
||||
|
||||
let popover_select = gui_data.popover_select.clone();
|
||||
let notebook_main_children_names = gui_data.notebook_main_children_names.clone();
|
||||
let buttons_popover_select_all_except_oldest = gui_data.buttons_popover_select_all_except_oldest.clone();
|
||||
let notebook_main = gui_data.notebook_main.clone();
|
||||
let vec_popover_objects = popover_objects.clone();
|
||||
buttons_popover_select_all_except_oldest.connect_clicked(move |_| {
|
||||
let object_popover = find_name(notebook_main_children_names.get(notebook_main.get_current_page().unwrap() as usize).unwrap(), &vec_popover_objects).unwrap();
|
||||
popover_all_except_oldest(
|
||||
&popover_select,
|
||||
&object_popover.scrolled_windows,
|
||||
object_popover.column_color.unwrap(),
|
||||
object_popover.column_modification_as_secs.unwrap(),
|
||||
object_popover.column_name.unwrap(),
|
||||
);
|
||||
});
|
||||
|
||||
let popover_select = gui_data.popover_select.clone();
|
||||
let notebook_main_children_names = gui_data.notebook_main_children_names.clone();
|
||||
let buttons_popover_select_all_except_newest = gui_data.buttons_popover_select_all_except_newest.clone();
|
||||
let notebook_main = gui_data.notebook_main.clone();
|
||||
let vec_popover_objects = popover_objects.clone();
|
||||
buttons_popover_select_all_except_newest.connect_clicked(move |_| {
|
||||
let object_popover = find_name(notebook_main_children_names.get(notebook_main.get_current_page().unwrap() as usize).unwrap(), &vec_popover_objects).unwrap();
|
||||
popover_all_except_newest(
|
||||
&popover_select,
|
||||
&object_popover.scrolled_windows,
|
||||
object_popover.column_color.unwrap(),
|
||||
object_popover.column_modification_as_secs.unwrap(),
|
||||
object_popover.column_name.unwrap(),
|
||||
);
|
||||
});
|
||||
|
||||
let popover_select = gui_data.popover_select.clone();
|
||||
let notebook_main_children_names = gui_data.notebook_main_children_names.clone();
|
||||
let buttons_popover_select_one_oldest = gui_data.buttons_popover_select_one_oldest.clone();
|
||||
let notebook_main = gui_data.notebook_main.clone();
|
||||
let vec_popover_objects = popover_objects.clone();
|
||||
buttons_popover_select_one_oldest.connect_clicked(move |_| {
|
||||
let object_popover = find_name(notebook_main_children_names.get(notebook_main.get_current_page().unwrap() as usize).unwrap(), &vec_popover_objects).unwrap();
|
||||
popover_one_oldest(
|
||||
&popover_select,
|
||||
&object_popover.scrolled_windows,
|
||||
object_popover.column_color.unwrap(),
|
||||
object_popover.column_modification_as_secs.unwrap(),
|
||||
object_popover.column_name.unwrap(),
|
||||
);
|
||||
});
|
||||
|
||||
let popover_select = gui_data.popover_select.clone();
|
||||
let notebook_main_children_names = gui_data.notebook_main_children_names.clone();
|
||||
let buttons_popover_select_one_newest = gui_data.buttons_popover_select_one_newest.clone();
|
||||
let notebook_main = gui_data.notebook_main.clone();
|
||||
let vec_popover_objects = popover_objects.clone();
|
||||
buttons_popover_select_one_newest.connect_clicked(move |_| {
|
||||
let object_popover = find_name(notebook_main_children_names.get(notebook_main.get_current_page().unwrap() as usize).unwrap(), &vec_popover_objects).unwrap();
|
||||
popover_one_newest(
|
||||
&popover_select,
|
||||
&object_popover.scrolled_windows,
|
||||
object_popover.column_color.unwrap(),
|
||||
object_popover.column_modification_as_secs.unwrap(),
|
||||
object_popover.column_name.unwrap(),
|
||||
);
|
||||
});
|
||||
|
||||
let popover_select = gui_data.popover_select.clone();
|
||||
let notebook_main_children_names = gui_data.notebook_main_children_names.clone();
|
||||
let buttons_popover_select_custom = gui_data.buttons_popover_select_custom.clone();
|
||||
let notebook_main = gui_data.notebook_main.clone();
|
||||
let vec_popover_objects = popover_objects.clone();
|
||||
let gui_data_clone = gui_data.clone();
|
||||
buttons_popover_select_custom.connect_clicked(move |_| {
|
||||
let object_popover = find_name(notebook_main_children_names.get(notebook_main.get_current_page().unwrap() as usize).unwrap(), &vec_popover_objects).unwrap();
|
||||
popover_select_custom(
|
||||
&popover_select,
|
||||
&gui_data_clone,
|
||||
&object_popover.scrolled_windows,
|
||||
object_popover.column_color,
|
||||
object_popover.column_name.unwrap(),
|
||||
object_popover.column_path.unwrap(),
|
||||
);
|
||||
});
|
||||
|
||||
let popover_select = gui_data.popover_select.clone();
|
||||
let notebook_main_children_names = gui_data.notebook_main_children_names.clone();
|
||||
let buttons_popover_unselect_custom = gui_data.buttons_popover_unselect_custom.clone();
|
||||
let notebook_main = gui_data.notebook_main.clone();
|
||||
let vec_popover_objects = popover_objects; //.clone();
|
||||
let gui_data_clone = gui_data.clone();
|
||||
buttons_popover_unselect_custom.connect_clicked(move |_| {
|
||||
let object_popover = find_name(notebook_main_children_names.get(notebook_main.get_current_page().unwrap() as usize).unwrap(), &vec_popover_objects).unwrap();
|
||||
popover_unselect_custom(
|
||||
&popover_select,
|
||||
&gui_data_clone,
|
||||
&object_popover.scrolled_windows,
|
||||
object_popover.column_color,
|
||||
object_popover.column_name.unwrap(),
|
||||
object_popover.column_path.unwrap(),
|
||||
);
|
||||
});
|
||||
}
|
||||
|
|
|
@ -69,33 +69,28 @@ pub struct GuiData {
|
|||
pub buttons_remove_excluded_directory: gtk::Button,
|
||||
|
||||
// Buttons search popover buttons
|
||||
pub buttons_popover_duplicate_select_all: gtk::Button,
|
||||
pub buttons_popover_duplicate_unselect_all: gtk::Button,
|
||||
pub buttons_popover_duplicate_reverse: gtk::Button,
|
||||
pub buttons_popover_duplicate_select_all_except_oldest: gtk::Button,
|
||||
pub buttons_popover_duplicate_select_all_except_newest: gtk::Button,
|
||||
pub buttons_popover_duplicate_select_one_oldest: gtk::Button,
|
||||
pub buttons_popover_duplicate_select_one_newest: gtk::Button,
|
||||
pub buttons_popover_duplicate_select_custom: gtk::Button,
|
||||
pub buttons_popover_duplicate_unselect_custom: gtk::Button,
|
||||
pub buttons_popover_select_all: gtk::Button,
|
||||
pub buttons_popover_unselect_all: gtk::Button,
|
||||
pub buttons_popover_reverse: gtk::Button,
|
||||
pub buttons_popover_select_all_except_oldest: gtk::Button,
|
||||
pub buttons_popover_select_all_except_newest: gtk::Button,
|
||||
pub buttons_popover_select_one_oldest: gtk::Button,
|
||||
pub buttons_popover_select_one_newest: gtk::Button,
|
||||
pub buttons_popover_select_custom: gtk::Button,
|
||||
pub buttons_popover_unselect_custom: gtk::Button,
|
||||
pub buttons_popover_select_all_images_except_biggest: gtk::Button,
|
||||
pub buttons_popover_select_all_images_except_smallest: gtk::Button,
|
||||
|
||||
pub buttons_popover_simple_list_select_all: gtk::Button,
|
||||
pub buttons_popover_simple_list_unselect_all: gtk::Button,
|
||||
pub buttons_popover_simple_list_reverse: gtk::Button,
|
||||
pub buttons_popover_simple_list_select_custom: gtk::Button,
|
||||
pub buttons_popover_simple_list_unselect_custom: gtk::Button,
|
||||
|
||||
pub buttons_popover_very_simple_list_select_all: gtk::Button,
|
||||
pub buttons_popover_very_simple_list_unselect_all: gtk::Button,
|
||||
pub buttons_popover_very_simple_list_reverse: gtk::Button,
|
||||
pub separator_select_image_size: gtk::Separator,
|
||||
pub separator_select_reverse: gtk::Separator,
|
||||
pub separator_select_date: gtk::Separator,
|
||||
pub separator_select_custom: gtk::Separator,
|
||||
|
||||
pub buttons_popover_right_click_open_file: gtk::Button,
|
||||
pub buttons_popover_right_click_open_folder: gtk::Button,
|
||||
|
||||
//// Popovers
|
||||
pub popover_select_duplicate: gtk::Popover,
|
||||
pub popover_select_simple_list: gtk::Popover,
|
||||
pub popover_select_very_simple_list: gtk::Popover,
|
||||
pub popover_select: gtk::Popover,
|
||||
pub popover_right_click: gtk::Popover,
|
||||
|
||||
//// Check Buttons
|
||||
|
@ -287,33 +282,28 @@ impl GuiData {
|
|||
let buttons_remove_excluded_directory: gtk::Button = builder.get_object("buttons_remove_excluded_directory").unwrap();
|
||||
|
||||
// Buttons search popover buttons
|
||||
let buttons_popover_duplicate_select_all: gtk::Button = builder.get_object("buttons_popover_duplicate_select_all").unwrap();
|
||||
let buttons_popover_duplicate_unselect_all: gtk::Button = builder.get_object("buttons_popover_duplicate_unselect_all").unwrap();
|
||||
let buttons_popover_duplicate_reverse: gtk::Button = builder.get_object("buttons_popover_duplicate_reverse").unwrap();
|
||||
let buttons_popover_duplicate_select_all_except_oldest: gtk::Button = builder.get_object("buttons_popover_duplicate_select_all_except_oldest").unwrap();
|
||||
let buttons_popover_duplicate_select_all_except_newest: gtk::Button = builder.get_object("buttons_popover_duplicate_select_all_except_newest").unwrap();
|
||||
let buttons_popover_duplicate_select_one_oldest: gtk::Button = builder.get_object("buttons_popover_duplicate_select_one_oldest").unwrap();
|
||||
let buttons_popover_duplicate_select_one_newest: gtk::Button = builder.get_object("buttons_popover_duplicate_select_one_newest").unwrap();
|
||||
let buttons_popover_duplicate_select_custom: gtk::Button = builder.get_object("buttons_popover_duplicate_select_custom").unwrap();
|
||||
let buttons_popover_duplicate_unselect_custom: gtk::Button = builder.get_object("buttons_popover_duplicate_unselect_custom").unwrap();
|
||||
let buttons_popover_select_all: gtk::Button = builder.get_object("buttons_popover_select_all").unwrap();
|
||||
let buttons_popover_unselect_all: gtk::Button = builder.get_object("buttons_popover_unselect_all").unwrap();
|
||||
let buttons_popover_reverse: gtk::Button = builder.get_object("buttons_popover_reverse").unwrap();
|
||||
let buttons_popover_select_all_except_oldest: gtk::Button = builder.get_object("buttons_popover_select_all_except_oldest").unwrap();
|
||||
let buttons_popover_select_all_except_newest: gtk::Button = builder.get_object("buttons_popover_select_all_except_newest").unwrap();
|
||||
let buttons_popover_select_one_oldest: gtk::Button = builder.get_object("buttons_popover_select_one_oldest").unwrap();
|
||||
let buttons_popover_select_one_newest: gtk::Button = builder.get_object("buttons_popover_select_one_newest").unwrap();
|
||||
let buttons_popover_select_custom: gtk::Button = builder.get_object("buttons_popover_select_custom").unwrap();
|
||||
let buttons_popover_unselect_custom: gtk::Button = builder.get_object("buttons_popover_unselect_custom").unwrap();
|
||||
let buttons_popover_select_all_images_except_biggest: gtk::Button = builder.get_object("buttons_popover_select_all_images_except_biggest").unwrap();
|
||||
let buttons_popover_select_all_images_except_smallest: gtk::Button = builder.get_object("buttons_popover_select_all_images_except_smallest").unwrap();
|
||||
|
||||
let buttons_popover_simple_list_select_all: gtk::Button = builder.get_object("buttons_popover_simple_list_select_all").unwrap();
|
||||
let buttons_popover_simple_list_unselect_all: gtk::Button = builder.get_object("buttons_popover_simple_list_unselect_all").unwrap();
|
||||
let buttons_popover_simple_list_reverse: gtk::Button = builder.get_object("buttons_popover_simple_list_reverse").unwrap();
|
||||
let buttons_popover_simple_list_select_custom: gtk::Button = builder.get_object("buttons_popover_simple_list_select_custom").unwrap();
|
||||
let buttons_popover_simple_list_unselect_custom: gtk::Button = builder.get_object("buttons_popover_simple_list_unselect_custom").unwrap();
|
||||
|
||||
let buttons_popover_very_simple_list_select_all: gtk::Button = builder.get_object("buttons_popover_very_simple_list_select_all").unwrap();
|
||||
let buttons_popover_very_simple_list_unselect_all: gtk::Button = builder.get_object("buttons_popover_very_simple_list_unselect_all").unwrap();
|
||||
let buttons_popover_very_simple_list_reverse: gtk::Button = builder.get_object("buttons_popover_very_simple_list_reverse").unwrap();
|
||||
let separator_select_image_size: gtk::Separator = builder.get_object("separator_select_image_size").unwrap();
|
||||
let separator_select_reverse: gtk::Separator = builder.get_object("separator_select_reverse").unwrap();
|
||||
let separator_select_date: gtk::Separator = builder.get_object("separator_select_date").unwrap();
|
||||
let separator_select_custom: gtk::Separator = builder.get_object("separator_select_custom").unwrap();
|
||||
|
||||
let buttons_popover_right_click_open_file: gtk::Button = builder.get_object("buttons_popover_right_click_open_file").unwrap();
|
||||
let buttons_popover_right_click_open_folder: gtk::Button = builder.get_object("buttons_popover_right_click_open_folder").unwrap();
|
||||
|
||||
//// Popovers
|
||||
let popover_select_duplicate: gtk::Popover = builder.get_object("popover_select_duplicate").unwrap();
|
||||
let popover_select_simple_list: gtk::Popover = builder.get_object("popover_select_simple_list").unwrap();
|
||||
let popover_select_very_simple_list: gtk::Popover = builder.get_object("popover_select_very_simple_list").unwrap();
|
||||
let popover_select: gtk::Popover = builder.get_object("popover_select").unwrap();
|
||||
let popover_right_click: gtk::Popover = builder.get_object("popover_right_click").unwrap();
|
||||
|
||||
//// Check Buttons
|
||||
|
@ -442,28 +432,24 @@ impl GuiData {
|
|||
buttons_remove_included_directory,
|
||||
buttons_add_excluded_directory,
|
||||
buttons_remove_excluded_directory,
|
||||
buttons_popover_duplicate_select_all,
|
||||
buttons_popover_duplicate_unselect_all,
|
||||
buttons_popover_duplicate_reverse,
|
||||
buttons_popover_duplicate_select_all_except_oldest,
|
||||
buttons_popover_duplicate_select_all_except_newest,
|
||||
buttons_popover_duplicate_select_one_oldest,
|
||||
buttons_popover_duplicate_select_one_newest,
|
||||
buttons_popover_duplicate_select_custom,
|
||||
buttons_popover_duplicate_unselect_custom,
|
||||
buttons_popover_simple_list_select_all,
|
||||
buttons_popover_simple_list_unselect_all,
|
||||
buttons_popover_simple_list_reverse,
|
||||
buttons_popover_simple_list_select_custom,
|
||||
buttons_popover_simple_list_unselect_custom,
|
||||
buttons_popover_very_simple_list_select_all,
|
||||
buttons_popover_very_simple_list_unselect_all,
|
||||
buttons_popover_very_simple_list_reverse,
|
||||
buttons_popover_select_all,
|
||||
buttons_popover_unselect_all,
|
||||
buttons_popover_reverse,
|
||||
buttons_popover_select_all_except_oldest,
|
||||
buttons_popover_select_all_except_newest,
|
||||
buttons_popover_select_one_oldest,
|
||||
buttons_popover_select_one_newest,
|
||||
buttons_popover_select_custom,
|
||||
buttons_popover_unselect_custom,
|
||||
buttons_popover_select_all_images_except_biggest,
|
||||
buttons_popover_select_all_images_except_smallest,
|
||||
separator_select_image_size,
|
||||
separator_select_reverse,
|
||||
separator_select_date,
|
||||
separator_select_custom,
|
||||
buttons_popover_right_click_open_file,
|
||||
buttons_popover_right_click_open_folder,
|
||||
popover_select_duplicate,
|
||||
popover_select_simple_list,
|
||||
popover_select_very_simple_list,
|
||||
popover_select,
|
||||
popover_right_click,
|
||||
check_button_recursive,
|
||||
check_button_music_title,
|
||||
|
|
|
@ -65,6 +65,7 @@ pub enum ColumnsTemporaryFiles {
|
|||
pub enum ColumnsSimilarImages {
|
||||
Similarity = 0,
|
||||
Size,
|
||||
SizeAsBytes,
|
||||
Dimensions,
|
||||
Name,
|
||||
Path,
|
||||
|
@ -75,12 +76,14 @@ pub enum ColumnsSimilarImages {
|
|||
}
|
||||
pub enum ColumnsZeroedFiles {
|
||||
Size = 0,
|
||||
SizeAsBytes,
|
||||
Name,
|
||||
Path,
|
||||
Modification,
|
||||
}
|
||||
pub enum ColumnsSameMusic {
|
||||
Size = 0,
|
||||
SizeAsBytes,
|
||||
Name,
|
||||
Path,
|
||||
Title,
|
||||
|
|
|
@ -135,9 +135,10 @@ pub fn initialize_gui(gui_data: &GuiData) {
|
|||
{
|
||||
image_preview_similar_images.hide();
|
||||
|
||||
let col_types: [glib::types::Type; 9] = [
|
||||
let col_types: [glib::types::Type; 10] = [
|
||||
glib::types::Type::String,
|
||||
glib::types::Type::String,
|
||||
glib::types::Type::U64,
|
||||
glib::types::Type::String,
|
||||
glib::types::Type::String,
|
||||
glib::types::Type::String,
|
||||
|
@ -235,7 +236,7 @@ pub fn initialize_gui(gui_data: &GuiData) {
|
|||
}
|
||||
// Zeroed Files
|
||||
{
|
||||
let col_types: [glib::types::Type; 4] = [glib::types::Type::String, glib::types::Type::String, glib::types::Type::String, glib::types::Type::String];
|
||||
let col_types: [glib::types::Type; 5] = [glib::types::Type::String, glib::types::Type::U64, glib::types::Type::String, glib::types::Type::String, glib::types::Type::String];
|
||||
let list_store: gtk::ListStore = gtk::ListStore::new(&col_types);
|
||||
|
||||
let mut tree_view: gtk::TreeView = TreeView::with_model(&list_store);
|
||||
|
@ -249,10 +250,11 @@ pub fn initialize_gui(gui_data: &GuiData) {
|
|||
scrolled_window_zeroed_files_finder.add(&tree_view);
|
||||
scrolled_window_zeroed_files_finder.show_all();
|
||||
}
|
||||
// Same Files
|
||||
// Same Music
|
||||
{
|
||||
let col_types: [glib::types::Type; 12] = [
|
||||
let col_types: [glib::types::Type; 13] = [
|
||||
glib::types::Type::String,
|
||||
glib::types::Type::U64,
|
||||
glib::types::Type::String,
|
||||
glib::types::Type::String,
|
||||
glib::types::Type::String,
|
||||
|
|
Loading…
Reference in a new issue