Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for delete button #159

Merged
merged 1 commit into from
Dec 29, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions czkawka_core/src/similar_images.rs
Original file line number Diff line number Diff line change
Expand Up @@ -748,6 +748,17 @@ fn load_hashes_from_file(text_messages: &mut Messages) -> Option<HashMap<String,
hash[i] = uuu[4 + i].parse::<u8>().unwrap();
}

#[cfg(debug_assertions)]
{
let mut have_at_least: u8 = 0;
for i in hash.iter() {
if *i == 0 {
have_at_least += 1;
}
}
assert!(have_at_least != hash.len() as u8);
}

hashmap_loaded_entries.insert(
uuu[0].to_string(),
FileEntry {
Expand Down
24 changes: 12 additions & 12 deletions czkawka_gui/src/connect_button_delete.rs
Original file line number Diff line number Diff line change
Expand Up @@ -54,44 +54,44 @@ pub fn connect_button_delete(gui_data: &GuiData) {

match notebook_main_children_names.get(notebook_main.get_current_page().unwrap() as usize).unwrap().as_str() {
"notebook_main_duplicate_finder_label" => {
tree_remove(scrolled_window_duplicate_finder.clone(), ColumnsDuplicates::Name as i32, ColumnsDuplicates::Path as i32, ColumnsDuplicates::Color as i32, &gui_data);
tree_remove(&scrolled_window_duplicate_finder.clone(), ColumnsDuplicates::Name as i32, ColumnsDuplicates::Path as i32, ColumnsDuplicates::Color as i32, &gui_data);
}
"scrolled_window_main_empty_folder_finder" => {
empty_folder_remover(scrolled_window_main_empty_folder_finder.clone(), ColumnsEmptyFolders::Name as i32, ColumnsEmptyFolders::Path as i32, &gui_data);
empty_folder_remover(&scrolled_window_main_empty_folder_finder.clone(), ColumnsEmptyFolders::Name as i32, ColumnsEmptyFolders::Path as i32, &gui_data);
}
"scrolled_window_main_empty_files_finder" => {
basic_remove(scrolled_window_main_empty_files_finder.clone(), ColumnsEmptyFiles::Name as i32, ColumnsEmptyFiles::Path as i32, &gui_data);
basic_remove(&scrolled_window_main_empty_files_finder.clone(), ColumnsEmptyFiles::Name as i32, ColumnsEmptyFiles::Path as i32, &gui_data);
}
"scrolled_window_main_temporary_files_finder" => {
basic_remove(scrolled_window_main_temporary_files_finder.clone(), ColumnsTemporaryFiles::Name as i32, ColumnsTemporaryFiles::Path as i32, &gui_data);
basic_remove(&scrolled_window_main_temporary_files_finder.clone(), ColumnsTemporaryFiles::Name as i32, ColumnsTemporaryFiles::Path as i32, &gui_data);
}
"notebook_big_main_file_finder" => {
basic_remove(scrolled_window_big_files_finder.clone(), ColumnsBigFiles::Name as i32, ColumnsBigFiles::Path as i32, &gui_data);
basic_remove(&scrolled_window_big_files_finder.clone(), ColumnsBigFiles::Name as i32, ColumnsBigFiles::Path as i32, &gui_data);
}
"notebook_main_similar_images_finder_label" => {
tree_remove(
scrolled_window_similar_images_finder.clone(),
&scrolled_window_similar_images_finder.clone(),
ColumnsSimilarImages::Name as i32,
ColumnsSimilarImages::Path as i32,
ColumnsSimilarImages::Color as i32,
&gui_data,
);
}
"notebook_main_zeroed_files_finder" => {
basic_remove(scrolled_window_zeroed_files_finder.clone(), ColumnsZeroedFiles::Name as i32, ColumnsZeroedFiles::Path as i32, &gui_data);
basic_remove(&scrolled_window_zeroed_files_finder.clone(), ColumnsZeroedFiles::Name as i32, ColumnsZeroedFiles::Path as i32, &gui_data);
}
"notebook_main_same_music_finder" => {
tree_remove(scrolled_window_same_music_finder.clone(), ColumnsSameMusic::Name as i32, ColumnsSameMusic::Path as i32, ColumnsSameMusic::Color as i32, &gui_data);
tree_remove(&scrolled_window_same_music_finder.clone(), ColumnsSameMusic::Name as i32, ColumnsSameMusic::Path as i32, ColumnsSameMusic::Color as i32, &gui_data);
}
"scrolled_window_invalid_symlinks" => {
basic_remove(scrolled_window_invalid_symlinks.clone(), ColumnsInvalidSymlinks::Name as i32, ColumnsInvalidSymlinks::Path as i32, &gui_data);
basic_remove(&scrolled_window_invalid_symlinks.clone(), ColumnsInvalidSymlinks::Name as i32, ColumnsInvalidSymlinks::Path as i32, &gui_data);
}
e => panic!("Not existent {}", e),
}
});
}

fn empty_folder_remover(scrolled_window: gtk::ScrolledWindow, column_file_name: i32, column_path: i32, gui_data: &GuiData) {
pub fn empty_folder_remover(scrolled_window: &gtk::ScrolledWindow, column_file_name: i32, column_path: i32, gui_data: &GuiData) {
let text_view_errors = gui_data.text_view_errors.clone();

let tree_view = scrolled_window.get_children().get(0).unwrap().clone().downcast::<gtk::TreeView>().unwrap();
Expand Down Expand Up @@ -177,7 +177,7 @@ fn empty_folder_remover(scrolled_window: gtk::ScrolledWindow, column_file_name:
selection.unselect_all();
}

fn basic_remove(scrolled_window: gtk::ScrolledWindow, column_file_name: i32, column_path: i32, gui_data: &GuiData) {
pub fn basic_remove(scrolled_window: &gtk::ScrolledWindow, column_file_name: i32, column_path: i32, gui_data: &GuiData) {
let text_view_errors = gui_data.text_view_errors.clone();

let tree_view = scrolled_window.get_children().get(0).unwrap().clone().downcast::<gtk::TreeView>().unwrap();
Expand Down Expand Up @@ -212,7 +212,7 @@ fn basic_remove(scrolled_window: gtk::ScrolledWindow, column_file_name: i32, col

// Remove all occurrences - remove every element which have same path and name as even non selected ones
//
fn tree_remove(scrolled_window: gtk::ScrolledWindow, column_file_name: i32, column_path: i32, column_color: i32, gui_data: &GuiData) {
pub fn tree_remove(scrolled_window: &gtk::ScrolledWindow, column_file_name: i32, column_path: i32, column_color: i32, gui_data: &GuiData) {
let text_view_errors = gui_data.text_view_errors.clone();

let tree_view = scrolled_window.get_children().get(0).unwrap().clone().downcast::<gtk::TreeView>().unwrap();
Expand Down
33 changes: 15 additions & 18 deletions czkawka_gui/src/connect_selection_of_directories.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
extern crate gtk;
use crate::gui_data::GuiData;
use crate::help_functions::{get_list_store, get_tree_view};
use gtk::prelude::*;

pub fn connect_selection_of_directories(gui_data: &GuiData) {
Expand Down Expand Up @@ -69,35 +70,31 @@ pub fn connect_selection_of_directories(gui_data: &GuiData) {
let buttons_remove_excluded_directory = gui_data.buttons_remove_excluded_directory.clone();
let scrolled_window_excluded_directories = gui_data.scrolled_window_excluded_directories.clone();
buttons_remove_excluded_directory.connect_clicked(move |_| {
let tree_view = scrolled_window_excluded_directories.get_children().get(0).unwrap().clone().downcast::<gtk::TreeView>().unwrap();
let list_store = tree_view.get_model().unwrap().downcast::<gtk::ListStore>().unwrap();
let tree_view = get_tree_view(&scrolled_window_excluded_directories);
let list_store = get_list_store(&scrolled_window_excluded_directories);
let selection = tree_view.get_selection();

let (_, tree_iter) = match selection.get_selected() {
Some(t) => t,
None => {
return;
}
};
list_store.remove(&tree_iter);
let (vec_tree_path, _tree_model) = selection.get_selected_rows();

for tree_path in vec_tree_path.iter().rev() {
list_store.remove(&list_store.get_iter(tree_path).unwrap());
}
});
}
// Remove Included Folder
{
let buttons_remove_included_directory = gui_data.buttons_remove_included_directory.clone();
let scrolled_window_included_directories = gui_data.scrolled_window_included_directories.clone();
buttons_remove_included_directory.connect_clicked(move |_| {
let tree_view = scrolled_window_included_directories.get_children().get(0).unwrap().clone().downcast::<gtk::TreeView>().unwrap();
let list_store = tree_view.get_model().unwrap().downcast::<gtk::ListStore>().unwrap();
let tree_view = get_tree_view(&scrolled_window_included_directories);
let list_store = get_list_store(&scrolled_window_included_directories);
let selection = tree_view.get_selection();

let (_, tree_iter) = match selection.get_selected() {
Some(t) => t,
None => {
return;
}
};
list_store.remove(&tree_iter);
let (vec_tree_path, _tree_model) = selection.get_selected_rows();

for tree_path in vec_tree_path.iter().rev() {
list_store.remove(&list_store.get_iter(tree_path).unwrap());
}
});
}
}
Loading