Fixes missing multiple values in excluded and included directories
Added support for recursive button
This commit is contained in:
parent
4a27b2b3d9
commit
b91a115eac
|
@ -309,7 +309,7 @@ Author: Rafał Mikrut
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkCheckButton">
|
<object class="GtkCheckButton" id="check_button_recursive">
|
||||||
<property name="label" translatable="yes">Recursive</property>
|
<property name="label" translatable="yes">Recursive</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
|
@ -557,7 +557,7 @@ Author: Rafał Mikrut
|
||||||
<object class="GtkEntry" id="entry_excluded_items">
|
<object class="GtkEntry" id="entry_excluded_items">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="text" translatable="yes">*/.git,*/node_modules,/proc/*,/dev/*,*/lost+found</property>
|
<property name="text" translatable="yes">*/.git,*/node_modules,*/lost+found</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="expand">True</property>
|
<property name="expand">True</property>
|
||||||
|
|
|
@ -102,13 +102,24 @@ pub fn create_tree_view_directories(tree_view_directories: &mut gtk::TreeView) {
|
||||||
pub fn get_string_from_list_store(scrolled_window: >k::ScrolledWindow) -> String {
|
pub fn get_string_from_list_store(scrolled_window: >k::ScrolledWindow) -> String {
|
||||||
let tree_view: gtk::TreeView = scrolled_window.get_children().get(0).unwrap().clone().downcast::<gtk::TreeView>().unwrap();
|
let tree_view: gtk::TreeView = scrolled_window.get_children().get(0).unwrap().clone().downcast::<gtk::TreeView>().unwrap();
|
||||||
let list_store: gtk::ListStore = tree_view.get_model().unwrap().downcast::<gtk::ListStore>().unwrap();
|
let list_store: gtk::ListStore = tree_view.get_model().unwrap().downcast::<gtk::ListStore>().unwrap();
|
||||||
|
let mut first: bool = true;
|
||||||
|
|
||||||
|
let mut return_string: String = "".to_string();
|
||||||
let tree_iter = match list_store.get_iter_first() {
|
let tree_iter = match list_store.get_iter_first() {
|
||||||
Some(t) => t,
|
Some(t) => t,
|
||||||
None => return "".to_string(),
|
None => return return_string,
|
||||||
};
|
};
|
||||||
|
loop {
|
||||||
list_store.get_value(&tree_iter, 0).get::<String>().unwrap().unwrap()
|
if !first {
|
||||||
|
return_string += ",";
|
||||||
|
} else {
|
||||||
|
first = false;
|
||||||
|
}
|
||||||
|
return_string += list_store.get_value(&tree_iter, 0).get::<String>().unwrap().unwrap().as_str();
|
||||||
|
if !list_store.iter_next(&tree_iter) {
|
||||||
|
return return_string;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
pub fn print_text_messages_to_text_view(text_messages: &Messages, text_view: >k::TextView) {
|
pub fn print_text_messages_to_text_view(text_messages: &Messages, text_view: >k::TextView) {
|
||||||
let mut messages: String = String::from("");
|
let mut messages: String = String::from("");
|
||||||
|
|
|
@ -89,6 +89,9 @@ fn main() {
|
||||||
buttons_pause.hide();
|
buttons_pause.hide();
|
||||||
buttons_select.hide();
|
buttons_select.hide();
|
||||||
|
|
||||||
|
//// Check Buttons
|
||||||
|
let check_button_recursive: gtk::CheckButton = builder.get_object("check_button_recursive").unwrap();
|
||||||
|
|
||||||
//// Notebooks
|
//// Notebooks
|
||||||
let notebook_chooser_tool: gtk::Notebook = builder.get_object("notebook_chooser_tool").unwrap();
|
let notebook_chooser_tool: gtk::Notebook = builder.get_object("notebook_chooser_tool").unwrap();
|
||||||
let mut notebook_chooser_tool_children_names: Vec<String> = Vec::new();
|
let mut notebook_chooser_tool_children_names: Vec<String> = Vec::new();
|
||||||
|
@ -122,8 +125,38 @@ fn main() {
|
||||||
buttons_save.hide();
|
buttons_save.hide();
|
||||||
buttons_delete.hide();
|
buttons_delete.hide();
|
||||||
|
|
||||||
// Set treeview for
|
// Set Main ScrolledWindow Treeviews
|
||||||
{}
|
{
|
||||||
|
// Duplicate Files
|
||||||
|
{
|
||||||
|
let col_types: [glib::types::Type; 4] = [glib::types::Type::String, glib::types::Type::String, glib::types::Type::String, glib::types::Type::String];
|
||||||
|
let list_store: gtk::ListStore = gtk::ListStore::new(&col_types);
|
||||||
|
|
||||||
|
let mut tree_view: gtk::TreeView = TreeView::with_model(&list_store);
|
||||||
|
|
||||||
|
tree_view.get_selection().set_mode(SelectionMode::Multiple);
|
||||||
|
tree_view.get_selection().set_select_function(Some(Box::new(select_function_3column)));
|
||||||
|
|
||||||
|
create_tree_view_duplicates(&mut tree_view);
|
||||||
|
|
||||||
|
scrolled_window_duplicate_finder.add(&tree_view);
|
||||||
|
scrolled_window_duplicate_finder.show_all();
|
||||||
|
}
|
||||||
|
// Empty Folders
|
||||||
|
{
|
||||||
|
let col_types: [glib::types::Type; 4] = [glib::types::Type::String, glib::types::Type::String, glib::types::Type::String, glib::types::Type::String];
|
||||||
|
let list_store: gtk::ListStore = gtk::ListStore::new(&col_types);
|
||||||
|
|
||||||
|
let mut tree_view: gtk::TreeView = TreeView::with_model(&list_store);
|
||||||
|
|
||||||
|
tree_view.get_selection().set_mode(SelectionMode::Multiple);
|
||||||
|
|
||||||
|
create_tree_view_empty_folders(&mut tree_view);
|
||||||
|
|
||||||
|
scrolled_window_empty_folder_finder.add(&tree_view);
|
||||||
|
scrolled_window_empty_folder_finder.show_all();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Set Included Directory
|
// Set Included Directory
|
||||||
{
|
{
|
||||||
|
@ -155,6 +188,13 @@ fn main() {
|
||||||
|
|
||||||
create_tree_view_directories(&mut tree_view_excluded_directory);
|
create_tree_view_directories(&mut tree_view_excluded_directory);
|
||||||
|
|
||||||
|
let col_indices = [0, 1];
|
||||||
|
|
||||||
|
for i in ["/proc/", "/dev/"].iter() {
|
||||||
|
let values: [&dyn ToValue; 2] = [&i, &(MAIN_ROW_COLOR.to_string())];
|
||||||
|
list_store.set(&list_store.append(), &col_indices, &values);
|
||||||
|
}
|
||||||
|
|
||||||
scrolled_window_excluded_directories.add(&tree_view_excluded_directory);
|
scrolled_window_excluded_directories.add(&tree_view_excluded_directory);
|
||||||
scrolled_window_excluded_directories.show_all();
|
scrolled_window_excluded_directories.show_all();
|
||||||
}
|
}
|
||||||
|
@ -258,6 +298,7 @@ fn main() {
|
||||||
{
|
{
|
||||||
df.set_included_directory(get_string_from_list_store(&scrolled_window_included_directories));
|
df.set_included_directory(get_string_from_list_store(&scrolled_window_included_directories));
|
||||||
df.set_excluded_directory(get_string_from_list_store(&scrolled_window_excluded_directories));
|
df.set_excluded_directory(get_string_from_list_store(&scrolled_window_excluded_directories));
|
||||||
|
df.set_recursive_search(check_button_recursive.get_active());
|
||||||
df.set_excluded_items(entry_excluded_items.get_text().as_str().to_string());
|
df.set_excluded_items(entry_excluded_items.get_text().as_str().to_string());
|
||||||
df.set_allowed_extensions(entry_allowed_extensions.get_text().as_str().to_string());
|
df.set_allowed_extensions(entry_allowed_extensions.get_text().as_str().to_string());
|
||||||
df.set_min_file_size(match entry_duplicate_minimal_size.get_text().as_str().parse::<u64>() {
|
df.set_min_file_size(match entry_duplicate_minimal_size.get_text().as_str().parse::<u64>() {
|
||||||
|
@ -295,19 +336,18 @@ fn main() {
|
||||||
|
|
||||||
// Create GUI
|
// Create GUI
|
||||||
{
|
{
|
||||||
// Remove scrolled window from before - BUG - when doing it when view is scrolled, then scroll button disappears
|
let list_store = scrolled_window_duplicate_finder
|
||||||
for i in &scrolled_window_duplicate_finder.get_children() {
|
.get_children()
|
||||||
scrolled_window_duplicate_finder.remove(i);
|
.get(0)
|
||||||
}
|
.unwrap()
|
||||||
|
.clone()
|
||||||
let col_types: [glib::types::Type; 4] = [glib::types::Type::String, glib::types::Type::String, glib::types::Type::String, glib::types::Type::String];
|
.downcast::<gtk::TreeView>()
|
||||||
let list_store: gtk::ListStore = gtk::ListStore::new(&col_types);
|
.unwrap()
|
||||||
|
.get_model()
|
||||||
let mut tree_view_duplicate_finder: gtk::TreeView = TreeView::with_model(&list_store);
|
.unwrap()
|
||||||
|
.downcast::<gtk::ListStore>()
|
||||||
tree_view_duplicate_finder.get_selection().set_mode(SelectionMode::Multiple);
|
.unwrap();
|
||||||
|
list_store.clear();
|
||||||
create_tree_view_duplicates(&mut tree_view_duplicate_finder);
|
|
||||||
|
|
||||||
let col_indices = [0, 1, 2, 3];
|
let col_indices = [0, 1, 2, 3];
|
||||||
|
|
||||||
|
@ -367,12 +407,6 @@ fn main() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let tree_selection = tree_view_duplicate_finder.get_selection();
|
|
||||||
tree_selection.set_select_function(Some(Box::new(select_function_3column)));
|
|
||||||
|
|
||||||
scrolled_window_duplicate_finder.add(&tree_view_duplicate_finder);
|
|
||||||
scrolled_window_duplicate_finder.show_all();
|
|
||||||
|
|
||||||
print_text_messages_to_text_view(&text_messages, &text_view_errors);
|
print_text_messages_to_text_view(&text_messages, &text_view_errors);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -411,19 +445,18 @@ fn main() {
|
||||||
|
|
||||||
// Create GUI
|
// Create GUI
|
||||||
{
|
{
|
||||||
// Remove scrolled window from before - BUG - when doing it when view is scrolled, then scroll button disappears
|
let list_store = scrolled_window_empty_folder_finder
|
||||||
for i in &scrolled_window_empty_folder_finder.get_children() {
|
.get_children()
|
||||||
scrolled_window_empty_folder_finder.remove(i);
|
.get(0)
|
||||||
}
|
.unwrap()
|
||||||
|
.clone()
|
||||||
let col_types: [glib::types::Type; 4] = [glib::types::Type::String, glib::types::Type::String, glib::types::Type::String, glib::types::Type::String];
|
.downcast::<gtk::TreeView>()
|
||||||
let list_store: gtk::ListStore = gtk::ListStore::new(&col_types);
|
.unwrap()
|
||||||
|
.get_model()
|
||||||
let mut tree_view_empty_folder_finder: gtk::TreeView = TreeView::with_model(&list_store);
|
.unwrap()
|
||||||
|
.downcast::<gtk::ListStore>()
|
||||||
tree_view_empty_folder_finder.get_selection().set_mode(SelectionMode::Multiple);
|
.unwrap();
|
||||||
|
list_store.clear();
|
||||||
create_tree_view_empty_folders(&mut tree_view_empty_folder_finder);
|
|
||||||
|
|
||||||
let col_indices = [0, 1, 2, 3];
|
let col_indices = [0, 1, 2, 3];
|
||||||
|
|
||||||
|
@ -440,10 +473,6 @@ fn main() {
|
||||||
];
|
];
|
||||||
list_store.set(&list_store.append(), &col_indices, &values);
|
list_store.set(&list_store.append(), &col_indices, &values);
|
||||||
}
|
}
|
||||||
|
|
||||||
scrolled_window_empty_folder_finder.add(&tree_view_empty_folder_finder);
|
|
||||||
scrolled_window_empty_folder_finder.show_all();
|
|
||||||
|
|
||||||
print_text_messages_to_text_view(&text_messages, &text_view_errors);
|
print_text_messages_to_text_view(&text_messages, &text_view_errors);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue