Add more GTK 4 compatibility fixes (#505)
* Add more compatibility fixes * Simplify
This commit is contained in:
parent
619e64466c
commit
c97bacad99
|
@ -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<PathBuf> = Vec::new();
|
||||
for file in g_files {
|
||||
if let Some(path_buf) = file.path() {
|
||||
folders.push(path_buf);
|
||||
}
|
||||
}
|
||||
let folders: Vec<PathBuf>;
|
||||
// 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::<gtk4::gio::File>().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());
|
||||
|
|
|
@ -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<PathBuf> = Vec::new();
|
||||
for file in g_files {
|
||||
if let Some(path_buf) = file.path() {
|
||||
folders.push(path_buf);
|
||||
}
|
||||
}
|
||||
let folders: Vec<PathBuf>;
|
||||
// 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::<gtk4::gio::File>().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 {
|
||||
|
|
|
@ -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::<Bin>()).set_text(&fl!("bottom_search_button"));
|
||||
get_custom_label_from_label_with_image(&self.buttons_select.clone().upcast::<Bin>()).set_text(&fl!("bottom_select_button"));
|
||||
get_custom_label_from_label_with_image(&self.buttons_delete.clone().upcast::<Bin>()).set_text(&fl!("bottom_delete_button"));
|
||||
get_custom_label_from_label_with_image(&self.buttons_save.clone().upcast::<Bin>()).set_text(&fl!("bottom_save_button"));
|
||||
get_custom_label_from_label_with_image(&self.buttons_symlink.clone().upcast::<Bin>()).set_text(&fl!("bottom_symlink_button"));
|
||||
get_custom_label_from_label_with_image(&self.buttons_hardlink.clone().upcast::<Bin>()).set_text(&fl!("bottom_hardlink_button"));
|
||||
get_custom_label_from_label_with_image(&self.buttons_move.clone().upcast::<Bin>()).set_text(&fl!("bottom_move_button"));
|
||||
get_custom_label_from_button_with_image(&self.buttons_search.clone().upcast::<Bin>()).set_text(&fl!("bottom_search_button"));
|
||||
get_custom_label_from_button_with_image(&self.buttons_select.clone().upcast::<Bin>()).set_text(&fl!("bottom_select_button"));
|
||||
get_custom_label_from_button_with_image(&self.buttons_delete.clone().upcast::<Bin>()).set_text(&fl!("bottom_delete_button"));
|
||||
get_custom_label_from_button_with_image(&self.buttons_save.clone().upcast::<Bin>()).set_text(&fl!("bottom_save_button"));
|
||||
get_custom_label_from_button_with_image(&self.buttons_symlink.clone().upcast::<Bin>()).set_text(&fl!("bottom_symlink_button"));
|
||||
get_custom_label_from_button_with_image(&self.buttons_hardlink.clone().upcast::<Bin>()).set_text(&fl!("bottom_hardlink_button"));
|
||||
get_custom_label_from_button_with_image(&self.buttons_move.clone().upcast::<Bin>()).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")));
|
||||
|
|
|
@ -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::<Bin>()).set_text(&fl!("progress_stop_button"));
|
||||
get_custom_label_from_button_with_image(&self.button_stop_in_dialog.clone().upcast::<Bin>()).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"));
|
||||
|
|
|
@ -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::<Bin>()).set_text(&fl!("upper_manual_add_included_button"));
|
||||
get_custom_label_from_label_with_image(&self.buttons_add_included_directory.clone().upcast::<Bin>()).set_text(&fl!("upper_add_included_button"));
|
||||
get_custom_label_from_label_with_image(&self.buttons_remove_included_directory.clone().upcast::<Bin>()).set_text(&fl!("upper_remove_included_button"));
|
||||
get_custom_label_from_label_with_image(&self.buttons_manual_add_excluded_directory.clone().upcast::<Bin>()).set_text(&fl!("upper_manual_add_excluded_button"));
|
||||
get_custom_label_from_label_with_image(&self.buttons_add_excluded_directory.clone().upcast::<Bin>()).set_text(&fl!("upper_add_excluded_button"));
|
||||
get_custom_label_from_label_with_image(&self.buttons_remove_excluded_directory.clone().upcast::<Bin>()).set_text(&fl!("upper_remove_excluded_button"));
|
||||
get_custom_label_from_button_with_image(&self.buttons_manual_add_included_directory.clone().upcast::<Bin>()).set_text(&fl!("upper_manual_add_included_button"));
|
||||
get_custom_label_from_button_with_image(&self.buttons_add_included_directory.clone().upcast::<Bin>()).set_text(&fl!("upper_add_included_button"));
|
||||
get_custom_label_from_button_with_image(&self.buttons_remove_included_directory.clone().upcast::<Bin>()).set_text(&fl!("upper_remove_included_button"));
|
||||
get_custom_label_from_button_with_image(&self.buttons_manual_add_excluded_directory.clone().upcast::<Bin>()).set_text(&fl!("upper_manual_add_excluded_button"));
|
||||
get_custom_label_from_button_with_image(&self.buttons_add_excluded_directory.clone().upcast::<Bin>()).set_text(&fl!("upper_add_excluded_button"));
|
||||
get_custom_label_from_button_with_image(&self.buttons_remove_excluded_directory.clone().upcast::<Bin>()).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")));
|
||||
|
|
|
@ -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::<gtk::Box>().unwrap();
|
||||
for child in internal_box.children() {
|
||||
if let Ok(t) = child.downcast::<gtk::Label>() {
|
||||
|
@ -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<P: IsA<gtk::Widget>>(button: &P) -> gtk::Label {
|
||||
// let internal_box = button.widget().unwrap().downcast::<gtk::Box>().unwrap();
|
||||
// for child in internal_box.children() {
|
||||
// if let Ok(t) = child.downcast::<gtk::Label>() {
|
||||
|
||||
// GTK 4
|
||||
// pub fn get_custom_label_from_button_with_image<P: IsA<gtk4::Widget>>(button: &P) -> gtk4::Label {
|
||||
// let internal_box = button.first_child().unwrap().downcast::<gtk4::Box>().unwrap();
|
||||
// for child in get_all_children(&internal_box) {
|
||||
// if let Ok(t) = child.downcast::<gtk4::Label>() {
|
||||
// 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<P: IsA<gtk4::Widget>>(button: &P) -> gtk4::Label {
|
||||
// println!("{:?}", get_all_children(button));
|
||||
// for c1 in get_all_children(button) {
|
||||
// if let Ok(internal_box) = c1.downcast::<gtk4::Box>() {
|
||||
// for child in get_all_children(&internal_box) {
|
||||
// if let Ok(t) = child.downcast::<gtk4::Label>() {
|
||||
// return t;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// panic!("Menu Button doesn't have proper custom label child");
|
||||
// }
|
||||
|
||||
// GTK 4
|
||||
// pub fn get_all_children<P: IsA<gtk::Widget>>(wid: &P) -> Vec<gtk::Widget> {
|
||||
|
|
|
@ -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::<gtk4::TreeView>().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::<gtk4::TreeView>().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<RefCell<String>>, column_path: i32, column_name: i32) {
|
||||
|
|
|
@ -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::<gtk4::TreeView>().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::<gtk4::TreeView>().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,
|
||||
|
|
Loading…
Reference in a new issue