Don't crash when adding directories (#527)
This commit is contained in:
parent
7cff862434
commit
d8700f6e78
|
@ -8,7 +8,7 @@ use czkawka_core::common::Common;
|
||||||
use czkawka_core::fl;
|
use czkawka_core::fl;
|
||||||
|
|
||||||
use crate::gui_data::GuiData;
|
use crate::gui_data::GuiData;
|
||||||
use crate::help_functions::{get_dialog_box_child, get_list_store, ColumnsIncludedDirectory};
|
use crate::help_functions::{get_dialog_box_child, get_list_store, ColumnsExcludedDirectory, ColumnsIncludedDirectory};
|
||||||
|
|
||||||
pub fn connect_selection_of_directories(gui_data: &GuiData) {
|
pub fn connect_selection_of_directories(gui_data: &GuiData) {
|
||||||
// Add manually directory
|
// Add manually directory
|
||||||
|
@ -17,7 +17,7 @@ pub fn connect_selection_of_directories(gui_data: &GuiData) {
|
||||||
let window_main = gui_data.window_main.clone();
|
let window_main = gui_data.window_main.clone();
|
||||||
let buttons_manual_add_included_directory = gui_data.upper_notebook.buttons_manual_add_included_directory.clone();
|
let buttons_manual_add_included_directory = gui_data.upper_notebook.buttons_manual_add_included_directory.clone();
|
||||||
buttons_manual_add_included_directory.connect_clicked(move |_| {
|
buttons_manual_add_included_directory.connect_clicked(move |_| {
|
||||||
add_manually_directories(&window_main, &tree_view_included_directories);
|
add_manually_directories(&window_main, &tree_view_included_directories, false);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// Add manually excluded directory
|
// Add manually excluded directory
|
||||||
|
@ -26,7 +26,7 @@ pub fn connect_selection_of_directories(gui_data: &GuiData) {
|
||||||
let window_main = gui_data.window_main.clone();
|
let window_main = gui_data.window_main.clone();
|
||||||
let buttons_manual_add_excluded_directory = gui_data.upper_notebook.buttons_manual_add_excluded_directory.clone();
|
let buttons_manual_add_excluded_directory = gui_data.upper_notebook.buttons_manual_add_excluded_directory.clone();
|
||||||
buttons_manual_add_excluded_directory.connect_clicked(move |_| {
|
buttons_manual_add_excluded_directory.connect_clicked(move |_| {
|
||||||
add_manually_directories(&window_main, &tree_view_excluded_directories);
|
add_manually_directories(&window_main, &tree_view_excluded_directories, true);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// Add included directory
|
// Add included directory
|
||||||
|
@ -119,19 +119,26 @@ fn add_chosen_directories(window_main: &Window, tree_view: &TreeView, excluded_i
|
||||||
|
|
||||||
let list_store = get_list_store(&tree_view);
|
let list_store = get_list_store(&tree_view);
|
||||||
|
|
||||||
for file_entry in &folders {
|
if excluded_items {
|
||||||
let values: [(u32, &dyn ToValue); 2] = [
|
for file_entry in &folders {
|
||||||
(ColumnsIncludedDirectory::Path as u32, &file_entry.to_string_lossy().to_string()),
|
let values: [(u32, &dyn ToValue); 1] = [(ColumnsExcludedDirectory::Path as u32, &file_entry.to_string_lossy().to_string())];
|
||||||
(ColumnsIncludedDirectory::ReferenceButton as u32, &false),
|
list_store.set(&list_store.append(), &values);
|
||||||
];
|
}
|
||||||
list_store.set(&list_store.append(), &values);
|
} else {
|
||||||
|
for file_entry in &folders {
|
||||||
|
let values: [(u32, &dyn ToValue); 2] = [
|
||||||
|
(ColumnsIncludedDirectory::Path as u32, &file_entry.to_string_lossy().to_string()),
|
||||||
|
(ColumnsIncludedDirectory::ReferenceButton as u32, &false),
|
||||||
|
];
|
||||||
|
list_store.set(&list_store.append(), &values);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
file_chooser.close();
|
file_chooser.close();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
fn add_manually_directories(window_main: &Window, tree_view: &TreeView) {
|
fn add_manually_directories(window_main: &Window, tree_view: &TreeView, excluded_items: bool) {
|
||||||
let dialog = gtk::Dialog::builder()
|
let dialog = gtk::Dialog::builder()
|
||||||
.title(&fl!("include_manually_directories_dialog_title"))
|
.title(&fl!("include_manually_directories_dialog_title"))
|
||||||
.transient_for(window_main)
|
.transient_for(window_main)
|
||||||
|
@ -157,8 +164,13 @@ fn add_manually_directories(window_main: &Window, tree_view: &TreeView) {
|
||||||
if !text.is_empty() {
|
if !text.is_empty() {
|
||||||
let list_store = get_list_store(&tree_view);
|
let list_store = get_list_store(&tree_view);
|
||||||
|
|
||||||
let values: [(u32, &dyn ToValue); 2] = [(ColumnsIncludedDirectory::Path as u32, &text), (ColumnsIncludedDirectory::ReferenceButton as u32, &false)];
|
if excluded_items {
|
||||||
list_store.set(&list_store.append(), &values);
|
let values: [(u32, &dyn ToValue); 1] = [(ColumnsExcludedDirectory::Path as u32, &text)];
|
||||||
|
list_store.set(&list_store.append(), &values);
|
||||||
|
} else {
|
||||||
|
let values: [(u32, &dyn ToValue); 2] = [(ColumnsIncludedDirectory::Path as u32, &text), (ColumnsIncludedDirectory::ReferenceButton as u32, &false)];
|
||||||
|
list_store.set(&list_store.append(), &values);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
dialog.close();
|
dialog.close();
|
||||||
|
|
Loading…
Reference in a new issue