diff --git a/czkawka_gui/src/connect_button_move.rs b/czkawka_gui/src/connect_button_move.rs index 471554e..2adf840 100644 --- a/czkawka_gui/src/connect_button_move.rs +++ b/czkawka_gui/src/connect_button_move.rs @@ -75,13 +75,23 @@ fn move_things(tree_view: >k::TreeView, column_file_name: i32, column_path: i3 let tree_view = tree_view.clone(); chooser.connect_response(move |file_chooser, response_type| { if response_type == gtk::ResponseType::Ok { - let g_files = file_chooser.files(); - let mut folders: Vec = Vec::new(); - for file in g_files { - if let Some(path_buf) = file.path() { - folders.push(path_buf); - } - } + let folders: Vec; + // GTK 3 + folders = file_chooser.filenames(); + // GTK 4 + // folders = Vec::new(); + // if let Some(g_files) = file_chooser.files() { + // for index in 0..g_files.n_items() { + // let file = &g_files.item(index); + // if let Some(file) = file { + // println!("{:?}", file); + // let ss = file.clone().downcast::().unwrap(); + // if let Some(path_buf) = ss.path() { + // folders.push(path_buf); + // } + // } + // } + // } if folders.len() != 1 { add_text_to_text_view(&text_view_errors, format!("{} {:?}", &fl!("move_files_choose_more_than_1_path"), folders).as_str()); diff --git a/czkawka_gui/src/connect_selection_of_directories.rs b/czkawka_gui/src/connect_selection_of_directories.rs index 6dfb642..0a46a2b 100644 --- a/czkawka_gui/src/connect_selection_of_directories.rs +++ b/czkawka_gui/src/connect_selection_of_directories.rs @@ -91,13 +91,24 @@ fn add_chosen_directories(window_main: &Window, tree_view: &TreeView, excluded_i let tree_view = tree_view.clone(); file_chooser.connect_response(move |file_chooser, response_type| { if response_type == gtk::ResponseType::Ok { - let g_files = file_chooser.files(); - let mut folders: Vec = Vec::new(); - for file in g_files { - if let Some(path_buf) = file.path() { - folders.push(path_buf); - } - } + let folders: Vec; + // GTK 3 + folders = file_chooser.filenames(); + // GTK 4 + // folders = Vec::new(); + // if let Some(g_files) = file_chooser.files() { + // for index in 0..g_files.n_items() { + // let file = &g_files.item(index); + // if let Some(file) = file { + // println!("{:?}", file); + // let ss = file.clone().downcast::().unwrap(); + // if let Some(path_buf) = ss.path() { + // folders.push(path_buf); + // } + // } + // } + // } + let list_store = get_list_store(&tree_view); for file_entry in &folders { diff --git a/czkawka_gui/src/gui_bottom_buttons.rs b/czkawka_gui/src/gui_bottom_buttons.rs index c38e06c..69595c7 100644 --- a/czkawka_gui/src/gui_bottom_buttons.rs +++ b/czkawka_gui/src/gui_bottom_buttons.rs @@ -1,5 +1,5 @@ use crate::fl; -use crate::help_functions::get_custom_label_from_label_with_image; +use crate::help_functions::get_custom_label_from_button_with_image; use gtk::prelude::*; use gtk::{Bin, Widget}; @@ -67,21 +67,21 @@ impl GuiBottomButtons { } } pub fn update_language(&self) { - get_custom_label_from_label_with_image(&self.buttons_search.clone().upcast::()).set_text(&fl!("bottom_search_button")); - get_custom_label_from_label_with_image(&self.buttons_select.clone().upcast::()).set_text(&fl!("bottom_select_button")); - get_custom_label_from_label_with_image(&self.buttons_delete.clone().upcast::()).set_text(&fl!("bottom_delete_button")); - get_custom_label_from_label_with_image(&self.buttons_save.clone().upcast::()).set_text(&fl!("bottom_save_button")); - get_custom_label_from_label_with_image(&self.buttons_symlink.clone().upcast::()).set_text(&fl!("bottom_symlink_button")); - get_custom_label_from_label_with_image(&self.buttons_hardlink.clone().upcast::()).set_text(&fl!("bottom_hardlink_button")); - get_custom_label_from_label_with_image(&self.buttons_move.clone().upcast::()).set_text(&fl!("bottom_move_button")); + get_custom_label_from_button_with_image(&self.buttons_search.clone().upcast::()).set_text(&fl!("bottom_search_button")); + get_custom_label_from_button_with_image(&self.buttons_select.clone().upcast::()).set_text(&fl!("bottom_select_button")); + get_custom_label_from_button_with_image(&self.buttons_delete.clone().upcast::()).set_text(&fl!("bottom_delete_button")); + get_custom_label_from_button_with_image(&self.buttons_save.clone().upcast::()).set_text(&fl!("bottom_save_button")); + get_custom_label_from_button_with_image(&self.buttons_symlink.clone().upcast::()).set_text(&fl!("bottom_symlink_button")); + get_custom_label_from_button_with_image(&self.buttons_hardlink.clone().upcast::()).set_text(&fl!("bottom_hardlink_button")); + get_custom_label_from_button_with_image(&self.buttons_move.clone().upcast::()).set_text(&fl!("bottom_move_button")); - // get_custom_label_from_label_with_image(&self.buttons_search.clone()).set_text(&fl!("bottom_search_button")); - // get_custom_label_from_label_with_image(&self.buttons_select.clone()).set_text(&fl!("bottom_select_button")); - // get_custom_label_from_label_with_image(&self.buttons_delete.clone()).set_text(&fl!("bottom_delete_button")); - // get_custom_label_from_label_with_image(&self.buttons_save.clone()).set_text(&fl!("bottom_save_button")); - // get_custom_label_from_label_with_image(&self.buttons_symlink.clone()).set_text(&fl!("bottom_symlink_button")); - // get_custom_label_from_label_with_image(&self.buttons_hardlink.clone()).set_text(&fl!("bottom_hardlink_button")); - // get_custom_label_from_label_with_image(&self.buttons_move.clone()).set_text(&fl!("bottom_move_button")); + // get_custom_label_from_button_with_image(&self.buttons_search.clone()).set_text(&fl!("bottom_search_button")); + // get_custom_label_from_button_with_image(&self.buttons_select.clone()).set_text(&fl!("bottom_select_button")); + // get_custom_label_from_button_with_image(&self.buttons_delete.clone()).set_text(&fl!("bottom_delete_button")); + // get_custom_label_from_button_with_image(&self.buttons_save.clone()).set_text(&fl!("bottom_save_button")); + // get_custom_label_from_button_with_image(&self.buttons_symlink.clone()).set_text(&fl!("bottom_symlink_button")); + // get_custom_label_from_button_with_image(&self.buttons_hardlink.clone()).set_text(&fl!("bottom_hardlink_button")); + // get_custom_label_from_button_with_image(&self.buttons_move.clone()).set_text(&fl!("bottom_move_button")); self.buttons_search.set_tooltip_text(Some(&fl!("bottom_search_button_tooltip"))); self.buttons_select.set_tooltip_text(Some(&fl!("bottom_select_button_tooltip"))); diff --git a/czkawka_gui/src/gui_progress_dialog.rs b/czkawka_gui/src/gui_progress_dialog.rs index db72b0a..88a1397 100644 --- a/czkawka_gui/src/gui_progress_dialog.rs +++ b/czkawka_gui/src/gui_progress_dialog.rs @@ -1,5 +1,5 @@ use crate::fl; -use crate::help_functions::get_custom_label_from_label_with_image; +use crate::help_functions::get_custom_label_from_button_with_image; use gtk::prelude::*; use gtk::{Bin, Builder, EventControllerKey, Window}; @@ -60,7 +60,7 @@ impl GuiProgressDialog { } } pub fn update_language(&self) { - get_custom_label_from_label_with_image(&self.button_stop_in_dialog.clone().upcast::()).set_text(&fl!("progress_stop_button")); + get_custom_label_from_button_with_image(&self.button_stop_in_dialog.clone().upcast::()).set_text(&fl!("progress_stop_button")); self.label_progress_current_stage.set_label(&fl!("progress_current_stage")); self.label_progress_all_stages.set_label(&fl!("progress_all_stages")); diff --git a/czkawka_gui/src/gui_upper_notebook.rs b/czkawka_gui/src/gui_upper_notebook.rs index de16344..5f872c8 100644 --- a/czkawka_gui/src/gui_upper_notebook.rs +++ b/czkawka_gui/src/gui_upper_notebook.rs @@ -1,5 +1,5 @@ use crate::fl; -use crate::help_functions::get_custom_label_from_label_with_image; +use crate::help_functions::get_custom_label_from_button_with_image; use crate::notebook_enums::NotebookUpperEnum; use gtk::prelude::*; use gtk::{Bin, EventControllerKey, TreeView}; @@ -103,12 +103,20 @@ impl GuiUpperNotebook { self.check_button_recursive.set_label(&fl!("upper_recursive_button")); self.check_button_recursive.set_tooltip_text(Some(&fl!("upper_recursive_button_tooltip"))); - get_custom_label_from_label_with_image(&self.buttons_manual_add_included_directory.clone().upcast::()).set_text(&fl!("upper_manual_add_included_button")); - get_custom_label_from_label_with_image(&self.buttons_add_included_directory.clone().upcast::()).set_text(&fl!("upper_add_included_button")); - get_custom_label_from_label_with_image(&self.buttons_remove_included_directory.clone().upcast::()).set_text(&fl!("upper_remove_included_button")); - get_custom_label_from_label_with_image(&self.buttons_manual_add_excluded_directory.clone().upcast::()).set_text(&fl!("upper_manual_add_excluded_button")); - get_custom_label_from_label_with_image(&self.buttons_add_excluded_directory.clone().upcast::()).set_text(&fl!("upper_add_excluded_button")); - get_custom_label_from_label_with_image(&self.buttons_remove_excluded_directory.clone().upcast::()).set_text(&fl!("upper_remove_excluded_button")); + get_custom_label_from_button_with_image(&self.buttons_manual_add_included_directory.clone().upcast::()).set_text(&fl!("upper_manual_add_included_button")); + get_custom_label_from_button_with_image(&self.buttons_add_included_directory.clone().upcast::()).set_text(&fl!("upper_add_included_button")); + get_custom_label_from_button_with_image(&self.buttons_remove_included_directory.clone().upcast::()).set_text(&fl!("upper_remove_included_button")); + get_custom_label_from_button_with_image(&self.buttons_manual_add_excluded_directory.clone().upcast::()).set_text(&fl!("upper_manual_add_excluded_button")); + get_custom_label_from_button_with_image(&self.buttons_add_excluded_directory.clone().upcast::()).set_text(&fl!("upper_add_excluded_button")); + get_custom_label_from_button_with_image(&self.buttons_remove_excluded_directory.clone().upcast::()).set_text(&fl!("upper_remove_excluded_button")); + + // GTK 4 + // get_custom_label_from_label_with_image(&self.buttons_manual_add_included_directory.clone()).set_text(&fl!("upper_manual_add_included_button")); + // get_custom_label_from_label_with_image(&self.buttons_add_included_directory.clone()).set_text(&fl!("upper_add_included_button")); + // get_custom_label_from_label_with_image(&self.buttons_remove_included_directory.clone()).set_text(&fl!("upper_remove_included_button")); + // get_custom_label_from_label_with_image(&self.buttons_manual_add_excluded_directory.clone()).set_text(&fl!("upper_manual_add_excluded_button")); + // get_custom_label_from_label_with_image(&self.buttons_add_excluded_directory.clone()).set_text(&fl!("upper_add_excluded_button")); + // get_custom_label_from_label_with_image(&self.buttons_remove_excluded_directory.clone()).set_text(&fl!("upper_remove_excluded_button")); self.buttons_manual_add_included_directory.set_tooltip_text(Some(&fl!("upper_manual_add_included_button_tooltip"))); self.buttons_add_included_directory.set_tooltip_text(Some(&fl!("upper_add_included_button_tooltip"))); diff --git a/czkawka_gui/src/help_functions.rs b/czkawka_gui/src/help_functions.rs index 7f71bc3..385e987 100644 --- a/czkawka_gui/src/help_functions.rs +++ b/czkawka_gui/src/help_functions.rs @@ -542,7 +542,7 @@ pub fn clean_invalid_headers(model: >k::ListStore, column_color: i32) { } } -pub fn get_custom_label_from_label_with_image(button: >k::Bin) -> gtk::Label { +pub fn get_custom_label_from_button_with_image(button: >k::Bin) -> gtk::Label { let internal_box = button.child().unwrap().downcast::().unwrap(); for child in internal_box.children() { if let Ok(t) = child.downcast::() { @@ -551,15 +551,31 @@ pub fn get_custom_label_from_label_with_image(button: >k::Bin) -> gtk::Label { } panic!("Button doesn't have proper custom label child"); } -// pub fn get_custom_label_from_label_with_image>(button: &P) -> gtk::Label { -// let internal_box = button.widget().unwrap().downcast::().unwrap(); -// for child in internal_box.children() { -// if let Ok(t) = child.downcast::() { + +// GTK 4 +// pub fn get_custom_label_from_button_with_image>(button: &P) -> gtk4::Label { +// let internal_box = button.first_child().unwrap().downcast::().unwrap(); +// for child in get_all_children(&internal_box) { +// if let Ok(t) = child.downcast::() { // return t; // } // } // panic!("Button doesn't have proper custom label child"); // } +// TODO needs GTK 4.6 to be able to set as child of menu button a box +// pub fn get_custom_label_from_menubutton_with_image>(button: &P) -> gtk4::Label { +// println!("{:?}", get_all_children(button)); +// for c1 in get_all_children(button) { +// if let Ok(internal_box) = c1.downcast::() { +// for child in get_all_children(&internal_box) { +// if let Ok(t) = child.downcast::() { +// return t; +// } +// } +// } +// } +// panic!("Menu Button doesn't have proper custom label child"); +// } // GTK 4 // pub fn get_all_children>(wid: &P) -> Vec { diff --git a/czkawka_gui/src/initialize_gui.rs b/czkawka_gui/src/initialize_gui.rs index 71d1b1c..7805208 100644 --- a/czkawka_gui/src/initialize_gui.rs +++ b/czkawka_gui/src/initialize_gui.rs @@ -466,6 +466,20 @@ pub fn initialize_gui(gui_data: &mut GuiData) { } fn connect_event_mouse(gui_data: &GuiData) { + for tree_view in [ + gui_data.main_notebook.tree_view_duplicate_finder.clone(), + gui_data.main_notebook.tree_view_empty_folder_finder.clone(), + gui_data.main_notebook.tree_view_empty_files_finder.clone(), + gui_data.main_notebook.tree_view_temporary_files_finder.clone(), + gui_data.main_notebook.tree_view_big_files_finder.clone(), + gui_data.main_notebook.tree_view_similar_images_finder.clone(), + gui_data.main_notebook.tree_view_similar_videos_finder.clone(), + gui_data.main_notebook.tree_view_same_music_finder.clone(), + gui_data.main_notebook.tree_view_invalid_symlinks.clone(), + gui_data.main_notebook.tree_view_broken_files.clone(), + ] { + tree_view.connect_button_press_event(opening_double_click_function); + } // Duplicate { let text_view_errors = gui_data.text_view_errors.clone(); @@ -474,7 +488,6 @@ fn connect_event_mouse(gui_data: &GuiData) { let preview_path = gui_data.preview_path.clone(); let tree_view = gui_data.main_notebook.tree_view_duplicate_finder.clone(); - tree_view.connect_button_press_event(opening_double_click_function); tree_view.connect_button_release_event(move |tree_view, _event| { let nb_object = &NOTEBOOKS_INFOS[NotebookMainEnum::Duplicate as usize]; let preview_path = preview_path.clone(); @@ -483,30 +496,6 @@ fn connect_event_mouse(gui_data: &GuiData) { gtk::Inhibit(false) }); } - // Empty Folders - { - let tree_view = gui_data.main_notebook.tree_view_empty_folder_finder.clone(); - - tree_view.connect_button_press_event(opening_double_click_function); - } - // Empty Files - { - let tree_view = gui_data.main_notebook.tree_view_empty_files_finder.clone(); - - tree_view.connect_button_press_event(opening_double_click_function); - } - // Temporary Files - { - let tree_view = gui_data.main_notebook.tree_view_temporary_files_finder.clone(); - - tree_view.connect_button_press_event(opening_double_click_function); - } - // Big Files - { - let tree_view = gui_data.main_notebook.tree_view_big_files_finder.clone(); - - tree_view.connect_button_press_event(opening_double_click_function); - } // Similar Images { let text_view_errors = gui_data.text_view_errors.clone(); @@ -523,32 +512,79 @@ fn connect_event_mouse(gui_data: &GuiData) { gtk::Inhibit(false) }); } - // Similar Videos - { - let tree_view = gui_data.main_notebook.tree_view_similar_videos_finder.clone(); - tree_view.connect_button_press_event(opening_double_click_function); - } - // Same Music - { - let tree_view = gui_data.main_notebook.tree_view_same_music_finder.clone(); - - tree_view.connect_button_press_event(opening_double_click_function); - } - // Invalid Symlinks - { - let tree_view = gui_data.main_notebook.tree_view_invalid_symlinks.clone(); - - tree_view.connect_button_press_event(opening_double_click_function); - } - // Broken Files - { - let tree_view = gui_data.main_notebook.tree_view_broken_files.clone(); - - tree_view.connect_button_press_event(opening_double_click_function); - } + // GTK 4 + // for gc in [ + // gui_data.main_notebook.gc_tree_view_duplicate_finder.clone(), + // gui_data.main_notebook.gc_tree_view_empty_folder_finder.clone(), + // gui_data.main_notebook.gc_tree_view_empty_files_finder.clone(), + // gui_data.main_notebook.gc_tree_view_temporary_files_finder.clone(), + // gui_data.main_notebook.gc_tree_view_big_files_finder.clone(), + // gui_data.main_notebook.gc_tree_view_similar_images_finder.clone(), + // gui_data.main_notebook.gc_tree_view_similar_videos_finder.clone(), + // gui_data.main_notebook.gc_tree_view_same_music_finder.clone(), + // gui_data.main_notebook.gc_tree_view_invalid_symlinks.clone(), + // gui_data.main_notebook.gc_tree_view_broken_files.clone(), + // ] { + // gc.set_button(0); + // gc.connect_pressed(opening_double_click_function); + // } + // + // // Duplicate + // { + // let text_view_errors = gui_data.text_view_errors.clone(); + // let check_button_settings_show_preview = gui_data.settings.check_button_settings_show_preview_duplicates.clone(); + // let image_preview = gui_data.main_notebook.image_preview_duplicates.clone(); + // let preview_path = gui_data.preview_path.clone(); + // + // let gc = gui_data.main_notebook.gc_tree_view_duplicate_finder.clone(); + // + // gc.connect_released(move |gc, _event, _, _| { + // let tree_view = gc.widget().unwrap().downcast::().unwrap(); + // let nb_object = &NOTEBOOKS_INFOS[NotebookMainEnum::Duplicate as usize]; + // let preview_path = preview_path.clone(); + // show_preview(&tree_view, &text_view_errors, &check_button_settings_show_preview, &image_preview, preview_path, nb_object.column_path, nb_object.column_name); + // }); + // } + // // Similar Images + // { + // let text_view_errors = gui_data.text_view_errors.clone(); + // let check_button_settings_show_preview = gui_data.settings.check_button_settings_show_preview_similar_images.clone(); + // let preview_path = gui_data.preview_path.clone(); + // let image_preview = gui_data.main_notebook.image_preview_similar_images.clone(); + // + // let gc = gui_data.main_notebook.gc_tree_view_similar_images_finder.clone(); + // + // gc.connect_released(move |gc, _event, _, _| { + // let tree_view = gc.widget().unwrap().downcast::().unwrap(); + // let nb_object = &NOTEBOOKS_INFOS[NotebookMainEnum::SimilarImages as usize]; + // let preview_path = preview_path.clone(); + // show_preview(&tree_view, &text_view_errors, &check_button_settings_show_preview, &image_preview, preview_path, nb_object.column_path, nb_object.column_name); + // }); + // } } fn connect_event_buttons(gui_data: &GuiData) { + for evk in [ + //gui_data.main_notebook.evk_tree_view_duplicate_finder.clone(), // Manual - needs to show/hide preview + gui_data.main_notebook.evk_tree_view_empty_folder_finder.clone(), + gui_data.main_notebook.evk_tree_view_empty_files_finder.clone(), + gui_data.main_notebook.evk_tree_view_temporary_files_finder.clone(), + gui_data.main_notebook.evk_tree_view_big_files_finder.clone(), + //gui_data.main_notebook.evk_tree_view_similar_images_finder.clone(),// Manual - needs to show/hide preview + gui_data.main_notebook.evk_tree_view_similar_videos_finder.clone(), + gui_data.main_notebook.evk_tree_view_same_music_finder.clone(), + gui_data.main_notebook.evk_tree_view_invalid_symlinks.clone(), + gui_data.main_notebook.evk_tree_view_broken_files.clone(), + ] { + let gui_data_clone = gui_data.clone(); + evk.connect_key_pressed(opening_enter_function_ported); + + evk.connect_key_released(move |_event_controller_key, _key_value, key_code, _modifier_type| { + if key_code == KEY_DELETE { + glib::MainContext::default().spawn_local(delete_things(gui_data_clone.clone())); + } + }); + } // Duplicate { let gui_data_clone = gui_data.clone(); @@ -577,58 +613,6 @@ fn connect_event_buttons(gui_data: &GuiData) { ); }); } - // Empty Folder - { - let gui_data_clone = gui_data.clone(); - let evk = gui_data.main_notebook.evk_tree_view_empty_folder_finder.clone(); - - evk.connect_key_pressed(opening_enter_function_ported); - - evk.connect_key_released(move |_event_controller_key, _key_value, key_code, _modifier_type| { - if key_code == KEY_DELETE { - glib::MainContext::default().spawn_local(delete_things(gui_data_clone.clone())); - } - }); - } - // Empty Files - { - let gui_data_clone = gui_data.clone(); - let evk = gui_data.main_notebook.evk_tree_view_empty_files_finder.clone(); - - evk.connect_key_pressed(opening_enter_function_ported); - - evk.connect_key_released(move |_event_controller_key, _key_value, key_code, _modifier_type| { - if key_code == KEY_DELETE { - glib::MainContext::default().spawn_local(delete_things(gui_data_clone.clone())); - } - }); - } - // Temporary - { - let gui_data_clone = gui_data.clone(); - let evk = gui_data.main_notebook.evk_tree_view_temporary_files_finder.clone(); - - evk.connect_key_pressed(opening_enter_function_ported); - - evk.connect_key_released(move |_event_controller_key, _key_value, key_code, _modifier_type| { - if key_code == KEY_DELETE { - glib::MainContext::default().spawn_local(delete_things(gui_data_clone.clone())); - } - }); - } - // Big Files - { - let gui_data_clone = gui_data.clone(); - let evk = gui_data.main_notebook.evk_tree_view_big_files_finder.clone(); - - evk.connect_key_pressed(opening_enter_function_ported); - - evk.connect_key_released(move |_event_controller_key, _key_value, key_code, _modifier_type| { - if key_code == KEY_DELETE { - glib::MainContext::default().spawn_local(delete_things(gui_data_clone.clone())); - } - }); - } // Similar Images { let check_button_settings_show_preview_similar_images = gui_data.settings.check_button_settings_show_preview_similar_images.clone(); @@ -657,58 +641,6 @@ fn connect_event_buttons(gui_data: &GuiData) { ); }); } - // Similar Videos - { - let gui_data_clone = gui_data.clone(); - let evk = gui_data.main_notebook.evk_tree_view_similar_videos_finder.clone(); - - evk.connect_key_pressed(opening_enter_function_ported); - - evk.connect_key_released(move |_event_controller_key, _key_value, key_code, _modifier_type| { - if key_code == KEY_DELETE { - glib::MainContext::default().spawn_local(delete_things(gui_data_clone.clone())); - } - }); - } - // Same music - { - let gui_data_clone = gui_data.clone(); - let evk = gui_data.main_notebook.evk_tree_view_same_music_finder.clone(); - - evk.connect_key_pressed(opening_enter_function_ported); - - evk.connect_key_released(move |_event_controller_key, _key_value, key_code, _modifier_type| { - if key_code == KEY_DELETE { - glib::MainContext::default().spawn_local(delete_things(gui_data_clone.clone())); - } - }); - } - // Invalid Symlinks - { - let gui_data_clone = gui_data.clone(); - let evk = gui_data.main_notebook.evk_tree_view_invalid_symlinks.clone(); - - evk.connect_key_pressed(opening_enter_function_ported); - - evk.connect_key_released(move |_event_controller_key, _key_value, key_code, _modifier_type| { - if key_code == KEY_DELETE { - glib::MainContext::default().spawn_local(delete_things(gui_data_clone.clone())); - } - }); - } - // Broken Files - { - let gui_data_clone = gui_data.clone(); - let evk = gui_data.main_notebook.evk_tree_view_broken_files.clone(); - - evk.connect_key_pressed(opening_enter_function_ported); - - evk.connect_key_released(move |_event_controller_key, _key_value, key_code, _modifier_type| { - if key_code == KEY_DELETE { - glib::MainContext::default().spawn_local(delete_things(gui_data_clone.clone())); - } - }); - } } fn show_preview(tree_view: &TreeView, text_view_errors: &TextView, check_button_settings_show_preview: &CheckButton, image_preview: &Image, preview_path: Rc>, column_path: i32, column_name: i32) { diff --git a/czkawka_gui/src/opening_selecting_records.rs b/czkawka_gui/src/opening_selecting_records.rs index 7085a89..39d3bf6 100644 --- a/czkawka_gui/src/opening_selecting_records.rs +++ b/czkawka_gui/src/opening_selecting_records.rs @@ -16,8 +16,18 @@ pub fn opening_enter_function_ported(event_controller: >k::EventControllerKey, false // True catches signal, and don't send it to function, e.g. up button is catched and don't move selection } -// GTK 4 -// pub fn opening_enter_function_ported_(event_controller: >k4::EventControllerKey, _key: gdk4::keys::Key, key_code: u32, _modifier_type: ModifierType) -> gtk4::Inhibit { +pub fn opening_double_click_function(tree_view: >k::TreeView, event: &gdk::EventButton) -> gtk::Inhibit { + let nt_object = get_notebook_object_from_tree_view(tree_view); + if event.event_type() == gdk::EventType::DoubleButtonPress && event.button() == 1 { + common_open_function(tree_view, nt_object.column_name, nt_object.column_path, OpenMode::PathAndName); + } else if event.event_type() == gdk::EventType::DoubleButtonPress && event.button() == 3 { + common_open_function(tree_view, nt_object.column_name, nt_object.column_path, OpenMode::OnlyPath); + } + gtk::Inhibit(false) +} + +// // GTK 4 +// pub fn opening_enter_function_ported(event_controller: >k4::EventControllerKey, _key: gdk4::keys::Key, key_code: u32, _modifier_type: ModifierType) -> gtk4::Inhibit { // let tree_view = event_controller.widget().unwrap().downcast::().unwrap(); // #[cfg(debug_assertions)] // { @@ -28,16 +38,19 @@ pub fn opening_enter_function_ported(event_controller: >k::EventControllerKey, // handle_tree_keypress(&tree_view, key_code, nt_object.column_name, nt_object.column_path, nt_object.column_selection); // Inhibit(false) // True catches signal, and don't send it to function, e.g. up button is catched and don't move selection // } - -pub fn opening_double_click_function(tree_view: >k::TreeView, event: &gdk::EventButton) -> gtk::Inhibit { - let nt_object = get_notebook_object_from_tree_view(tree_view); - if event.event_type() == gdk::EventType::DoubleButtonPress && event.button() == 1 { - common_open_function(tree_view, nt_object.column_name, nt_object.column_path, OpenMode::PathAndName); - } else if event.event_type() == gdk::EventType::DoubleButtonPress && event.button() == 3 { - common_open_function(tree_view, nt_object.column_name, nt_object.column_path, OpenMode::OnlyPath); - } - gtk::Inhibit(false) -} +// +// pub fn opening_double_click_function(gesture_click: &GestureClick, number_of_clicks: i32, _b: f64, _c: f64) { +// let tree_view = gesture_click.widget().unwrap().downcast::().unwrap(); +// +// let nt_object = get_notebook_object_from_tree_view(&tree_view); +// if number_of_clicks == 2 { +// if gesture_click.current_button() == 1 { +// common_open_function(&tree_view, nt_object.column_name, nt_object.column_path, OpenMode::PathAndName); +// } else if gesture_click.current_button() == 3 { +// common_open_function(&tree_view, nt_object.column_name, nt_object.column_path, OpenMode::OnlyPath); +// } +// } +// } enum OpenMode { OnlyPath,