1
0
Fork 0
mirror of synced 2024-04-26 08:42:07 +12:00

Add Save system

This commit is contained in:
Rafał Mikrut 2020-09-30 14:47:39 +02:00
parent 86c49949e6
commit 4bca6a133d
3 changed files with 84 additions and 3 deletions

2
.gitignore vendored
View file

@ -3,4 +3,4 @@
*.iml
*~
*#
results.txt
results*.txt

View file

@ -298,7 +298,7 @@ impl SaveResults for EmptyFolder {
if !self.empty_folder_list.is_empty() {
file.write_all(b"-------------------------------------------------Empty folder list-------------------------------------------------\n").unwrap();
file.write_all(("Found ".to_string() + self.information.number_of_empty_folders.to_string().as_str() + " empty folders which in " + ".\n").as_bytes())
file.write_all(("Found ".to_string() + self.information.number_of_empty_folders.to_string().as_str() + " empty folders\n").as_bytes())
.unwrap();
for name in self.empty_folder_list.keys() {
file.write_all((name.clone() + "\n").as_bytes()).unwrap();

View file

@ -16,6 +16,7 @@ use std::collections::HashMap;
use std::rc::Rc;
use std::time::UNIX_EPOCH;
use std::{env, fs, process};
use czkawka_core::common_traits::SaveResults;
fn main() {
// Printing version
@ -94,6 +95,10 @@ fn main() {
buttons_pause.hide();
buttons_select.hide();
//// Popovers
// let popover_select: gtk::Popover = builder.get_object("popover_select").unwrap();
// let popover_select2: gtk::PopoverMenu = builder.get_object("popover_select2").unwrap();
//// Check Buttons
let check_button_recursive: gtk::CheckButton = builder.get_object("check_button_recursive").unwrap();
@ -200,7 +205,7 @@ fn main() {
let col_indices = [0, 1];
for i in ["/proc/", "/dev/"].iter() {
for i in ["/proc", "/dev"].iter() {
let values: [&dyn ToValue; 2] = [&i, &(MAIN_ROW_COLOR.to_string())];
list_store.set(&list_store.append(), &col_indices, &values);
}
@ -294,6 +299,9 @@ fn main() {
// Search button
{
let buttons_delete = buttons_delete.clone();
let buttons_save = buttons_save.clone();
let buttons_select = buttons_select.clone();
let entry_info = entry_info.clone();
let notebook_chooser_tool_children_names = notebook_chooser_tool_children_names.clone();
let notebook_chooser_tool = notebook_chooser_tool.clone();
let scrolled_window_duplicate_finder = scrolled_window_duplicate_finder.clone();
@ -301,6 +309,9 @@ fn main() {
let scrolled_window_included_directories = scrolled_window_included_directories.clone();
let scrolled_window_excluded_directories = scrolled_window_excluded_directories.clone();
let text_view_errors = text_view_errors.clone();
let shared_duplication_state = shared_duplication_state.clone();
let shared_empty_folders_state = shared_empty_folders_state.clone();
let shared_buttons = shared_buttons.clone();
buttons_search.connect_clicked(move |_| {
match notebook_chooser_tool_children_names.get(notebook_chooser_tool.get_current_page().unwrap() as usize).unwrap().as_str() {
"notebook_duplicate_finder_label" => {
@ -441,13 +452,17 @@ fn main() {
if duplicates_size > 0 {
buttons_save.show();
buttons_delete.show();
buttons_select.show();
*shared_buttons.borrow_mut().get_mut("duplicate").unwrap().get_mut("save").unwrap() = true;
*shared_buttons.borrow_mut().get_mut("duplicate").unwrap().get_mut("delete").unwrap() = true;
*shared_buttons.borrow_mut().get_mut("duplicate").unwrap().get_mut("select").unwrap() = true;
} else {
buttons_save.hide();
buttons_delete.hide();
buttons_select.hide();
*shared_buttons.borrow_mut().get_mut("duplicate").unwrap().get_mut("save").unwrap() = false;
*shared_buttons.borrow_mut().get_mut("duplicate").unwrap().get_mut("delete").unwrap() = false;
*shared_buttons.borrow_mut().get_mut("duplicate").unwrap().get_mut("select").unwrap() = true;
}
}
}
@ -523,6 +538,9 @@ fn main() {
}
// Delete button
{
let notebook_chooser_tool_children_names = notebook_chooser_tool_children_names.clone();
let notebook_chooser_tool = notebook_chooser_tool.clone();
let text_view_errors = text_view_errors.clone();
buttons_delete.connect_clicked(move |_| match notebook_chooser_tool_children_names.get(notebook_chooser_tool.get_current_page().unwrap() as usize).unwrap().as_str() {
"notebook_duplicate_finder_label" => {
let tree_view = scrolled_window_duplicate_finder.get_children().get(0).unwrap().clone().downcast::<gtk::TreeView>().unwrap();
@ -577,6 +595,69 @@ fn main() {
e => panic!("Not existent {}", e),
});
}
// Select button
{
let notebook_chooser_tool_children_names = notebook_chooser_tool_children_names.clone();
let notebook_chooser_tool = notebook_chooser_tool.clone();
buttons_select.connect_clicked(move |_| match notebook_chooser_tool_children_names.get(notebook_chooser_tool.get_current_page().unwrap() as usize).unwrap().as_str() {
"notebook_duplicate_finder_label" => {
// let popover_select = gtk::PopoverMenu::new();
// // popover_select.popup();
// popover_select.show_all();
println!("Printed");
// let popover_menu = gtk::PopoverMenu::new();
// let button_all_except_newest = gtk::Button::with_label("All except newest");
// let button_all_except_oldest = gtk::Button::with_label("All except oldest");
// let button_only_newest = gtk::Button::with_label("Only newest");
// let button_only_oldest= gtk::Button::with_label("Only oldest");
// popover_menu.set_child_position(&button_all_except_newest,0);
// popover_menu.set_child_position(&button_all_except_oldest,1);
// popover_menu.set_child_position(&button_only_newest,2);
// popover_menu.set_child_position(&button_only_oldest,3);
// popover_menu.popup();
}
"scrolled_window_empty_folder_finder" => {
// Do nothing
}
e => panic!("Not existent {}", e),
});
}
// Save button
{
let buttons_save_clone = buttons_save.clone();
buttons_save_clone.connect_clicked(move |_| match notebook_chooser_tool_children_names.get(notebook_chooser_tool.get_current_page().unwrap() as usize).unwrap().as_str() {
"notebook_duplicate_finder_label" => {
let file_name = "results_duplicates.txt";
let mut df = shared_duplication_state.borrow_mut();
df.save_results_to_file(file_name);
entry_info.set_text(format!("Saved results to file {}", file_name).as_str());
// Set state
{
buttons_save.hide();
*shared_buttons.borrow_mut().get_mut("duplicate").unwrap().get_mut("save").unwrap() = false;
}
}
"scrolled_window_empty_folder_finder" => {
let file_name = "results_empty_folder.txt";
let mut ef = shared_empty_folders_state.borrow_mut();
ef.save_results_to_file(file_name);
entry_info.set_text(format!("Saved results to file {}", file_name).as_str());
// Set state
{
buttons_save.hide();
*shared_buttons.borrow_mut().get_mut("empty_folder").unwrap().get_mut("save").unwrap() = false;
}
}
e => panic!("Not existent {}", e),
});
}
}
// Upper Notepad
{