Add basic search
This commit is contained in:
parent
b2d1b7b779
commit
feee8c6a83
|
@ -75,6 +75,8 @@ impl DuplicateFinder {
|
||||||
if *check_method == CheckingMethod::HASH {
|
if *check_method == CheckingMethod::HASH {
|
||||||
self.check_files_hash();
|
self.check_files_hash();
|
||||||
}
|
}
|
||||||
|
println!("FF");
|
||||||
|
self.debug_print();
|
||||||
self.calculate_lost_space(check_method);
|
self.calculate_lost_space(check_method);
|
||||||
self.print_duplicated_entries(check_method);
|
self.print_duplicated_entries(check_method);
|
||||||
self.delete_files(check_method, delete_method);
|
self.delete_files(check_method, delete_method);
|
||||||
|
@ -99,6 +101,10 @@ impl DuplicateFinder {
|
||||||
|
|
||||||
let extensions: Vec<String> = allowed_extensions.split(',').map(String::from).collect();
|
let extensions: Vec<String> = allowed_extensions.split(',').map(String::from).collect();
|
||||||
for mut extension in extensions {
|
for mut extension in extensions {
|
||||||
|
if extension == ""{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if extension.contains('.') {
|
if extension.contains('.') {
|
||||||
if !extension.starts_with('.') {
|
if !extension.starts_with('.') {
|
||||||
println!("{} is not valid extension(valid extension doesn't have dot inside)", extension);
|
println!("{} is not valid extension(valid extension doesn't have dot inside)", extension);
|
||||||
|
@ -447,27 +453,27 @@ impl DuplicateFinder {
|
||||||
/// Setting include directories, panics when there is not directories available
|
/// Setting include directories, panics when there is not directories available
|
||||||
|
|
||||||
fn debug_print(&self) {
|
fn debug_print(&self) {
|
||||||
// println!("---------------DEBUG PRINT---------------");
|
println!("---------------DEBUG PRINT---------------");
|
||||||
// println!("Number of all checked files - {}", self.number_of_checked_files);
|
println!("Number of all checked files - {}", self.number_of_checked_files);
|
||||||
// println!("Number of all ignored files - {}", self.number_of_ignored_files);
|
println!("Number of all ignored files - {}", self.number_of_ignored_files);
|
||||||
// println!("Number of all checked folders - {}", self.number_of_checked_folders);
|
println!("Number of all checked folders - {}", self.number_of_checked_folders);
|
||||||
// println!("Number of all ignored things - {}", self.number_of_ignored_things);
|
println!("Number of all ignored things - {}", self.number_of_ignored_things);
|
||||||
// println!("Number of duplicated files - {}", self.number_of_duplicated_files);
|
println!("Number of duplicated files - {}", self.number_of_duplicated_files);
|
||||||
// let mut file_size: u64 = 0;
|
let mut file_size: u64 = 0;
|
||||||
// for i in &self.files_with_identical_size {
|
for i in &self.files_with_identical_size {
|
||||||
// file_size += i.1.len() as u64;
|
file_size += i.1.len() as u64;
|
||||||
// }
|
}
|
||||||
// println!("Files list size - {} ({})", self.files_with_identical_size.len(), file_size);
|
println!("Files list size - {} ({})", self.files_with_identical_size.len(), file_size);
|
||||||
// let mut hashed_file_size: u64 = 0;
|
let mut hashed_file_size: u64 = 0;
|
||||||
// for i in &self.files_with_identical_hashes {
|
for i in &self.files_with_identical_hashes {
|
||||||
// for j in i.1 {
|
for j in i.1 {
|
||||||
// hashed_file_size += j.len() as u64;
|
hashed_file_size += j.len() as u64;
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
// println!("Hashed Files list size - {} ({})", self.files_with_identical_hashes.len(), hashed_file_size);
|
println!("Hashed Files list size - {} ({})", self.files_with_identical_hashes.len(), hashed_file_size);
|
||||||
// println!("Excluded directories - {:?}", self.excluded_directories);
|
println!("Excluded directories - {:?}", self.excluded_directories);
|
||||||
// println!("Included directories - {:?}", self.included_directories);
|
println!("Included directories - {:?}", self.included_directories);
|
||||||
// println!("-----------------------------------------");
|
println!("-----------------------------------------");
|
||||||
}
|
}
|
||||||
|
|
||||||
fn print_duplicated_entries(&self, check_method: &CheckingMethod) {
|
fn print_duplicated_entries(&self, check_method: &CheckingMethod) {
|
||||||
|
|
|
@ -4,6 +4,8 @@ use czkawka_core::{duplicate, empty_folder};
|
||||||
extern crate gtk;
|
extern crate gtk;
|
||||||
use gtk::prelude::*;
|
use gtk::prelude::*;
|
||||||
use gtk::{Builder, TreeView, TreeViewColumn};
|
use gtk::{Builder, TreeView, TreeViewColumn};
|
||||||
|
use duplicate::DuplicateFinder;
|
||||||
|
use czkawka_core::duplicate::{CheckingMethod, DeleteMethod};
|
||||||
// use gtk::{ButtonsType, DialogFlags, MessageDialog, MessageType, Window};
|
// use gtk::{ButtonsType, DialogFlags, MessageDialog, MessageType, Window};
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
|
@ -25,8 +27,8 @@ fn main() {
|
||||||
gtk::main();
|
gtk::main();
|
||||||
}
|
}
|
||||||
fn prepare_buttons_at_start(builder : Builder){
|
fn prepare_buttons_at_start(builder : Builder){
|
||||||
// let buttons_search : gtk::Button = builder.get_object("buttons_search").unwrap();
|
let buttons_search : gtk::Button = builder.get_object("buttons_search").unwrap();
|
||||||
// buttons_search.connect_clicked(|| duplicate::);
|
buttons_search.connect_clicked(search_for_duplicates);
|
||||||
let buttons_stop : gtk::Button = builder.get_object("buttons_stop").unwrap();
|
let buttons_stop : gtk::Button = builder.get_object("buttons_stop").unwrap();
|
||||||
buttons_stop.hide();
|
buttons_stop.hide();
|
||||||
let buttons_resume : gtk::Button = builder.get_object("buttons_resume").unwrap();
|
let buttons_resume : gtk::Button = builder.get_object("buttons_resume").unwrap();
|
||||||
|
@ -42,9 +44,9 @@ fn prepare_buttons_at_start(builder : Builder){
|
||||||
let buttons_save : gtk::Button = builder.get_object("buttons_save").unwrap();
|
let buttons_save : gtk::Button = builder.get_object("buttons_save").unwrap();
|
||||||
buttons_save.hide();
|
buttons_save.hide();
|
||||||
|
|
||||||
search_for_duplicates(builder);
|
search_for_duplicates_layout(builder);
|
||||||
}
|
}
|
||||||
fn search_for_duplicates(builder:Builder){
|
fn search_for_duplicates_layout(builder:Builder){
|
||||||
|
|
||||||
let scrolled_window_duplicate_finder : gtk::ScrolledWindow = builder.get_object("scrolled_window_duplicate_finder").unwrap();
|
let scrolled_window_duplicate_finder : gtk::ScrolledWindow = builder.get_object("scrolled_window_duplicate_finder").unwrap();
|
||||||
|
|
||||||
|
@ -55,10 +57,15 @@ fn search_for_duplicates(builder:Builder){
|
||||||
name_column.set_min_width(50);
|
name_column.set_min_width(50);
|
||||||
|
|
||||||
let path_column : gtk::TreeViewColumn = TreeViewColumn::new();
|
let path_column : gtk::TreeViewColumn = TreeViewColumn::new();
|
||||||
path_column.set_title("File Name");
|
path_column.set_title("Path");
|
||||||
path_column.set_resizable(true);
|
path_column.set_resizable(true);
|
||||||
path_column.set_min_width(50);
|
path_column.set_min_width(50);
|
||||||
|
|
||||||
|
let modification_date_column : gtk::TreeViewColumn = TreeViewColumn::new();
|
||||||
|
modification_date_column.set_title("Modification Date");
|
||||||
|
modification_date_column.set_resizable(true);
|
||||||
|
modification_date_column.set_min_width(50);
|
||||||
|
|
||||||
let col_types: [glib::types::Type; 2] = [
|
let col_types: [glib::types::Type; 2] = [
|
||||||
glib::types::Type::String,
|
glib::types::Type::String,
|
||||||
glib::types::Type::String,
|
glib::types::Type::String,
|
||||||
|
@ -69,7 +76,19 @@ fn search_for_duplicates(builder:Builder){
|
||||||
|
|
||||||
tree_view_duplicate_finder.append_column(&name_column);
|
tree_view_duplicate_finder.append_column(&name_column);
|
||||||
tree_view_duplicate_finder.append_column(&path_column);
|
tree_view_duplicate_finder.append_column(&path_column);
|
||||||
|
tree_view_duplicate_finder.append_column(&modification_date_column);
|
||||||
|
|
||||||
scrolled_window_duplicate_finder.add(&tree_view_duplicate_finder);
|
scrolled_window_duplicate_finder.add(&tree_view_duplicate_finder);
|
||||||
scrolled_window_duplicate_finder.show_all();
|
scrolled_window_duplicate_finder.show_all();
|
||||||
|
}
|
||||||
|
fn search_for_duplicates(button : >k::Button){// : gtk::Button){
|
||||||
|
println!("Szukam");
|
||||||
|
button.hide();
|
||||||
|
let mut df = DuplicateFinder::new();
|
||||||
|
df.set_include_directory("/home/rafal/Pulpit".to_owned());
|
||||||
|
df.set_exclude_directory("/rafa/".to_owned());
|
||||||
|
df.set_allowed_extensions("".to_owned());
|
||||||
|
df.set_min_file_size(1000);
|
||||||
|
df.find_duplicates(&CheckingMethod::HASH, &DeleteMethod::None);
|
||||||
|
button.show();
|
||||||
}
|
}
|
Loading…
Reference in a new issue