diff --git a/czkawka_gui/src/connect_button_delete.rs b/czkawka_gui/src/connect_button_delete.rs index 03189ca..52d7949 100644 --- a/czkawka_gui/src/connect_button_delete.rs +++ b/czkawka_gui/src/connect_button_delete.rs @@ -97,14 +97,14 @@ pub fn connect_button_delete(gui_data: &GuiData) { pub fn empty_folder_remover(scrolled_window: >k::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::().unwrap(); + let tree_view = get_tree_view(&scrolled_window); let selection = tree_view.get_selection(); let (selection_rows, tree_model) = selection.get_selected_rows(); if selection_rows.is_empty() { return; } - let list_store = tree_model.clone().downcast::().unwrap(); + let list_store = get_list_store(&scrolled_window); // let new_tree_model = TreeModel::new(); // TODO - maybe create new model when inserting a new data, because this seems to be not optimal when using thousands of rows @@ -183,14 +183,14 @@ pub fn empty_folder_remover(scrolled_window: >k::ScrolledWindow, column_file_n pub fn basic_remove(scrolled_window: >k::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::().unwrap(); + let tree_view = get_tree_view(&scrolled_window); let selection = tree_view.get_selection(); let (selection_rows, tree_model) = selection.get_selected_rows(); if selection_rows.is_empty() { return; } - let list_store = tree_model.clone().downcast::().unwrap(); + let list_store = get_list_store(&scrolled_window); // let new_tree_model = TreeModel::new(); // TODO - maybe create new model when inserting a new data, because this seems to be not optimal when using thousands of rows @@ -218,14 +218,14 @@ pub fn basic_remove(scrolled_window: >k::ScrolledWindow, column_file_name: i32 pub fn tree_remove(scrolled_window: >k::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::().unwrap(); + let tree_view = get_tree_view(&scrolled_window); let selection = tree_view.get_selection(); let (selection_rows, tree_model) = selection.get_selected_rows(); if selection_rows.is_empty() { return; } - let list_store = tree_model.clone().downcast::().unwrap(); + let list_store = get_list_store(&scrolled_window); // let new_tree_model = TreeModel::new(); // TODO - maybe create new model when inserting a new data, because this seems to be not optimal when using thousands of rows diff --git a/czkawka_gui/src/connect_popovers.rs b/czkawka_gui/src/connect_popovers.rs index eafe01a..0f2968c 100644 --- a/czkawka_gui/src/connect_popovers.rs +++ b/czkawka_gui/src/connect_popovers.rs @@ -453,10 +453,8 @@ fn popover_unselect_custom(popover: >k::Popover, gui_data: &GuiData, scrolled_ grid.attach(&entry_name, 1, 2, 1, 1); grid.attach(&entry_name_path, 1, 3, 1, 1); - for widgets in confirmation_dialog_delete.get_children() { - // By default GtkBox is child of dialog, so we can easily add other things to it - widgets.downcast::().unwrap().add(&grid); - } + let box_widget = get_dialog_box_child(&confirmation_dialog_delete); + box_widget.add(&grid); confirmation_dialog_delete.show_all(); diff --git a/czkawka_gui/src/connect_selection_of_directories.rs b/czkawka_gui/src/connect_selection_of_directories.rs index f5031f6..3d04546 100644 --- a/czkawka_gui/src/connect_selection_of_directories.rs +++ b/czkawka_gui/src/connect_selection_of_directories.rs @@ -31,8 +31,7 @@ pub fn connect_selection_of_directories(gui_data: &GuiData) { let text = Common::normalize_windows_path(text).to_string_lossy().to_string(); if !text.is_empty() { - let tree_view = scrolled_window_included_directories.get_children().get(0).unwrap().clone().downcast::().unwrap(); - let list_store = tree_view.get_model().unwrap().downcast::().unwrap(); + let list_store = get_list_store(&scrolled_window_included_directories); let col_indices = [0]; @@ -75,8 +74,7 @@ pub fn connect_selection_of_directories(gui_data: &GuiData) { let text = Common::normalize_windows_path(text).to_string_lossy().to_string(); if !text.is_empty() { - let tree_view = scrolled_window_excluded_directories.get_children().get(0).unwrap().clone().downcast::().unwrap(); - let list_store = tree_view.get_model().unwrap().downcast::().unwrap(); + let list_store = get_list_store(&scrolled_window_excluded_directories); let col_indices = [0]; @@ -108,8 +106,7 @@ pub fn connect_selection_of_directories(gui_data: &GuiData) { if response_type == gtk::ResponseType::Ok { let folder = chooser.get_filenames(); - let tree_view = scrolled_window_included_directories.get_children().get(0).unwrap().clone().downcast::().unwrap(); - let list_store = tree_view.get_model().unwrap().downcast::().unwrap(); + let list_store = get_list_store(&scrolled_window_included_directories); let col_indices = [0]; for file_entry in &folder { @@ -138,8 +135,7 @@ pub fn connect_selection_of_directories(gui_data: &GuiData) { if response_type == gtk::ResponseType::Ok { let folder = chooser.get_filenames(); - let tree_view = scrolled_window_excluded_directories.get_children().get(0).unwrap().clone().downcast::().unwrap(); - let list_store = tree_view.get_model().unwrap().downcast::().unwrap(); + let list_store = get_list_store(&scrolled_window_excluded_directories); let col_indices = [0]; diff --git a/czkawka_gui/src/help_functions.rs b/czkawka_gui/src/help_functions.rs index 8b3244d..837bda4 100644 --- a/czkawka_gui/src/help_functions.rs +++ b/czkawka_gui/src/help_functions.rs @@ -279,6 +279,9 @@ pub fn get_tree_view(scrolled_window: >k::ScrolledWindow) -> TreeView { tree_view } +pub fn get_dialog_box_child(dialog: >k::Dialog) -> gtk::Box { + dialog.get_children()[0].clone().downcast::().unwrap() +} pub fn change_dimension_to_krotka(dimensions: String) -> (u64, u64) { #[allow(clippy::single_char_pattern)]