Use directly TreeView instead ScrolledWindow->TreeView
This commit is contained in:
parent
30bab75a5d
commit
966cf3eadd
13 changed files with 284 additions and 255 deletions
|
@ -1229,7 +1229,7 @@ Author: Rafał Mikrut
|
||||||
<property name="tab_pos">left</property>
|
<property name="tab_pos">left</property>
|
||||||
<property name="scrollable">True</property>
|
<property name="scrollable">True</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox" id="notebook_main_duplicate_finder_label">
|
<object class="GtkBox">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="orientation">vertical</property>
|
<property name="orientation">vertical</property>
|
||||||
|
@ -1409,7 +1409,7 @@ Author: Rafał Mikrut
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkScrolledWindow" id="scrolled_window_main_empty_folder_finder">
|
<object class="GtkScrolledWindow" id="scrolled_window_empty_folder_finder">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="shadow_type">in</property>
|
<property name="shadow_type">in</property>
|
||||||
|
@ -1433,7 +1433,7 @@ Author: Rafał Mikrut
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox" id="notebook_big_main_file_finder">
|
<object class="GtkBox">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="orientation">vertical</property>
|
<property name="orientation">vertical</property>
|
||||||
|
@ -1508,7 +1508,7 @@ Author: Rafał Mikrut
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkScrolledWindow" id="scrolled_window_main_empty_files_finder">
|
<object class="GtkScrolledWindow" id="scrolled_window_empty_files_finder">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="shadow_type">in</property>
|
<property name="shadow_type">in</property>
|
||||||
|
@ -1532,7 +1532,7 @@ Author: Rafał Mikrut
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkScrolledWindow" id="scrolled_window_main_temporary_files_finder">
|
<object class="GtkScrolledWindow" id="scrolled_window_temporary_files_finder">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="shadow_type">in</property>
|
<property name="shadow_type">in</property>
|
||||||
|
@ -1556,7 +1556,7 @@ Author: Rafał Mikrut
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox" id="notebook_main_similar_images_finder_label">
|
<object class="GtkBox">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<child>
|
<child>
|
||||||
|
@ -1774,7 +1774,7 @@ Author: Rafał Mikrut
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox" id="notebook_main_same_music_finder">
|
<object class="GtkBox">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="orientation">vertical</property>
|
<property name="orientation">vertical</property>
|
||||||
|
@ -1933,7 +1933,7 @@ Author: Rafał Mikrut
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox" id="notebook_main_zeroed_files_finder">
|
<object class="GtkBox">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="orientation">vertical</property>
|
<property name="orientation">vertical</property>
|
||||||
|
|
|
@ -12,17 +12,17 @@ use std::fs::Metadata;
|
||||||
pub fn connect_button_delete(gui_data: &GuiData) {
|
pub fn connect_button_delete(gui_data: &GuiData) {
|
||||||
let gui_data = gui_data.clone();
|
let gui_data = gui_data.clone();
|
||||||
let buttons_delete = gui_data.buttons_delete.clone();
|
let buttons_delete = gui_data.buttons_delete.clone();
|
||||||
let scrolled_window_duplicate_finder = gui_data.scrolled_window_duplicate_finder.clone();
|
let tree_view_duplicate_finder = gui_data.main_notebook.tree_view_duplicate_finder.clone();
|
||||||
let notebook_main = gui_data.notebook_main.clone();
|
let notebook_main = gui_data.notebook_main.clone();
|
||||||
let window_main = gui_data.window_main.clone();
|
let window_main = gui_data.window_main.clone();
|
||||||
let scrolled_window_main_empty_folder_finder = gui_data.scrolled_window_main_empty_folder_finder.clone();
|
let tree_view_empty_folder_finder = gui_data.main_notebook.tree_view_empty_folder_finder.clone();
|
||||||
let scrolled_window_big_files_finder = gui_data.scrolled_window_big_files_finder.clone();
|
let tree_view_big_files_finder = gui_data.main_notebook.tree_view_big_files_finder.clone();
|
||||||
let scrolled_window_main_empty_files_finder = gui_data.scrolled_window_main_empty_files_finder.clone();
|
let tree_view_empty_files_finder = gui_data.main_notebook.tree_view_empty_files_finder.clone();
|
||||||
let scrolled_window_main_temporary_files_finder = gui_data.scrolled_window_main_temporary_files_finder.clone();
|
let tree_view_temporary_files_finder = gui_data.main_notebook.tree_view_temporary_files_finder.clone();
|
||||||
let scrolled_window_similar_images_finder = gui_data.scrolled_window_similar_images_finder.clone();
|
let tree_view_similar_images_finder = gui_data.main_notebook.tree_view_similar_images_finder.clone();
|
||||||
let scrolled_window_zeroed_files_finder = gui_data.scrolled_window_zeroed_files_finder.clone();
|
let tree_view_zeroed_files_finder = gui_data.main_notebook.tree_view_zeroed_files_finder.clone();
|
||||||
let scrolled_window_same_music_finder = gui_data.scrolled_window_same_music_finder.clone();
|
let tree_view_same_music_finder = gui_data.main_notebook.tree_view_same_music_finder.clone();
|
||||||
let scrolled_window_invalid_symlinks = gui_data.scrolled_window_invalid_symlinks.clone();
|
let tree_view_invalid_symlinks = gui_data.main_notebook.tree_view_invalid_symlinks.clone();
|
||||||
let check_button_settings_confirm_deletion = gui_data.check_button_settings_confirm_deletion.clone();
|
let check_button_settings_confirm_deletion = gui_data.check_button_settings_confirm_deletion.clone();
|
||||||
let image_preview_similar_images = gui_data.image_preview_similar_images.clone();
|
let image_preview_similar_images = gui_data.image_preview_similar_images.clone();
|
||||||
|
|
||||||
|
@ -55,23 +55,23 @@ pub fn connect_button_delete(gui_data: &GuiData) {
|
||||||
|
|
||||||
match to_notebook_main_enum(notebook_main.get_current_page().unwrap()) {
|
match to_notebook_main_enum(notebook_main.get_current_page().unwrap()) {
|
||||||
NotebookMainEnum::Duplicate => {
|
NotebookMainEnum::Duplicate => {
|
||||||
tree_remove(&scrolled_window_duplicate_finder.clone(), ColumnsDuplicates::Name as i32, ColumnsDuplicates::Path as i32, ColumnsDuplicates::Color as i32, &gui_data);
|
tree_remove(&tree_view_duplicate_finder.clone(), ColumnsDuplicates::Name as i32, ColumnsDuplicates::Path as i32, ColumnsDuplicates::Color as i32, &gui_data);
|
||||||
}
|
}
|
||||||
NotebookMainEnum::EmptyDirectories => {
|
NotebookMainEnum::EmptyDirectories => {
|
||||||
empty_folder_remover(&scrolled_window_main_empty_folder_finder.clone(), ColumnsEmptyFolders::Name as i32, ColumnsEmptyFolders::Path as i32, &gui_data);
|
empty_folder_remover(&tree_view_empty_folder_finder.clone(), ColumnsEmptyFolders::Name as i32, ColumnsEmptyFolders::Path as i32, &gui_data);
|
||||||
}
|
}
|
||||||
NotebookMainEnum::EmptyFiles => {
|
NotebookMainEnum::EmptyFiles => {
|
||||||
basic_remove(&scrolled_window_main_empty_files_finder.clone(), ColumnsEmptyFiles::Name as i32, ColumnsEmptyFiles::Path as i32, &gui_data);
|
basic_remove(&tree_view_empty_files_finder.clone(), ColumnsEmptyFiles::Name as i32, ColumnsEmptyFiles::Path as i32, &gui_data);
|
||||||
}
|
}
|
||||||
NotebookMainEnum::Temporary => {
|
NotebookMainEnum::Temporary => {
|
||||||
basic_remove(&scrolled_window_main_temporary_files_finder.clone(), ColumnsTemporaryFiles::Name as i32, ColumnsTemporaryFiles::Path as i32, &gui_data);
|
basic_remove(&tree_view_temporary_files_finder.clone(), ColumnsTemporaryFiles::Name as i32, ColumnsTemporaryFiles::Path as i32, &gui_data);
|
||||||
}
|
}
|
||||||
NotebookMainEnum::BigFiles => {
|
NotebookMainEnum::BigFiles => {
|
||||||
basic_remove(&scrolled_window_big_files_finder.clone(), ColumnsBigFiles::Name as i32, ColumnsBigFiles::Path as i32, &gui_data);
|
basic_remove(&tree_view_big_files_finder.clone(), ColumnsBigFiles::Name as i32, ColumnsBigFiles::Path as i32, &gui_data);
|
||||||
}
|
}
|
||||||
NotebookMainEnum::SimilarImages => {
|
NotebookMainEnum::SimilarImages => {
|
||||||
tree_remove(
|
tree_remove(
|
||||||
&scrolled_window_similar_images_finder.clone(),
|
&tree_view_similar_images_finder.clone(),
|
||||||
ColumnsSimilarImages::Name as i32,
|
ColumnsSimilarImages::Name as i32,
|
||||||
ColumnsSimilarImages::Path as i32,
|
ColumnsSimilarImages::Path as i32,
|
||||||
ColumnsSimilarImages::Color as i32,
|
ColumnsSimilarImages::Color as i32,
|
||||||
|
@ -80,29 +80,28 @@ pub fn connect_button_delete(gui_data: &GuiData) {
|
||||||
image_preview_similar_images.hide();
|
image_preview_similar_images.hide();
|
||||||
}
|
}
|
||||||
NotebookMainEnum::Zeroed => {
|
NotebookMainEnum::Zeroed => {
|
||||||
basic_remove(&scrolled_window_zeroed_files_finder.clone(), ColumnsZeroedFiles::Name as i32, ColumnsZeroedFiles::Path as i32, &gui_data);
|
basic_remove(&tree_view_zeroed_files_finder.clone(), ColumnsZeroedFiles::Name as i32, ColumnsZeroedFiles::Path as i32, &gui_data);
|
||||||
}
|
}
|
||||||
NotebookMainEnum::SameMusic => {
|
NotebookMainEnum::SameMusic => {
|
||||||
tree_remove(&scrolled_window_same_music_finder.clone(), ColumnsSameMusic::Name as i32, ColumnsSameMusic::Path as i32, ColumnsSameMusic::Color as i32, &gui_data);
|
tree_remove(&tree_view_same_music_finder.clone(), ColumnsSameMusic::Name as i32, ColumnsSameMusic::Path as i32, ColumnsSameMusic::Color as i32, &gui_data);
|
||||||
}
|
}
|
||||||
NotebookMainEnum::Symlinks => {
|
NotebookMainEnum::Symlinks => {
|
||||||
basic_remove(&scrolled_window_invalid_symlinks.clone(), ColumnsInvalidSymlinks::Name as i32, ColumnsInvalidSymlinks::Path as i32, &gui_data);
|
basic_remove(&tree_view_invalid_symlinks.clone(), ColumnsInvalidSymlinks::Name as i32, ColumnsInvalidSymlinks::Path as i32, &gui_data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn empty_folder_remover(scrolled_window: >k::ScrolledWindow, column_file_name: i32, column_path: i32, gui_data: &GuiData) {
|
pub fn empty_folder_remover(tree_view: >k::TreeView, column_file_name: i32, column_path: i32, gui_data: &GuiData) {
|
||||||
let text_view_errors = gui_data.text_view_errors.clone();
|
let text_view_errors = gui_data.text_view_errors.clone();
|
||||||
|
|
||||||
let tree_view = get_tree_view(&scrolled_window);
|
|
||||||
let selection = tree_view.get_selection();
|
let selection = tree_view.get_selection();
|
||||||
|
|
||||||
let (selection_rows, tree_model) = selection.get_selected_rows();
|
let (selection_rows, tree_model) = selection.get_selected_rows();
|
||||||
if selection_rows.is_empty() {
|
if selection_rows.is_empty() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let list_store = get_list_store(&scrolled_window);
|
let list_store = get_list_store(&tree_view);
|
||||||
|
|
||||||
let mut messages: String = "".to_string();
|
let mut messages: String = "".to_string();
|
||||||
|
|
||||||
|
@ -176,17 +175,16 @@ pub fn empty_folder_remover(scrolled_window: >k::ScrolledWindow, column_file_n
|
||||||
selection.unselect_all();
|
selection.unselect_all();
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn basic_remove(scrolled_window: >k::ScrolledWindow, column_file_name: i32, column_path: i32, gui_data: &GuiData) {
|
pub fn basic_remove(tree_view: >k::TreeView, column_file_name: i32, column_path: i32, gui_data: &GuiData) {
|
||||||
let text_view_errors = gui_data.text_view_errors.clone();
|
let text_view_errors = gui_data.text_view_errors.clone();
|
||||||
|
|
||||||
let tree_view = get_tree_view(&scrolled_window);
|
|
||||||
let selection = tree_view.get_selection();
|
let selection = tree_view.get_selection();
|
||||||
|
|
||||||
let (selection_rows, tree_model) = selection.get_selected_rows();
|
let (selection_rows, tree_model) = selection.get_selected_rows();
|
||||||
if selection_rows.is_empty() {
|
if selection_rows.is_empty() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let list_store = get_list_store(&scrolled_window);
|
let list_store = get_list_store(&tree_view);
|
||||||
|
|
||||||
let mut messages: String = "".to_string();
|
let mut messages: String = "".to_string();
|
||||||
|
|
||||||
|
@ -208,17 +206,16 @@ pub fn basic_remove(scrolled_window: >k::ScrolledWindow, column_file_name: i32
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove all occurrences - remove every element which have same path and name as even non selected ones
|
// Remove all occurrences - remove every element which have same path and name as even non selected ones
|
||||||
pub fn tree_remove(scrolled_window: >k::ScrolledWindow, column_file_name: i32, column_path: i32, column_color: i32, gui_data: &GuiData) {
|
pub fn tree_remove(tree_view: >k::TreeView, column_file_name: i32, column_path: i32, column_color: i32, gui_data: &GuiData) {
|
||||||
let text_view_errors = gui_data.text_view_errors.clone();
|
let text_view_errors = gui_data.text_view_errors.clone();
|
||||||
|
|
||||||
let tree_view = get_tree_view(&scrolled_window);
|
|
||||||
let selection = tree_view.get_selection();
|
let selection = tree_view.get_selection();
|
||||||
|
|
||||||
let (selection_rows, tree_model) = selection.get_selected_rows();
|
let (selection_rows, tree_model) = selection.get_selected_rows();
|
||||||
if selection_rows.is_empty() {
|
if selection_rows.is_empty() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let list_store = get_list_store(&scrolled_window);
|
let list_store = get_list_store(&tree_view);
|
||||||
|
|
||||||
let mut messages: String = "".to_string();
|
let mut messages: String = "".to_string();
|
||||||
|
|
||||||
|
|
|
@ -36,8 +36,8 @@ pub fn connect_button_search(
|
||||||
) {
|
) {
|
||||||
let entry_info = gui_data.entry_info.clone();
|
let entry_info = gui_data.entry_info.clone();
|
||||||
let notebook_main = gui_data.notebook_main.clone();
|
let notebook_main = gui_data.notebook_main.clone();
|
||||||
let scrolled_window_included_directories = gui_data.scrolled_window_included_directories.clone();
|
let tree_view_included_directories = gui_data.tree_view_included_directories.clone();
|
||||||
let scrolled_window_excluded_directories = gui_data.scrolled_window_excluded_directories.clone();
|
let tree_view_excluded_directories = gui_data.tree_view_excluded_directories.clone();
|
||||||
let buttons_search_clone = gui_data.buttons_search.clone();
|
let buttons_search_clone = gui_data.buttons_search.clone();
|
||||||
let buttons_array = gui_data.buttons_array.clone();
|
let buttons_array = gui_data.buttons_array.clone();
|
||||||
let check_button_recursive = gui_data.check_button_recursive.clone();
|
let check_button_recursive = gui_data.check_button_recursive.clone();
|
||||||
|
@ -65,15 +65,15 @@ pub fn connect_button_search(
|
||||||
let check_button_music_album_artist: gtk::CheckButton = gui_data.check_button_music_album_artist.clone();
|
let check_button_music_album_artist: gtk::CheckButton = gui_data.check_button_music_album_artist.clone();
|
||||||
let check_button_music_year: gtk::CheckButton = gui_data.check_button_music_year.clone();
|
let check_button_music_year: gtk::CheckButton = gui_data.check_button_music_year.clone();
|
||||||
let shared_buttons = gui_data.shared_buttons.clone();
|
let shared_buttons = gui_data.shared_buttons.clone();
|
||||||
let scrolled_window_main_empty_folder_finder = gui_data.scrolled_window_main_empty_folder_finder.clone();
|
let tree_view_empty_folder_finder = gui_data.main_notebook.tree_view_empty_folder_finder.clone();
|
||||||
let scrolled_window_main_empty_files_finder = gui_data.scrolled_window_main_empty_files_finder.clone();
|
let tree_view_empty_files_finder = gui_data.main_notebook.tree_view_empty_files_finder.clone();
|
||||||
let scrolled_window_big_files_finder = gui_data.scrolled_window_big_files_finder.clone();
|
let tree_view_big_files_finder = gui_data.main_notebook.tree_view_big_files_finder.clone();
|
||||||
let scrolled_window_duplicate_finder = gui_data.scrolled_window_duplicate_finder.clone();
|
let tree_view_duplicate_finder = gui_data.main_notebook.tree_view_duplicate_finder.clone();
|
||||||
let scrolled_window_main_temporary_files_finder = gui_data.scrolled_window_main_temporary_files_finder.clone();
|
let tree_view_temporary_files_finder = gui_data.main_notebook.tree_view_temporary_files_finder.clone();
|
||||||
let scrolled_window_same_music_finder = gui_data.scrolled_window_same_music_finder.clone();
|
let tree_view_same_music_finder = gui_data.main_notebook.tree_view_same_music_finder.clone();
|
||||||
let scrolled_window_similar_images_finder = gui_data.scrolled_window_similar_images_finder.clone();
|
let tree_view_similar_images_finder = gui_data.main_notebook.tree_view_similar_images_finder.clone();
|
||||||
let scrolled_window_zeroed_files_finder = gui_data.scrolled_window_zeroed_files_finder.clone();
|
let tree_view_zeroed_files_finder = gui_data.main_notebook.tree_view_zeroed_files_finder.clone();
|
||||||
let scrolled_window_invalid_symlinks = gui_data.scrolled_window_invalid_symlinks.clone();
|
let tree_view_invalid_symlinks = gui_data.main_notebook.tree_view_invalid_symlinks.clone();
|
||||||
let text_view_errors = gui_data.text_view_errors.clone();
|
let text_view_errors = gui_data.text_view_errors.clone();
|
||||||
let dialog_progress = gui_data.dialog_progress.clone();
|
let dialog_progress = gui_data.dialog_progress.clone();
|
||||||
let label_stage = gui_data.label_stage.clone();
|
let label_stage = gui_data.label_stage.clone();
|
||||||
|
@ -83,8 +83,8 @@ pub fn connect_button_search(
|
||||||
let image_preview_similar_images = gui_data.image_preview_similar_images.clone();
|
let image_preview_similar_images = gui_data.image_preview_similar_images.clone();
|
||||||
|
|
||||||
buttons_search_clone.connect_clicked(move |_| {
|
buttons_search_clone.connect_clicked(move |_| {
|
||||||
let included_directories = get_string_from_list_store(&scrolled_window_included_directories);
|
let included_directories = get_string_from_list_store(&tree_view_included_directories);
|
||||||
let excluded_directories = get_string_from_list_store(&scrolled_window_excluded_directories);
|
let excluded_directories = get_string_from_list_store(&tree_view_excluded_directories);
|
||||||
let recursive_search = check_button_recursive.get_active();
|
let recursive_search = check_button_recursive.get_active();
|
||||||
let excluded_items = entry_excluded_items.get_text().as_str().to_string();
|
let excluded_items = entry_excluded_items.get_text().as_str().to_string();
|
||||||
let allowed_extensions = entry_allowed_extensions.get_text().as_str().to_string();
|
let allowed_extensions = entry_allowed_extensions.get_text().as_str().to_string();
|
||||||
|
@ -113,7 +113,7 @@ pub fn connect_button_search(
|
||||||
grid_progress_stages.show_all();
|
grid_progress_stages.show_all();
|
||||||
dialog_progress.resize(1, 1);
|
dialog_progress.resize(1, 1);
|
||||||
|
|
||||||
get_list_store(&scrolled_window_duplicate_finder).clear();
|
get_list_store(&tree_view_duplicate_finder).clear();
|
||||||
|
|
||||||
let check_method;
|
let check_method;
|
||||||
if radio_button_duplicates_name.get_active() {
|
if radio_button_duplicates_name.get_active() {
|
||||||
|
@ -152,7 +152,7 @@ pub fn connect_button_search(
|
||||||
grid_progress_stages.hide();
|
grid_progress_stages.hide();
|
||||||
dialog_progress.resize(1, 1);
|
dialog_progress.resize(1, 1);
|
||||||
|
|
||||||
get_list_store(&scrolled_window_main_empty_files_finder).clear();
|
get_list_store(&tree_view_empty_files_finder).clear();
|
||||||
|
|
||||||
let glib_stop_sender = glib_stop_sender.clone();
|
let glib_stop_sender = glib_stop_sender.clone();
|
||||||
let stop_receiver = stop_receiver.clone();
|
let stop_receiver = stop_receiver.clone();
|
||||||
|
@ -176,7 +176,7 @@ pub fn connect_button_search(
|
||||||
grid_progress_stages.hide();
|
grid_progress_stages.hide();
|
||||||
dialog_progress.resize(1, 1);
|
dialog_progress.resize(1, 1);
|
||||||
|
|
||||||
get_list_store(&scrolled_window_main_empty_folder_finder).clear();
|
get_list_store(&tree_view_empty_folder_finder).clear();
|
||||||
|
|
||||||
let glib_stop_sender = glib_stop_sender.clone();
|
let glib_stop_sender = glib_stop_sender.clone();
|
||||||
let stop_receiver = stop_receiver.clone();
|
let stop_receiver = stop_receiver.clone();
|
||||||
|
@ -197,7 +197,7 @@ pub fn connect_button_search(
|
||||||
grid_progress_stages.hide();
|
grid_progress_stages.hide();
|
||||||
dialog_progress.resize(1, 1);
|
dialog_progress.resize(1, 1);
|
||||||
|
|
||||||
get_list_store(&scrolled_window_big_files_finder).clear();
|
get_list_store(&tree_view_big_files_finder).clear();
|
||||||
|
|
||||||
let numbers_of_files_to_check = entry_big_files_number.get_text().as_str().parse::<usize>().unwrap_or(50);
|
let numbers_of_files_to_check = entry_big_files_number.get_text().as_str().parse::<usize>().unwrap_or(50);
|
||||||
|
|
||||||
|
@ -222,7 +222,7 @@ pub fn connect_button_search(
|
||||||
grid_progress_stages.hide();
|
grid_progress_stages.hide();
|
||||||
dialog_progress.resize(1, 1);
|
dialog_progress.resize(1, 1);
|
||||||
|
|
||||||
get_list_store(&scrolled_window_main_temporary_files_finder).clear();
|
get_list_store(&tree_view_temporary_files_finder).clear();
|
||||||
|
|
||||||
let glib_stop_sender = glib_stop_sender.clone();
|
let glib_stop_sender = glib_stop_sender.clone();
|
||||||
let stop_receiver = stop_receiver.clone();
|
let stop_receiver = stop_receiver.clone();
|
||||||
|
@ -247,7 +247,7 @@ pub fn connect_button_search(
|
||||||
grid_progress_stages.show_all();
|
grid_progress_stages.show_all();
|
||||||
dialog_progress.resize(1, 1);
|
dialog_progress.resize(1, 1);
|
||||||
|
|
||||||
get_list_store(&scrolled_window_similar_images_finder).clear();
|
get_list_store(&tree_view_similar_images_finder).clear();
|
||||||
|
|
||||||
let glib_stop_sender = glib_stop_sender.clone();
|
let glib_stop_sender = glib_stop_sender.clone();
|
||||||
let stop_receiver = stop_receiver.clone();
|
let stop_receiver = stop_receiver.clone();
|
||||||
|
@ -291,7 +291,7 @@ pub fn connect_button_search(
|
||||||
grid_progress_stages.show_all();
|
grid_progress_stages.show_all();
|
||||||
dialog_progress.resize(1, 1);
|
dialog_progress.resize(1, 1);
|
||||||
|
|
||||||
get_list_store(&scrolled_window_zeroed_files_finder).clear();
|
get_list_store(&tree_view_zeroed_files_finder).clear();
|
||||||
|
|
||||||
let glib_stop_sender = glib_stop_sender.clone();
|
let glib_stop_sender = glib_stop_sender.clone();
|
||||||
let stop_receiver = stop_receiver.clone();
|
let stop_receiver = stop_receiver.clone();
|
||||||
|
@ -315,7 +315,7 @@ pub fn connect_button_search(
|
||||||
grid_progress_stages.show_all();
|
grid_progress_stages.show_all();
|
||||||
dialog_progress.resize(1, 1);
|
dialog_progress.resize(1, 1);
|
||||||
|
|
||||||
get_list_store(&scrolled_window_same_music_finder).clear();
|
get_list_store(&tree_view_same_music_finder).clear();
|
||||||
|
|
||||||
let minimal_file_size = entry_same_music_minimal_size.get_text().as_str().parse::<u64>().unwrap_or(1024);
|
let minimal_file_size = entry_same_music_minimal_size.get_text().as_str().parse::<u64>().unwrap_or(1024);
|
||||||
|
|
||||||
|
@ -367,7 +367,7 @@ pub fn connect_button_search(
|
||||||
grid_progress_stages.hide();
|
grid_progress_stages.hide();
|
||||||
dialog_progress.resize(1, 1);
|
dialog_progress.resize(1, 1);
|
||||||
|
|
||||||
get_list_store(&scrolled_window_invalid_symlinks).clear();
|
get_list_store(&tree_view_invalid_symlinks).clear();
|
||||||
|
|
||||||
let glib_stop_sender = glib_stop_sender.clone();
|
let glib_stop_sender = glib_stop_sender.clone();
|
||||||
let stop_receiver = stop_receiver.clone();
|
let stop_receiver = stop_receiver.clone();
|
||||||
|
|
|
@ -12,22 +12,22 @@ pub fn connect_button_symlink(gui_data: &GuiData) {
|
||||||
let buttons_symlink = gui_data.buttons_symlink.clone();
|
let buttons_symlink = gui_data.buttons_symlink.clone();
|
||||||
let notebook_main = gui_data.notebook_main.clone();
|
let notebook_main = gui_data.notebook_main.clone();
|
||||||
|
|
||||||
let scrolled_window_duplicate_finder = gui_data.scrolled_window_duplicate_finder.clone();
|
let tree_view_duplicate_finder = gui_data.main_notebook.tree_view_duplicate_finder.clone();
|
||||||
let scrolled_window_similar_images_finder = gui_data.scrolled_window_similar_images_finder.clone();
|
let tree_view_similar_images_finder = gui_data.main_notebook.tree_view_similar_images_finder.clone();
|
||||||
let scrolled_window_same_music_finder = gui_data.scrolled_window_same_music_finder.clone();
|
let tree_view_same_music_finder = gui_data.main_notebook.tree_view_same_music_finder.clone();
|
||||||
|
|
||||||
let image_preview_similar_images = gui_data.image_preview_similar_images.clone();
|
let image_preview_similar_images = gui_data.image_preview_similar_images.clone();
|
||||||
|
|
||||||
buttons_symlink.connect_clicked(move |_| match to_notebook_main_enum(notebook_main.get_current_page().unwrap()) {
|
buttons_symlink.connect_clicked(move |_| match to_notebook_main_enum(notebook_main.get_current_page().unwrap()) {
|
||||||
NotebookMainEnum::Duplicate => {
|
NotebookMainEnum::Duplicate => {
|
||||||
symlink(scrolled_window_duplicate_finder.clone(), ColumnsDuplicates::Name as i32, ColumnsDuplicates::Path as i32, ColumnsDuplicates::Color as i32, &gui_data);
|
symlink(tree_view_duplicate_finder.clone(), ColumnsDuplicates::Name as i32, ColumnsDuplicates::Path as i32, ColumnsDuplicates::Color as i32, &gui_data);
|
||||||
}
|
}
|
||||||
NotebookMainEnum::SameMusic => {
|
NotebookMainEnum::SameMusic => {
|
||||||
symlink(scrolled_window_same_music_finder.clone(), ColumnsSameMusic::Name as i32, ColumnsSameMusic::Path as i32, ColumnsSameMusic::Color as i32, &gui_data);
|
symlink(tree_view_same_music_finder.clone(), ColumnsSameMusic::Name as i32, ColumnsSameMusic::Path as i32, ColumnsSameMusic::Color as i32, &gui_data);
|
||||||
}
|
}
|
||||||
NotebookMainEnum::SimilarImages => {
|
NotebookMainEnum::SimilarImages => {
|
||||||
symlink(
|
symlink(
|
||||||
scrolled_window_similar_images_finder.clone(),
|
tree_view_similar_images_finder.clone(),
|
||||||
ColumnsSimilarImages::Name as i32,
|
ColumnsSimilarImages::Name as i32,
|
||||||
ColumnsSimilarImages::Path as i32,
|
ColumnsSimilarImages::Path as i32,
|
||||||
ColumnsSimilarImages::Color as i32,
|
ColumnsSimilarImages::Color as i32,
|
||||||
|
@ -38,12 +38,11 @@ pub fn connect_button_symlink(gui_data: &GuiData) {
|
||||||
e => panic!("Not existent {:?}", e),
|
e => panic!("Not existent {:?}", e),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
fn symlink(scrolled_window: gtk::ScrolledWindow, column_file_name: i32, column_path: i32, column_color: i32, gui_data: &GuiData) {
|
fn symlink(tree_view: gtk::TreeView, column_file_name: i32, column_path: i32, column_color: i32, gui_data: &GuiData) {
|
||||||
let text_view_errors = gui_data.text_view_errors.clone();
|
let text_view_errors = gui_data.text_view_errors.clone();
|
||||||
reset_text_view(&text_view_errors);
|
reset_text_view(&text_view_errors);
|
||||||
|
|
||||||
let tree_view = get_tree_view(&scrolled_window);
|
let list_store = get_list_store(&tree_view);
|
||||||
let list_store = get_list_store(&scrolled_window);
|
|
||||||
let selection = tree_view.get_selection();
|
let selection = tree_view.get_selection();
|
||||||
|
|
||||||
let (selection_rows, tree_model) = selection.get_selected_rows();
|
let (selection_rows, tree_model) = selection.get_selected_rows();
|
||||||
|
|
|
@ -14,26 +14,26 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver<
|
||||||
let buttons_search = gui_data.buttons_search.clone();
|
let buttons_search = gui_data.buttons_search.clone();
|
||||||
let notebook_main = gui_data.notebook_main.clone();
|
let notebook_main = gui_data.notebook_main.clone();
|
||||||
let entry_info = gui_data.entry_info.clone();
|
let entry_info = gui_data.entry_info.clone();
|
||||||
let scrolled_window_main_empty_folder_finder = gui_data.scrolled_window_main_empty_folder_finder.clone();
|
let tree_view_empty_folder_finder = gui_data.main_notebook.tree_view_empty_folder_finder.clone();
|
||||||
let scrolled_window_main_empty_files_finder = gui_data.scrolled_window_main_empty_files_finder.clone();
|
let tree_view_empty_files_finder = gui_data.main_notebook.tree_view_empty_files_finder.clone();
|
||||||
let scrolled_window_duplicate_finder = gui_data.scrolled_window_duplicate_finder.clone();
|
let tree_view_duplicate_finder = gui_data.main_notebook.tree_view_duplicate_finder.clone();
|
||||||
let scrolled_window_similar_images_finder = gui_data.scrolled_window_similar_images_finder.clone();
|
let tree_view_similar_images_finder = gui_data.main_notebook.tree_view_similar_images_finder.clone();
|
||||||
let buttons_array = gui_data.buttons_array.clone();
|
let buttons_array = gui_data.buttons_array.clone();
|
||||||
let text_view_errors = gui_data.text_view_errors.clone();
|
let text_view_errors = gui_data.text_view_errors.clone();
|
||||||
let shared_duplication_state = gui_data.shared_duplication_state.clone();
|
let shared_duplication_state = gui_data.shared_duplication_state.clone();
|
||||||
let shared_buttons = gui_data.shared_buttons.clone();
|
let shared_buttons = gui_data.shared_buttons.clone();
|
||||||
let scrolled_window_zeroed_files_finder = gui_data.scrolled_window_zeroed_files_finder.clone();
|
let tree_view_zeroed_files_finder = gui_data.main_notebook.tree_view_zeroed_files_finder.clone();
|
||||||
let shared_empty_folders_state = gui_data.shared_empty_folders_state.clone();
|
let shared_empty_folders_state = gui_data.shared_empty_folders_state.clone();
|
||||||
let shared_empty_files_state = gui_data.shared_empty_files_state.clone();
|
let shared_empty_files_state = gui_data.shared_empty_files_state.clone();
|
||||||
let scrolled_window_big_files_finder = gui_data.scrolled_window_big_files_finder.clone();
|
let tree_view_big_files_finder = gui_data.main_notebook.tree_view_big_files_finder.clone();
|
||||||
let scrolled_window_invalid_symlinks = gui_data.scrolled_window_invalid_symlinks.clone();
|
let tree_view_invalid_symlinks = gui_data.main_notebook.tree_view_invalid_symlinks.clone();
|
||||||
let shared_big_files_state = gui_data.shared_big_files_state.clone();
|
let shared_big_files_state = gui_data.shared_big_files_state.clone();
|
||||||
let shared_same_invalid_symlinks = gui_data.shared_same_invalid_symlinks.clone();
|
let shared_same_invalid_symlinks = gui_data.shared_same_invalid_symlinks.clone();
|
||||||
let scrolled_window_main_temporary_files_finder = gui_data.scrolled_window_main_temporary_files_finder.clone();
|
let tree_view_temporary_files_finder = gui_data.main_notebook.tree_view_temporary_files_finder.clone();
|
||||||
let shared_temporary_files_state = gui_data.shared_temporary_files_state.clone();
|
let shared_temporary_files_state = gui_data.shared_temporary_files_state.clone();
|
||||||
let shared_similar_images_state = gui_data.shared_similar_images_state.clone();
|
let shared_similar_images_state = gui_data.shared_similar_images_state.clone();
|
||||||
let shared_zeroed_files_state = gui_data.shared_zeroed_files_state.clone();
|
let shared_zeroed_files_state = gui_data.shared_zeroed_files_state.clone();
|
||||||
let scrolled_window_same_music_finder = gui_data.scrolled_window_same_music_finder.clone();
|
let tree_view_same_music_finder = gui_data.main_notebook.tree_view_same_music_finder.clone();
|
||||||
let shared_same_music_state = gui_data.shared_same_music_state.clone();
|
let shared_same_music_state = gui_data.shared_same_music_state.clone();
|
||||||
let buttons_names = gui_data.buttons_names.clone();
|
let buttons_names = gui_data.buttons_names.clone();
|
||||||
let dialog_progress = gui_data.dialog_progress.clone();
|
let dialog_progress = gui_data.dialog_progress.clone();
|
||||||
|
@ -86,7 +86,7 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver<
|
||||||
|
|
||||||
// Create GUI
|
// Create GUI
|
||||||
{
|
{
|
||||||
let list_store = get_list_store(&scrolled_window_duplicate_finder);
|
let list_store = get_list_store(&tree_view_duplicate_finder);
|
||||||
|
|
||||||
let col_indices = [0, 1, 2, 3, 4, 5];
|
let col_indices = [0, 1, 2, 3, 4, 5];
|
||||||
|
|
||||||
|
@ -214,7 +214,7 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver<
|
||||||
|
|
||||||
// Create GUI
|
// Create GUI
|
||||||
{
|
{
|
||||||
let list_store = get_list_store(&scrolled_window_main_empty_folder_finder);
|
let list_store = get_list_store(&tree_view_empty_folder_finder);
|
||||||
|
|
||||||
let col_indices = [0, 1, 2];
|
let col_indices = [0, 1, 2];
|
||||||
|
|
||||||
|
@ -258,7 +258,7 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver<
|
||||||
|
|
||||||
// Create GUI
|
// Create GUI
|
||||||
{
|
{
|
||||||
let list_store = get_list_store(&scrolled_window_main_empty_files_finder);
|
let list_store = get_list_store(&tree_view_empty_files_finder);
|
||||||
|
|
||||||
let col_indices = [0, 1, 2];
|
let col_indices = [0, 1, 2];
|
||||||
|
|
||||||
|
@ -302,7 +302,7 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver<
|
||||||
|
|
||||||
// Create GUI
|
// Create GUI
|
||||||
{
|
{
|
||||||
let list_store = get_list_store(&scrolled_window_big_files_finder);
|
let list_store = get_list_store(&tree_view_big_files_finder);
|
||||||
|
|
||||||
let col_indices = [0, 1, 2, 3];
|
let col_indices = [0, 1, 2, 3];
|
||||||
|
|
||||||
|
@ -353,7 +353,7 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver<
|
||||||
|
|
||||||
// Create GUI
|
// Create GUI
|
||||||
{
|
{
|
||||||
let list_store = get_list_store(&scrolled_window_main_temporary_files_finder);
|
let list_store = get_list_store(&tree_view_temporary_files_finder);
|
||||||
|
|
||||||
let col_indices = [0, 1, 2];
|
let col_indices = [0, 1, 2];
|
||||||
|
|
||||||
|
@ -397,7 +397,7 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver<
|
||||||
|
|
||||||
// Create GUI
|
// Create GUI
|
||||||
{
|
{
|
||||||
let list_store = get_list_store(&scrolled_window_similar_images_finder);
|
let list_store = get_list_store(&tree_view_similar_images_finder);
|
||||||
|
|
||||||
let col_indices = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
|
let col_indices = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
|
||||||
|
|
||||||
|
@ -473,7 +473,7 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver<
|
||||||
|
|
||||||
// Create GUI
|
// Create GUI
|
||||||
{
|
{
|
||||||
let list_store = get_list_store(&scrolled_window_zeroed_files_finder);
|
let list_store = get_list_store(&tree_view_zeroed_files_finder);
|
||||||
|
|
||||||
let col_indices = [0, 1, 2, 3, 4];
|
let col_indices = [0, 1, 2, 3, 4];
|
||||||
|
|
||||||
|
@ -523,7 +523,7 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver<
|
||||||
|
|
||||||
// Create GUI
|
// Create GUI
|
||||||
{
|
{
|
||||||
let list_store = get_list_store(&scrolled_window_same_music_finder);
|
let list_store = get_list_store(&tree_view_same_music_finder);
|
||||||
|
|
||||||
let col_indices = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
|
let col_indices = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
|
||||||
|
|
||||||
|
@ -626,7 +626,7 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver<
|
||||||
|
|
||||||
// Create GUI
|
// Create GUI
|
||||||
{
|
{
|
||||||
let list_store = get_list_store(&scrolled_window_invalid_symlinks);
|
let list_store = get_list_store(&tree_view_invalid_symlinks);
|
||||||
|
|
||||||
let col_indices = [0, 1, 2, 3, 4];
|
let col_indices = [0, 1, 2, 3, 4];
|
||||||
|
|
||||||
|
|
|
@ -9,22 +9,19 @@ use gtk::TreeIter;
|
||||||
// File length variable allows users to choose duplicates which have shorter file name
|
// File length variable allows users to choose duplicates which have shorter file name
|
||||||
// e.g. 'tar.gz' will be selected instead 'tar.gz (copy)' etc.
|
// e.g. 'tar.gz' will be selected instead 'tar.gz (copy)' etc.
|
||||||
|
|
||||||
fn popover_select_all(popover: >k::Popover, scrolled_window: >k::ScrolledWindow) {
|
fn popover_select_all(popover: >k::Popover, tree_view: >k::TreeView) {
|
||||||
let tree_view = get_tree_view(&scrolled_window);
|
|
||||||
let selection = tree_view.get_selection();
|
let selection = tree_view.get_selection();
|
||||||
|
|
||||||
selection.select_all();
|
selection.select_all();
|
||||||
popover.popdown();
|
popover.popdown();
|
||||||
}
|
}
|
||||||
fn popover_unselect_all(popover: >k::Popover, scrolled_window: >k::ScrolledWindow) {
|
fn popover_unselect_all(popover: >k::Popover, tree_view: >k::TreeView) {
|
||||||
let tree_view = get_tree_view(&scrolled_window);
|
|
||||||
let selection = tree_view.get_selection();
|
let selection = tree_view.get_selection();
|
||||||
|
|
||||||
selection.unselect_all();
|
selection.unselect_all();
|
||||||
popover.popdown();
|
popover.popdown();
|
||||||
}
|
}
|
||||||
fn popover_reverse(popover: >k::Popover, scrolled_window: >k::ScrolledWindow) {
|
fn popover_reverse(popover: >k::Popover, tree_view: >k::TreeView) {
|
||||||
let tree_view = get_tree_view(&scrolled_window);
|
|
||||||
let selection = tree_view.get_selection();
|
let selection = tree_view.get_selection();
|
||||||
|
|
||||||
let (vector_tree_path, tree_model) = selection.get_selected_rows();
|
let (vector_tree_path, tree_model) = selection.get_selected_rows();
|
||||||
|
@ -57,8 +54,7 @@ fn popover_reverse(popover: >k::Popover, scrolled_window: >k::ScrolledWindow
|
||||||
popover.popdown();
|
popover.popdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
fn popover_all_except_oldest(popover: >k::Popover, scrolled_window: >k::ScrolledWindow, column_color: i32, column_modification_as_secs: i32, column_file_name: i32) {
|
fn popover_all_except_oldest(popover: >k::Popover, tree_view: >k::TreeView, column_color: i32, column_modification_as_secs: i32, column_file_name: i32) {
|
||||||
let tree_view = get_tree_view(&scrolled_window);
|
|
||||||
let selection = tree_view.get_selection();
|
let selection = tree_view.get_selection();
|
||||||
let tree_model = tree_view.get_model().unwrap();
|
let tree_model = tree_view.get_model().unwrap();
|
||||||
|
|
||||||
|
@ -116,8 +112,7 @@ fn popover_all_except_oldest(popover: >k::Popover, scrolled_window: >k::Scro
|
||||||
|
|
||||||
popover.popdown();
|
popover.popdown();
|
||||||
}
|
}
|
||||||
fn popover_all_except_newest(popover: >k::Popover, scrolled_window: >k::ScrolledWindow, column_color: i32, column_modification_as_secs: i32, column_file_name: i32) {
|
fn popover_all_except_newest(popover: >k::Popover, tree_view: >k::TreeView, column_color: i32, column_modification_as_secs: i32, column_file_name: i32) {
|
||||||
let tree_view = get_tree_view(&scrolled_window);
|
|
||||||
let selection = tree_view.get_selection();
|
let selection = tree_view.get_selection();
|
||||||
let tree_model = tree_view.get_model().unwrap();
|
let tree_model = tree_view.get_model().unwrap();
|
||||||
|
|
||||||
|
@ -175,8 +170,7 @@ fn popover_all_except_newest(popover: >k::Popover, scrolled_window: >k::Scro
|
||||||
|
|
||||||
popover.popdown();
|
popover.popdown();
|
||||||
}
|
}
|
||||||
fn popover_one_oldest(popover: >k::Popover, scrolled_window: >k::ScrolledWindow, column_color: i32, column_modification_as_secs: i32, column_file_name: i32) {
|
fn popover_one_oldest(popover: >k::Popover, tree_view: >k::TreeView, column_color: i32, column_modification_as_secs: i32, column_file_name: i32) {
|
||||||
let tree_view = get_tree_view(&scrolled_window);
|
|
||||||
let selection = tree_view.get_selection();
|
let selection = tree_view.get_selection();
|
||||||
let tree_model = tree_view.get_model().unwrap();
|
let tree_model = tree_view.get_model().unwrap();
|
||||||
|
|
||||||
|
@ -234,8 +228,7 @@ fn popover_one_oldest(popover: >k::Popover, scrolled_window: >k::ScrolledWin
|
||||||
|
|
||||||
popover.popdown();
|
popover.popdown();
|
||||||
}
|
}
|
||||||
fn popover_one_newest(popover: >k::Popover, scrolled_window: >k::ScrolledWindow, column_color: i32, column_modification_as_secs: i32, column_file_name: i32) {
|
fn popover_one_newest(popover: >k::Popover, tree_view: >k::TreeView, column_color: i32, column_modification_as_secs: i32, column_file_name: i32) {
|
||||||
let tree_view = get_tree_view(&scrolled_window);
|
|
||||||
let selection = tree_view.get_selection();
|
let selection = tree_view.get_selection();
|
||||||
let tree_model = tree_view.get_model().unwrap();
|
let tree_model = tree_view.get_model().unwrap();
|
||||||
|
|
||||||
|
@ -293,7 +286,7 @@ fn popover_one_newest(popover: >k::Popover, scrolled_window: >k::ScrolledWin
|
||||||
popover.popdown();
|
popover.popdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
fn popover_select_custom(popover: >k::Popover, gui_data: &GuiData, scrolled_window: >k::ScrolledWindow, column_color: Option<i32>, column_file_name: i32, column_path: i32) {
|
fn popover_select_custom(popover: >k::Popover, gui_data: &GuiData, tree_view: >k::TreeView, column_color: Option<i32>, column_file_name: i32, column_path: i32) {
|
||||||
popover.popdown();
|
popover.popdown();
|
||||||
|
|
||||||
let wildcard: String;
|
let wildcard: String;
|
||||||
|
@ -367,7 +360,6 @@ fn popover_select_custom(popover: >k::Popover, gui_data: &GuiData, scrolled_wi
|
||||||
if !wildcard.is_empty() {
|
if !wildcard.is_empty() {
|
||||||
let wildcard = wildcard.trim();
|
let wildcard = wildcard.trim();
|
||||||
|
|
||||||
let tree_view = get_tree_view(&scrolled_window);
|
|
||||||
let selection = tree_view.get_selection();
|
let selection = tree_view.get_selection();
|
||||||
let tree_model = tree_view.get_model().unwrap();
|
let tree_model = tree_view.get_model().unwrap();
|
||||||
|
|
||||||
|
@ -410,7 +402,7 @@ fn popover_select_custom(popover: >k::Popover, gui_data: &GuiData, scrolled_wi
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fn popover_unselect_custom(popover: >k::Popover, gui_data: &GuiData, scrolled_window: >k::ScrolledWindow, column_color: Option<i32>, column_file_name: i32, column_path: i32) {
|
fn popover_unselect_custom(popover: >k::Popover, gui_data: &GuiData, tree_view: >k::TreeView, column_color: Option<i32>, column_file_name: i32, column_path: i32) {
|
||||||
popover.popdown();
|
popover.popdown();
|
||||||
|
|
||||||
let wildcard: String;
|
let wildcard: String;
|
||||||
|
@ -482,7 +474,6 @@ fn popover_unselect_custom(popover: >k::Popover, gui_data: &GuiData, scrolled_
|
||||||
if !wildcard.is_empty() {
|
if !wildcard.is_empty() {
|
||||||
let wildcard = wildcard.trim();
|
let wildcard = wildcard.trim();
|
||||||
|
|
||||||
let tree_view = get_tree_view(&scrolled_window);
|
|
||||||
let selection = tree_view.get_selection();
|
let selection = tree_view.get_selection();
|
||||||
let tree_model = tree_view.get_model().unwrap();
|
let tree_model = tree_view.get_model().unwrap();
|
||||||
|
|
||||||
|
@ -526,8 +517,7 @@ fn popover_unselect_custom(popover: >k::Popover, gui_data: &GuiData, scrolled_
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn popover_all_except_biggest(popover: >k::Popover, scrolled_window: >k::ScrolledWindow, column_color: i32, column_size_as_bytes: i32, column_dimensions: i32) {
|
fn popover_all_except_biggest(popover: >k::Popover, tree_view: >k::TreeView, column_color: i32, column_size_as_bytes: i32, column_dimensions: i32) {
|
||||||
let tree_view = get_tree_view(&scrolled_window);
|
|
||||||
let selection = tree_view.get_selection();
|
let selection = tree_view.get_selection();
|
||||||
let tree_model = tree_view.get_model().unwrap();
|
let tree_model = tree_view.get_model().unwrap();
|
||||||
|
|
||||||
|
@ -588,8 +578,7 @@ fn popover_all_except_biggest(popover: >k::Popover, scrolled_window: >k::Scr
|
||||||
|
|
||||||
popover.popdown();
|
popover.popdown();
|
||||||
}
|
}
|
||||||
fn popover_all_except_smallest(popover: >k::Popover, scrolled_window: >k::ScrolledWindow, column_color: i32, column_size_as_bytes: i32, column_dimensions: i32) {
|
fn popover_all_except_smallest(popover: >k::Popover, tree_view: >k::TreeView, column_color: i32, column_size_as_bytes: i32, column_dimensions: i32) {
|
||||||
let tree_view = get_tree_view(&scrolled_window);
|
|
||||||
let selection = tree_view.get_selection();
|
let selection = tree_view.get_selection();
|
||||||
let tree_model = tree_view.get_model().unwrap();
|
let tree_model = tree_view.get_model().unwrap();
|
||||||
|
|
||||||
|
@ -655,7 +644,7 @@ fn popover_all_except_smallest(popover: >k::Popover, scrolled_window: >k::Sc
|
||||||
pub struct PopoverObject {
|
pub struct PopoverObject {
|
||||||
pub notebook_type: NotebookMainEnum,
|
pub notebook_type: NotebookMainEnum,
|
||||||
pub available_modes: Vec<String>,
|
pub available_modes: Vec<String>,
|
||||||
pub scrolled_windows: gtk::ScrolledWindow,
|
pub tree_view: gtk::TreeView,
|
||||||
pub column_path: Option<i32>,
|
pub column_path: Option<i32>,
|
||||||
pub column_name: Option<i32>,
|
pub column_name: Option<i32>,
|
||||||
pub column_color: Option<i32>,
|
pub column_color: Option<i32>,
|
||||||
|
@ -679,7 +668,7 @@ pub fn connect_popovers(gui_data: &GuiData) {
|
||||||
PopoverObject {
|
PopoverObject {
|
||||||
notebook_type: NotebookMainEnum::Duplicate,
|
notebook_type: NotebookMainEnum::Duplicate,
|
||||||
available_modes: vec!["all", "reverse", "custom", "date"].iter().map(|e| e.to_string()).collect(),
|
available_modes: vec!["all", "reverse", "custom", "date"].iter().map(|e| e.to_string()).collect(),
|
||||||
scrolled_windows: gui_data.scrolled_window_duplicate_finder.clone(),
|
tree_view: gui_data.main_notebook.tree_view_duplicate_finder.clone(),
|
||||||
column_path: Some(ColumnsDuplicates::Path as i32),
|
column_path: Some(ColumnsDuplicates::Path as i32),
|
||||||
column_name: Some(ColumnsDuplicates::Name as i32),
|
column_name: Some(ColumnsDuplicates::Name as i32),
|
||||||
column_color: Some(ColumnsDuplicates::Color as i32),
|
column_color: Some(ColumnsDuplicates::Color as i32),
|
||||||
|
@ -691,7 +680,7 @@ pub fn connect_popovers(gui_data: &GuiData) {
|
||||||
PopoverObject {
|
PopoverObject {
|
||||||
notebook_type: NotebookMainEnum::SameMusic,
|
notebook_type: NotebookMainEnum::SameMusic,
|
||||||
available_modes: vec!["all", "reverse", "custom", "date"].iter().map(|e| e.to_string()).collect(),
|
available_modes: vec!["all", "reverse", "custom", "date"].iter().map(|e| e.to_string()).collect(),
|
||||||
scrolled_windows: gui_data.scrolled_window_same_music_finder.clone(),
|
tree_view: gui_data.main_notebook.tree_view_same_music_finder.clone(),
|
||||||
column_path: Some(ColumnsSameMusic::Path as i32),
|
column_path: Some(ColumnsSameMusic::Path as i32),
|
||||||
column_name: Some(ColumnsSameMusic::Name as i32),
|
column_name: Some(ColumnsSameMusic::Name as i32),
|
||||||
column_color: Some(ColumnsSameMusic::Color as i32),
|
column_color: Some(ColumnsSameMusic::Color as i32),
|
||||||
|
@ -703,7 +692,7 @@ pub fn connect_popovers(gui_data: &GuiData) {
|
||||||
PopoverObject {
|
PopoverObject {
|
||||||
notebook_type: NotebookMainEnum::SimilarImages,
|
notebook_type: NotebookMainEnum::SimilarImages,
|
||||||
available_modes: vec!["all", "reverse", "custom", "date"].iter().map(|e| e.to_string()).collect(),
|
available_modes: vec!["all", "reverse", "custom", "date"].iter().map(|e| e.to_string()).collect(),
|
||||||
scrolled_windows: gui_data.scrolled_window_similar_images_finder.clone(),
|
tree_view: gui_data.main_notebook.tree_view_similar_images_finder.clone(),
|
||||||
column_path: Some(ColumnsSimilarImages::Path as i32),
|
column_path: Some(ColumnsSimilarImages::Path as i32),
|
||||||
column_name: Some(ColumnsSimilarImages::Name as i32),
|
column_name: Some(ColumnsSimilarImages::Name as i32),
|
||||||
column_color: Some(ColumnsSimilarImages::Color as i32),
|
column_color: Some(ColumnsSimilarImages::Color as i32),
|
||||||
|
@ -715,7 +704,7 @@ pub fn connect_popovers(gui_data: &GuiData) {
|
||||||
PopoverObject {
|
PopoverObject {
|
||||||
notebook_type: NotebookMainEnum::EmptyDirectories,
|
notebook_type: NotebookMainEnum::EmptyDirectories,
|
||||||
available_modes: vec!["all", "reverse", "custom"].iter().map(|e| e.to_string()).collect(),
|
available_modes: vec!["all", "reverse", "custom"].iter().map(|e| e.to_string()).collect(),
|
||||||
scrolled_windows: gui_data.scrolled_window_main_empty_folder_finder.clone(),
|
tree_view: gui_data.main_notebook.tree_view_empty_folder_finder.clone(),
|
||||||
column_path: Some(ColumnsEmptyFolders::Path as i32),
|
column_path: Some(ColumnsEmptyFolders::Path as i32),
|
||||||
column_name: Some(ColumnsEmptyFolders::Name as i32),
|
column_name: Some(ColumnsEmptyFolders::Name as i32),
|
||||||
column_color: None,
|
column_color: None,
|
||||||
|
@ -727,7 +716,7 @@ pub fn connect_popovers(gui_data: &GuiData) {
|
||||||
PopoverObject {
|
PopoverObject {
|
||||||
notebook_type: NotebookMainEnum::EmptyFiles,
|
notebook_type: NotebookMainEnum::EmptyFiles,
|
||||||
available_modes: vec!["all", "reverse", "custom"].iter().map(|e| e.to_string()).collect(),
|
available_modes: vec!["all", "reverse", "custom"].iter().map(|e| e.to_string()).collect(),
|
||||||
scrolled_windows: gui_data.scrolled_window_main_empty_files_finder.clone(),
|
tree_view: gui_data.main_notebook.tree_view_empty_files_finder.clone(),
|
||||||
column_path: Some(ColumnsEmptyFiles::Path as i32),
|
column_path: Some(ColumnsEmptyFiles::Path as i32),
|
||||||
column_name: Some(ColumnsEmptyFiles::Name as i32),
|
column_name: Some(ColumnsEmptyFiles::Name as i32),
|
||||||
column_color: None,
|
column_color: None,
|
||||||
|
@ -739,7 +728,7 @@ pub fn connect_popovers(gui_data: &GuiData) {
|
||||||
PopoverObject {
|
PopoverObject {
|
||||||
notebook_type: NotebookMainEnum::Temporary,
|
notebook_type: NotebookMainEnum::Temporary,
|
||||||
available_modes: vec!["all", "reverse", "custom"].iter().map(|e| e.to_string()).collect(),
|
available_modes: vec!["all", "reverse", "custom"].iter().map(|e| e.to_string()).collect(),
|
||||||
scrolled_windows: gui_data.scrolled_window_main_temporary_files_finder.clone(),
|
tree_view: gui_data.main_notebook.tree_view_temporary_files_finder.clone(),
|
||||||
column_path: Some(ColumnsTemporaryFiles::Path as i32),
|
column_path: Some(ColumnsTemporaryFiles::Path as i32),
|
||||||
column_name: Some(ColumnsTemporaryFiles::Name as i32),
|
column_name: Some(ColumnsTemporaryFiles::Name as i32),
|
||||||
column_color: None,
|
column_color: None,
|
||||||
|
@ -751,7 +740,7 @@ pub fn connect_popovers(gui_data: &GuiData) {
|
||||||
PopoverObject {
|
PopoverObject {
|
||||||
notebook_type: NotebookMainEnum::BigFiles,
|
notebook_type: NotebookMainEnum::BigFiles,
|
||||||
available_modes: vec!["all", "reverse", "custom"].iter().map(|e| e.to_string()).collect(),
|
available_modes: vec!["all", "reverse", "custom"].iter().map(|e| e.to_string()).collect(),
|
||||||
scrolled_windows: gui_data.scrolled_window_big_files_finder.clone(),
|
tree_view: gui_data.main_notebook.tree_view_big_files_finder.clone(),
|
||||||
column_path: Some(ColumnsBigFiles::Path as i32),
|
column_path: Some(ColumnsBigFiles::Path as i32),
|
||||||
column_name: Some(ColumnsBigFiles::Name as i32),
|
column_name: Some(ColumnsBigFiles::Name as i32),
|
||||||
column_color: None,
|
column_color: None,
|
||||||
|
@ -763,7 +752,7 @@ pub fn connect_popovers(gui_data: &GuiData) {
|
||||||
PopoverObject {
|
PopoverObject {
|
||||||
notebook_type: NotebookMainEnum::Zeroed,
|
notebook_type: NotebookMainEnum::Zeroed,
|
||||||
available_modes: vec!["all", "reverse", "custom"].iter().map(|e| e.to_string()).collect(),
|
available_modes: vec!["all", "reverse", "custom"].iter().map(|e| e.to_string()).collect(),
|
||||||
scrolled_windows: gui_data.scrolled_window_zeroed_files_finder.clone(),
|
tree_view: gui_data.main_notebook.tree_view_zeroed_files_finder.clone(),
|
||||||
column_path: Some(ColumnsZeroedFiles::Path as i32),
|
column_path: Some(ColumnsZeroedFiles::Path as i32),
|
||||||
column_name: Some(ColumnsZeroedFiles::Name as i32),
|
column_name: Some(ColumnsZeroedFiles::Name as i32),
|
||||||
column_color: None,
|
column_color: None,
|
||||||
|
@ -780,7 +769,7 @@ pub fn connect_popovers(gui_data: &GuiData) {
|
||||||
let vec_popover_objects = popover_objects.clone();
|
let vec_popover_objects = popover_objects.clone();
|
||||||
buttons_popover_select_all.connect_clicked(move |_| {
|
buttons_popover_select_all.connect_clicked(move |_| {
|
||||||
let object_popover = find_name(&to_notebook_main_enum(notebook_main.get_current_page().unwrap()), &vec_popover_objects).unwrap();
|
let object_popover = find_name(&to_notebook_main_enum(notebook_main.get_current_page().unwrap()), &vec_popover_objects).unwrap();
|
||||||
popover_select_all(&popover_select, &object_popover.scrolled_windows);
|
popover_select_all(&popover_select, &object_popover.tree_view);
|
||||||
});
|
});
|
||||||
|
|
||||||
let popover_select = gui_data.popover_select.clone();
|
let popover_select = gui_data.popover_select.clone();
|
||||||
|
@ -789,7 +778,7 @@ pub fn connect_popovers(gui_data: &GuiData) {
|
||||||
let vec_popover_objects = popover_objects.clone();
|
let vec_popover_objects = popover_objects.clone();
|
||||||
buttons_popover_unselect_all.connect_clicked(move |_| {
|
buttons_popover_unselect_all.connect_clicked(move |_| {
|
||||||
let object_popover = find_name(&to_notebook_main_enum(notebook_main.get_current_page().unwrap()), &vec_popover_objects).unwrap();
|
let object_popover = find_name(&to_notebook_main_enum(notebook_main.get_current_page().unwrap()), &vec_popover_objects).unwrap();
|
||||||
popover_unselect_all(&popover_select, &object_popover.scrolled_windows);
|
popover_unselect_all(&popover_select, &object_popover.tree_view);
|
||||||
});
|
});
|
||||||
|
|
||||||
let popover_select = gui_data.popover_select.clone();
|
let popover_select = gui_data.popover_select.clone();
|
||||||
|
@ -798,7 +787,7 @@ pub fn connect_popovers(gui_data: &GuiData) {
|
||||||
let vec_popover_objects = popover_objects.clone();
|
let vec_popover_objects = popover_objects.clone();
|
||||||
buttons_popover_reverse.connect_clicked(move |_| {
|
buttons_popover_reverse.connect_clicked(move |_| {
|
||||||
let object_popover = find_name(&to_notebook_main_enum(notebook_main.get_current_page().unwrap()), &vec_popover_objects).unwrap();
|
let object_popover = find_name(&to_notebook_main_enum(notebook_main.get_current_page().unwrap()), &vec_popover_objects).unwrap();
|
||||||
popover_reverse(&popover_select, &object_popover.scrolled_windows);
|
popover_reverse(&popover_select, &object_popover.tree_view);
|
||||||
});
|
});
|
||||||
|
|
||||||
let popover_select = gui_data.popover_select.clone();
|
let popover_select = gui_data.popover_select.clone();
|
||||||
|
@ -809,7 +798,7 @@ pub fn connect_popovers(gui_data: &GuiData) {
|
||||||
let object_popover = find_name(&to_notebook_main_enum(notebook_main.get_current_page().unwrap()), &vec_popover_objects).unwrap();
|
let object_popover = find_name(&to_notebook_main_enum(notebook_main.get_current_page().unwrap()), &vec_popover_objects).unwrap();
|
||||||
popover_all_except_oldest(
|
popover_all_except_oldest(
|
||||||
&popover_select,
|
&popover_select,
|
||||||
&object_popover.scrolled_windows,
|
&object_popover.tree_view,
|
||||||
object_popover.column_color.unwrap(),
|
object_popover.column_color.unwrap(),
|
||||||
object_popover.column_modification_as_secs.unwrap(),
|
object_popover.column_modification_as_secs.unwrap(),
|
||||||
object_popover.column_name.unwrap(),
|
object_popover.column_name.unwrap(),
|
||||||
|
@ -824,7 +813,7 @@ pub fn connect_popovers(gui_data: &GuiData) {
|
||||||
let object_popover = find_name(&to_notebook_main_enum(notebook_main.get_current_page().unwrap()), &vec_popover_objects).unwrap();
|
let object_popover = find_name(&to_notebook_main_enum(notebook_main.get_current_page().unwrap()), &vec_popover_objects).unwrap();
|
||||||
popover_all_except_newest(
|
popover_all_except_newest(
|
||||||
&popover_select,
|
&popover_select,
|
||||||
&object_popover.scrolled_windows,
|
&object_popover.tree_view,
|
||||||
object_popover.column_color.unwrap(),
|
object_popover.column_color.unwrap(),
|
||||||
object_popover.column_modification_as_secs.unwrap(),
|
object_popover.column_modification_as_secs.unwrap(),
|
||||||
object_popover.column_name.unwrap(),
|
object_popover.column_name.unwrap(),
|
||||||
|
@ -839,7 +828,7 @@ pub fn connect_popovers(gui_data: &GuiData) {
|
||||||
let object_popover = find_name(&to_notebook_main_enum(notebook_main.get_current_page().unwrap()), &vec_popover_objects).unwrap();
|
let object_popover = find_name(&to_notebook_main_enum(notebook_main.get_current_page().unwrap()), &vec_popover_objects).unwrap();
|
||||||
popover_one_oldest(
|
popover_one_oldest(
|
||||||
&popover_select,
|
&popover_select,
|
||||||
&object_popover.scrolled_windows,
|
&object_popover.tree_view,
|
||||||
object_popover.column_color.unwrap(),
|
object_popover.column_color.unwrap(),
|
||||||
object_popover.column_modification_as_secs.unwrap(),
|
object_popover.column_modification_as_secs.unwrap(),
|
||||||
object_popover.column_name.unwrap(),
|
object_popover.column_name.unwrap(),
|
||||||
|
@ -854,7 +843,7 @@ pub fn connect_popovers(gui_data: &GuiData) {
|
||||||
let object_popover = find_name(&to_notebook_main_enum(notebook_main.get_current_page().unwrap()), &vec_popover_objects).unwrap();
|
let object_popover = find_name(&to_notebook_main_enum(notebook_main.get_current_page().unwrap()), &vec_popover_objects).unwrap();
|
||||||
popover_one_newest(
|
popover_one_newest(
|
||||||
&popover_select,
|
&popover_select,
|
||||||
&object_popover.scrolled_windows,
|
&object_popover.tree_view,
|
||||||
object_popover.column_color.unwrap(),
|
object_popover.column_color.unwrap(),
|
||||||
object_popover.column_modification_as_secs.unwrap(),
|
object_popover.column_modification_as_secs.unwrap(),
|
||||||
object_popover.column_name.unwrap(),
|
object_popover.column_name.unwrap(),
|
||||||
|
@ -871,7 +860,7 @@ pub fn connect_popovers(gui_data: &GuiData) {
|
||||||
popover_select_custom(
|
popover_select_custom(
|
||||||
&popover_select,
|
&popover_select,
|
||||||
&gui_data_clone,
|
&gui_data_clone,
|
||||||
&object_popover.scrolled_windows,
|
&object_popover.tree_view,
|
||||||
object_popover.column_color,
|
object_popover.column_color,
|
||||||
object_popover.column_name.unwrap(),
|
object_popover.column_name.unwrap(),
|
||||||
object_popover.column_path.unwrap(),
|
object_popover.column_path.unwrap(),
|
||||||
|
@ -888,7 +877,7 @@ pub fn connect_popovers(gui_data: &GuiData) {
|
||||||
popover_unselect_custom(
|
popover_unselect_custom(
|
||||||
&popover_select,
|
&popover_select,
|
||||||
&gui_data_clone,
|
&gui_data_clone,
|
||||||
&object_popover.scrolled_windows,
|
&object_popover.tree_view,
|
||||||
object_popover.column_color,
|
object_popover.column_color,
|
||||||
object_popover.column_name.unwrap(),
|
object_popover.column_name.unwrap(),
|
||||||
object_popover.column_path.unwrap(),
|
object_popover.column_path.unwrap(),
|
||||||
|
@ -903,7 +892,7 @@ pub fn connect_popovers(gui_data: &GuiData) {
|
||||||
let object_popover = find_name(&to_notebook_main_enum(notebook_main.get_current_page().unwrap()), &vec_popover_objects).unwrap();
|
let object_popover = find_name(&to_notebook_main_enum(notebook_main.get_current_page().unwrap()), &vec_popover_objects).unwrap();
|
||||||
popover_all_except_biggest(
|
popover_all_except_biggest(
|
||||||
&popover_select,
|
&popover_select,
|
||||||
&object_popover.scrolled_windows,
|
&object_popover.tree_view,
|
||||||
object_popover.column_color.unwrap(),
|
object_popover.column_color.unwrap(),
|
||||||
object_popover.column_size_as_bytes.unwrap(),
|
object_popover.column_size_as_bytes.unwrap(),
|
||||||
object_popover.column_dimensions.unwrap(),
|
object_popover.column_dimensions.unwrap(),
|
||||||
|
@ -918,7 +907,7 @@ pub fn connect_popovers(gui_data: &GuiData) {
|
||||||
let object_popover = find_name(&to_notebook_main_enum(notebook_main.get_current_page().unwrap()), &vec_popover_objects).unwrap();
|
let object_popover = find_name(&to_notebook_main_enum(notebook_main.get_current_page().unwrap()), &vec_popover_objects).unwrap();
|
||||||
popover_all_except_smallest(
|
popover_all_except_smallest(
|
||||||
&popover_select,
|
&popover_select,
|
||||||
&object_popover.scrolled_windows,
|
&object_popover.tree_view,
|
||||||
object_popover.column_color.unwrap(),
|
object_popover.column_color.unwrap(),
|
||||||
object_popover.column_size_as_bytes.unwrap(),
|
object_popover.column_size_as_bytes.unwrap(),
|
||||||
object_popover.column_dimensions.unwrap(),
|
object_popover.column_dimensions.unwrap(),
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
extern crate gtk;
|
extern crate gtk;
|
||||||
use crate::gui_data::GuiData;
|
use crate::gui_data::GuiData;
|
||||||
use crate::help_functions::{get_list_store, get_tree_view};
|
use crate::help_functions::get_list_store;
|
||||||
use gtk::prelude::*;
|
use gtk::prelude::*;
|
||||||
|
|
||||||
#[cfg(target_family = "windows")]
|
#[cfg(target_family = "windows")]
|
||||||
|
@ -9,7 +9,7 @@ use czkawka_core::common::Common;
|
||||||
pub fn connect_selection_of_directories(gui_data: &GuiData) {
|
pub fn connect_selection_of_directories(gui_data: &GuiData) {
|
||||||
// Add manually directory
|
// Add manually directory
|
||||||
{
|
{
|
||||||
let scrolled_window_included_directories = gui_data.scrolled_window_included_directories.clone();
|
let tree_view_included_directories = gui_data.tree_view_included_directories.clone();
|
||||||
let window_main = gui_data.window_main.clone();
|
let window_main = gui_data.window_main.clone();
|
||||||
let buttons_manual_add_directory = gui_data.buttons_manual_add_directory.clone();
|
let buttons_manual_add_directory = gui_data.buttons_manual_add_directory.clone();
|
||||||
buttons_manual_add_directory.connect_clicked(move |_| {
|
buttons_manual_add_directory.connect_clicked(move |_| {
|
||||||
|
@ -31,7 +31,7 @@ pub fn connect_selection_of_directories(gui_data: &GuiData) {
|
||||||
let text = Common::normalize_windows_path(text).to_string_lossy().to_string();
|
let text = Common::normalize_windows_path(text).to_string_lossy().to_string();
|
||||||
|
|
||||||
if !text.is_empty() {
|
if !text.is_empty() {
|
||||||
let list_store = get_list_store(&scrolled_window_included_directories);
|
let list_store = get_list_store(&tree_view_included_directories);
|
||||||
|
|
||||||
let col_indices = [0];
|
let col_indices = [0];
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@ pub fn connect_selection_of_directories(gui_data: &GuiData) {
|
||||||
}
|
}
|
||||||
// Add manually excluded directory
|
// Add manually excluded directory
|
||||||
{
|
{
|
||||||
let scrolled_window_excluded_directories = gui_data.scrolled_window_excluded_directories.clone();
|
let tree_view_excluded_directories = gui_data.tree_view_excluded_directories.clone();
|
||||||
let window_main = gui_data.window_main.clone();
|
let window_main = gui_data.window_main.clone();
|
||||||
let buttons_manual_add_excluded_directory = gui_data.buttons_manual_add_excluded_directory.clone();
|
let buttons_manual_add_excluded_directory = gui_data.buttons_manual_add_excluded_directory.clone();
|
||||||
buttons_manual_add_excluded_directory.connect_clicked(move |_| {
|
buttons_manual_add_excluded_directory.connect_clicked(move |_| {
|
||||||
|
@ -74,7 +74,7 @@ pub fn connect_selection_of_directories(gui_data: &GuiData) {
|
||||||
let text = Common::normalize_windows_path(text).to_string_lossy().to_string();
|
let text = Common::normalize_windows_path(text).to_string_lossy().to_string();
|
||||||
|
|
||||||
if !text.is_empty() {
|
if !text.is_empty() {
|
||||||
let list_store = get_list_store(&scrolled_window_excluded_directories);
|
let list_store = get_list_store(&tree_view_excluded_directories);
|
||||||
|
|
||||||
let col_indices = [0];
|
let col_indices = [0];
|
||||||
|
|
||||||
|
@ -90,7 +90,7 @@ pub fn connect_selection_of_directories(gui_data: &GuiData) {
|
||||||
}
|
}
|
||||||
// Add included directory
|
// Add included directory
|
||||||
{
|
{
|
||||||
let scrolled_window_included_directories = gui_data.scrolled_window_included_directories.clone();
|
let tree_view_included_directories = gui_data.tree_view_included_directories.clone();
|
||||||
let window_main = gui_data.window_main.clone();
|
let window_main = gui_data.window_main.clone();
|
||||||
let buttons_add_included_directory = gui_data.buttons_add_included_directory.clone();
|
let buttons_add_included_directory = gui_data.buttons_add_included_directory.clone();
|
||||||
buttons_add_included_directory.connect_clicked(move |_| {
|
buttons_add_included_directory.connect_clicked(move |_| {
|
||||||
|
@ -106,7 +106,7 @@ pub fn connect_selection_of_directories(gui_data: &GuiData) {
|
||||||
if response_type == gtk::ResponseType::Ok {
|
if response_type == gtk::ResponseType::Ok {
|
||||||
let folder = chooser.get_filenames();
|
let folder = chooser.get_filenames();
|
||||||
|
|
||||||
let list_store = get_list_store(&scrolled_window_included_directories);
|
let list_store = get_list_store(&tree_view_included_directories);
|
||||||
|
|
||||||
let col_indices = [0];
|
let col_indices = [0];
|
||||||
for file_entry in &folder {
|
for file_entry in &folder {
|
||||||
|
@ -119,7 +119,7 @@ pub fn connect_selection_of_directories(gui_data: &GuiData) {
|
||||||
}
|
}
|
||||||
// Add excluded directory
|
// Add excluded directory
|
||||||
{
|
{
|
||||||
let scrolled_window_excluded_directories = gui_data.scrolled_window_excluded_directories.clone();
|
let tree_view_excluded_directories = gui_data.tree_view_excluded_directories.clone();
|
||||||
let window_main = gui_data.window_main.clone();
|
let window_main = gui_data.window_main.clone();
|
||||||
let buttons_add_excluded_directory = gui_data.buttons_add_excluded_directory.clone();
|
let buttons_add_excluded_directory = gui_data.buttons_add_excluded_directory.clone();
|
||||||
buttons_add_excluded_directory.connect_clicked(move |_| {
|
buttons_add_excluded_directory.connect_clicked(move |_| {
|
||||||
|
@ -135,7 +135,7 @@ pub fn connect_selection_of_directories(gui_data: &GuiData) {
|
||||||
if response_type == gtk::ResponseType::Ok {
|
if response_type == gtk::ResponseType::Ok {
|
||||||
let folder = chooser.get_filenames();
|
let folder = chooser.get_filenames();
|
||||||
|
|
||||||
let list_store = get_list_store(&scrolled_window_excluded_directories);
|
let list_store = get_list_store(&tree_view_excluded_directories);
|
||||||
|
|
||||||
let col_indices = [0];
|
let col_indices = [0];
|
||||||
|
|
||||||
|
@ -150,11 +150,10 @@ pub fn connect_selection_of_directories(gui_data: &GuiData) {
|
||||||
// Remove Excluded Folder
|
// Remove Excluded Folder
|
||||||
{
|
{
|
||||||
let buttons_remove_excluded_directory = gui_data.buttons_remove_excluded_directory.clone();
|
let buttons_remove_excluded_directory = gui_data.buttons_remove_excluded_directory.clone();
|
||||||
let scrolled_window_excluded_directories = gui_data.scrolled_window_excluded_directories.clone();
|
let tree_view_excluded_directories = gui_data.tree_view_excluded_directories.clone();
|
||||||
buttons_remove_excluded_directory.connect_clicked(move |_| {
|
buttons_remove_excluded_directory.connect_clicked(move |_| {
|
||||||
let tree_view = get_tree_view(&scrolled_window_excluded_directories);
|
let list_store = get_list_store(&tree_view_excluded_directories);
|
||||||
let list_store = get_list_store(&scrolled_window_excluded_directories);
|
let selection = tree_view_excluded_directories.get_selection();
|
||||||
let selection = tree_view.get_selection();
|
|
||||||
|
|
||||||
let (vec_tree_path, _tree_model) = selection.get_selected_rows();
|
let (vec_tree_path, _tree_model) = selection.get_selected_rows();
|
||||||
|
|
||||||
|
@ -166,11 +165,10 @@ pub fn connect_selection_of_directories(gui_data: &GuiData) {
|
||||||
// Remove Included Folder
|
// Remove Included Folder
|
||||||
{
|
{
|
||||||
let buttons_remove_included_directory = gui_data.buttons_remove_included_directory.clone();
|
let buttons_remove_included_directory = gui_data.buttons_remove_included_directory.clone();
|
||||||
let scrolled_window_included_directories = gui_data.scrolled_window_included_directories.clone();
|
let tree_view_included_directories = gui_data.tree_view_included_directories.clone();
|
||||||
buttons_remove_included_directory.connect_clicked(move |_| {
|
buttons_remove_included_directory.connect_clicked(move |_| {
|
||||||
let tree_view = get_tree_view(&scrolled_window_included_directories);
|
let list_store = get_list_store(&tree_view_included_directories);
|
||||||
let list_store = get_list_store(&scrolled_window_included_directories);
|
let selection = tree_view_included_directories.get_selection();
|
||||||
let selection = tree_view.get_selection();
|
|
||||||
|
|
||||||
let (vec_tree_path, _tree_model) = selection.get_selected_rows();
|
let (vec_tree_path, _tree_model) = selection.get_selected_rows();
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
extern crate gtk;
|
extern crate gtk;
|
||||||
|
use crate::gui_main_notebook::GUIMainNotebook;
|
||||||
use crate::notebook_enums::*;
|
use crate::notebook_enums::*;
|
||||||
use crossbeam_channel::unbounded;
|
use crossbeam_channel::unbounded;
|
||||||
use czkawka_core::big_file::BigFile;
|
use czkawka_core::big_file::BigFile;
|
||||||
|
@ -11,7 +12,7 @@ use czkawka_core::similar_images::SimilarImages;
|
||||||
use czkawka_core::temporary::Temporary;
|
use czkawka_core::temporary::Temporary;
|
||||||
use czkawka_core::zeroed::ZeroedFiles;
|
use czkawka_core::zeroed::ZeroedFiles;
|
||||||
use gtk::prelude::*;
|
use gtk::prelude::*;
|
||||||
use gtk::{Builder, Button};
|
use gtk::{Builder, Button, TreeView};
|
||||||
use std::cell::RefCell;
|
use std::cell::RefCell;
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
|
@ -25,6 +26,8 @@ pub struct GuiData {
|
||||||
// Windows
|
// Windows
|
||||||
pub window_main: gtk::Window,
|
pub window_main: gtk::Window,
|
||||||
|
|
||||||
|
pub main_notebook: GUIMainNotebook,
|
||||||
|
|
||||||
// States
|
// States
|
||||||
pub buttons_labels: [String; 5],
|
pub buttons_labels: [String; 5],
|
||||||
|
|
||||||
|
@ -132,21 +135,14 @@ pub struct GuiData {
|
||||||
pub scrolled_window_errors: gtk::ScrolledWindow,
|
pub scrolled_window_errors: gtk::ScrolledWindow,
|
||||||
|
|
||||||
//// Scrolled windows
|
//// Scrolled windows
|
||||||
// Main notebook
|
|
||||||
pub scrolled_window_duplicate_finder: gtk::ScrolledWindow,
|
|
||||||
pub scrolled_window_main_empty_folder_finder: gtk::ScrolledWindow,
|
|
||||||
pub scrolled_window_main_empty_files_finder: gtk::ScrolledWindow,
|
|
||||||
pub scrolled_window_main_temporary_files_finder: gtk::ScrolledWindow,
|
|
||||||
pub scrolled_window_big_files_finder: gtk::ScrolledWindow,
|
|
||||||
pub scrolled_window_similar_images_finder: gtk::ScrolledWindow,
|
|
||||||
pub scrolled_window_zeroed_files_finder: gtk::ScrolledWindow,
|
|
||||||
pub scrolled_window_same_music_finder: gtk::ScrolledWindow,
|
|
||||||
pub scrolled_window_invalid_symlinks: gtk::ScrolledWindow,
|
|
||||||
|
|
||||||
// Upper notebook
|
// Upper notebook
|
||||||
pub scrolled_window_included_directories: gtk::ScrolledWindow,
|
pub scrolled_window_included_directories: gtk::ScrolledWindow,
|
||||||
pub scrolled_window_excluded_directories: gtk::ScrolledWindow,
|
pub scrolled_window_excluded_directories: gtk::ScrolledWindow,
|
||||||
|
|
||||||
|
pub tree_view_included_directories: gtk::TreeView,
|
||||||
|
pub tree_view_excluded_directories: gtk::TreeView,
|
||||||
|
|
||||||
//// Dialog State - dialog with progress state, which allows to stop task
|
//// Dialog State - dialog with progress state, which allows to stop task
|
||||||
pub dialog_progress: gtk::Dialog,
|
pub dialog_progress: gtk::Dialog,
|
||||||
|
|
||||||
|
@ -190,6 +186,8 @@ impl GuiData {
|
||||||
window_main.show_all();
|
window_main.show_all();
|
||||||
window_main.set_title("Czkawka");
|
window_main.set_title("Czkawka");
|
||||||
|
|
||||||
|
let main_notebook = GUIMainNotebook::create_from_builder(&builder);
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
//// States
|
//// States
|
||||||
let buttons_labels = ["search".to_string(), "select".to_string(), "delete".to_string(), "save".to_string(), "symlink".to_string()];
|
let buttons_labels = ["search".to_string(), "select".to_string(), "delete".to_string(), "save".to_string(), "symlink".to_string()];
|
||||||
|
@ -330,20 +328,14 @@ impl GuiData {
|
||||||
|
|
||||||
//// Scrolled windows
|
//// Scrolled windows
|
||||||
// Main notebook
|
// Main notebook
|
||||||
let scrolled_window_duplicate_finder: gtk::ScrolledWindow = builder.get_object("scrolled_window_duplicate_finder").unwrap();
|
|
||||||
let scrolled_window_main_empty_folder_finder: gtk::ScrolledWindow = builder.get_object("scrolled_window_main_empty_folder_finder").unwrap();
|
|
||||||
let scrolled_window_main_empty_files_finder: gtk::ScrolledWindow = builder.get_object("scrolled_window_main_empty_files_finder").unwrap();
|
|
||||||
let scrolled_window_main_temporary_files_finder: gtk::ScrolledWindow = builder.get_object("scrolled_window_main_temporary_files_finder").unwrap();
|
|
||||||
let scrolled_window_big_files_finder: gtk::ScrolledWindow = builder.get_object("scrolled_window_big_files_finder").unwrap();
|
|
||||||
let scrolled_window_similar_images_finder: gtk::ScrolledWindow = builder.get_object("scrolled_window_similar_images_finder").unwrap();
|
|
||||||
let scrolled_window_zeroed_files_finder: gtk::ScrolledWindow = builder.get_object("scrolled_window_zeroed_files_finder").unwrap();
|
|
||||||
let scrolled_window_same_music_finder: gtk::ScrolledWindow = builder.get_object("scrolled_window_same_music_finder").unwrap();
|
|
||||||
let scrolled_window_invalid_symlinks: gtk::ScrolledWindow = builder.get_object("scrolled_window_invalid_symlinks").unwrap();
|
|
||||||
|
|
||||||
// Upper notebook
|
// Upper notebook
|
||||||
let scrolled_window_included_directories: gtk::ScrolledWindow = builder.get_object("scrolled_window_included_directories").unwrap();
|
let scrolled_window_included_directories: gtk::ScrolledWindow = builder.get_object("scrolled_window_included_directories").unwrap();
|
||||||
let scrolled_window_excluded_directories: gtk::ScrolledWindow = builder.get_object("scrolled_window_excluded_directories").unwrap();
|
let scrolled_window_excluded_directories: gtk::ScrolledWindow = builder.get_object("scrolled_window_excluded_directories").unwrap();
|
||||||
|
|
||||||
|
let tree_view_included_directories: gtk::TreeView = TreeView::new();
|
||||||
|
let tree_view_excluded_directories: gtk::TreeView = TreeView::new();
|
||||||
|
|
||||||
//// Dialog State - dialog with progress state, which allows to stop task
|
//// Dialog State - dialog with progress state, which allows to stop task
|
||||||
let dialog_progress: gtk::Dialog = builder.get_object("dialog_progress").unwrap();
|
let dialog_progress: gtk::Dialog = builder.get_object("dialog_progress").unwrap();
|
||||||
dialog_progress.set_title("Czkawka");
|
dialog_progress.set_title("Czkawka");
|
||||||
|
@ -381,6 +373,7 @@ impl GuiData {
|
||||||
glade_src,
|
glade_src,
|
||||||
builder,
|
builder,
|
||||||
window_main,
|
window_main,
|
||||||
|
main_notebook,
|
||||||
buttons_labels,
|
buttons_labels,
|
||||||
shared_buttons,
|
shared_buttons,
|
||||||
shared_upper_notebooks,
|
shared_upper_notebooks,
|
||||||
|
@ -454,17 +447,10 @@ impl GuiData {
|
||||||
entry_info,
|
entry_info,
|
||||||
text_view_errors,
|
text_view_errors,
|
||||||
scrolled_window_errors,
|
scrolled_window_errors,
|
||||||
scrolled_window_duplicate_finder,
|
|
||||||
scrolled_window_main_empty_folder_finder,
|
|
||||||
scrolled_window_main_empty_files_finder,
|
|
||||||
scrolled_window_main_temporary_files_finder,
|
|
||||||
scrolled_window_big_files_finder,
|
|
||||||
scrolled_window_similar_images_finder,
|
|
||||||
scrolled_window_zeroed_files_finder,
|
|
||||||
scrolled_window_same_music_finder,
|
|
||||||
scrolled_window_invalid_symlinks,
|
|
||||||
scrolled_window_included_directories,
|
scrolled_window_included_directories,
|
||||||
scrolled_window_excluded_directories,
|
scrolled_window_excluded_directories,
|
||||||
|
tree_view_included_directories,
|
||||||
|
tree_view_excluded_directories,
|
||||||
dialog_progress,
|
dialog_progress,
|
||||||
progress_bar_current_stage,
|
progress_bar_current_stage,
|
||||||
progress_bar_all_stages,
|
progress_bar_all_stages,
|
||||||
|
|
70
czkawka_gui/src/gui_main_notebook.rs
Normal file
70
czkawka_gui/src/gui_main_notebook.rs
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
use gtk::prelude::*;
|
||||||
|
use gtk::TreeView;
|
||||||
|
|
||||||
|
#[derive(Clone)]
|
||||||
|
pub struct GUIMainNotebook {
|
||||||
|
pub scrolled_window_duplicate_finder: gtk::ScrolledWindow,
|
||||||
|
pub scrolled_window_empty_folder_finder: gtk::ScrolledWindow,
|
||||||
|
pub scrolled_window_empty_files_finder: gtk::ScrolledWindow,
|
||||||
|
pub scrolled_window_temporary_files_finder: gtk::ScrolledWindow,
|
||||||
|
pub scrolled_window_big_files_finder: gtk::ScrolledWindow,
|
||||||
|
pub scrolled_window_similar_images_finder: gtk::ScrolledWindow,
|
||||||
|
pub scrolled_window_zeroed_files_finder: gtk::ScrolledWindow,
|
||||||
|
pub scrolled_window_same_music_finder: gtk::ScrolledWindow,
|
||||||
|
pub scrolled_window_invalid_symlinks: gtk::ScrolledWindow,
|
||||||
|
|
||||||
|
pub tree_view_duplicate_finder: gtk::TreeView,
|
||||||
|
pub tree_view_empty_folder_finder: gtk::TreeView,
|
||||||
|
pub tree_view_empty_files_finder: gtk::TreeView,
|
||||||
|
pub tree_view_temporary_files_finder: gtk::TreeView,
|
||||||
|
pub tree_view_big_files_finder: gtk::TreeView,
|
||||||
|
pub tree_view_similar_images_finder: gtk::TreeView,
|
||||||
|
pub tree_view_zeroed_files_finder: gtk::TreeView,
|
||||||
|
pub tree_view_same_music_finder: gtk::TreeView,
|
||||||
|
pub tree_view_invalid_symlinks: gtk::TreeView,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl GUIMainNotebook {
|
||||||
|
pub fn create_from_builder(builder: >k::Builder) -> Self {
|
||||||
|
let scrolled_window_duplicate_finder: gtk::ScrolledWindow = builder.get_object("scrolled_window_duplicate_finder").unwrap();
|
||||||
|
let scrolled_window_empty_folder_finder: gtk::ScrolledWindow = builder.get_object("scrolled_window_empty_folder_finder").unwrap();
|
||||||
|
let scrolled_window_empty_files_finder: gtk::ScrolledWindow = builder.get_object("scrolled_window_empty_files_finder").unwrap();
|
||||||
|
let scrolled_window_temporary_files_finder: gtk::ScrolledWindow = builder.get_object("scrolled_window_temporary_files_finder").unwrap();
|
||||||
|
let scrolled_window_big_files_finder: gtk::ScrolledWindow = builder.get_object("scrolled_window_big_files_finder").unwrap();
|
||||||
|
let scrolled_window_similar_images_finder: gtk::ScrolledWindow = builder.get_object("scrolled_window_similar_images_finder").unwrap();
|
||||||
|
let scrolled_window_zeroed_files_finder: gtk::ScrolledWindow = builder.get_object("scrolled_window_zeroed_files_finder").unwrap();
|
||||||
|
let scrolled_window_same_music_finder: gtk::ScrolledWindow = builder.get_object("scrolled_window_same_music_finder").unwrap();
|
||||||
|
let scrolled_window_invalid_symlinks: gtk::ScrolledWindow = builder.get_object("scrolled_window_invalid_symlinks").unwrap();
|
||||||
|
|
||||||
|
let tree_view_duplicate_finder: gtk::TreeView = TreeView::new();
|
||||||
|
let tree_view_empty_folder_finder: gtk::TreeView = TreeView::new();
|
||||||
|
let tree_view_empty_files_finder: gtk::TreeView = TreeView::new();
|
||||||
|
let tree_view_temporary_files_finder: gtk::TreeView = TreeView::new();
|
||||||
|
let tree_view_big_files_finder: gtk::TreeView = TreeView::new();
|
||||||
|
let tree_view_similar_images_finder: gtk::TreeView = TreeView::new();
|
||||||
|
let tree_view_zeroed_files_finder: gtk::TreeView = TreeView::new();
|
||||||
|
let tree_view_same_music_finder: gtk::TreeView = TreeView::new();
|
||||||
|
let tree_view_invalid_symlinks: gtk::TreeView = TreeView::new();
|
||||||
|
|
||||||
|
Self {
|
||||||
|
scrolled_window_duplicate_finder,
|
||||||
|
scrolled_window_empty_folder_finder,
|
||||||
|
scrolled_window_empty_files_finder,
|
||||||
|
scrolled_window_temporary_files_finder,
|
||||||
|
scrolled_window_big_files_finder,
|
||||||
|
scrolled_window_similar_images_finder,
|
||||||
|
scrolled_window_zeroed_files_finder,
|
||||||
|
scrolled_window_same_music_finder,
|
||||||
|
scrolled_window_invalid_symlinks,
|
||||||
|
tree_view_duplicate_finder,
|
||||||
|
tree_view_empty_folder_finder,
|
||||||
|
tree_view_empty_files_finder,
|
||||||
|
tree_view_temporary_files_finder,
|
||||||
|
tree_view_big_files_finder,
|
||||||
|
tree_view_similar_images_finder,
|
||||||
|
tree_view_zeroed_files_finder,
|
||||||
|
tree_view_same_music_finder,
|
||||||
|
tree_view_invalid_symlinks,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -10,7 +10,7 @@ use czkawka_core::similar_images::{SimilarImages, Similarity};
|
||||||
use czkawka_core::temporary::Temporary;
|
use czkawka_core::temporary::Temporary;
|
||||||
use czkawka_core::zeroed::ZeroedFiles;
|
use czkawka_core::zeroed::ZeroedFiles;
|
||||||
use gtk::prelude::*;
|
use gtk::prelude::*;
|
||||||
use gtk::{ListStore, TextView, TreeView};
|
use gtk::{ListStore, TextView};
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
|
|
||||||
|
@ -110,8 +110,8 @@ pub const HEADER_ROW_COLOR: &str = "#272727";
|
||||||
//pub const MAIN_ROW_COLOR: &str = "#f4f434"; // TEST
|
//pub const MAIN_ROW_COLOR: &str = "#f4f434"; // TEST
|
||||||
//pub const HEADER_ROW_COLOR: &str = "#010101"; // TEST
|
//pub const HEADER_ROW_COLOR: &str = "#010101"; // TEST
|
||||||
|
|
||||||
pub fn get_string_from_list_store(scrolled_window: >k::ScrolledWindow) -> String {
|
pub fn get_string_from_list_store(tree_view: >k::TreeView) -> String {
|
||||||
let list_store: gtk::ListStore = get_list_store(&scrolled_window);
|
let list_store: gtk::ListStore = get_list_store(&tree_view);
|
||||||
let mut first: bool = true;
|
let mut first: bool = true;
|
||||||
|
|
||||||
let mut return_string: String = "".to_string();
|
let mut return_string: String = "".to_string();
|
||||||
|
@ -263,15 +263,8 @@ pub fn get_text_from_invalid_symlink_cause(error: &invalid_symlinks::ErrorType)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_list_store(scrolled_window: >k::ScrolledWindow) -> ListStore {
|
pub fn get_list_store(tree_view: >k::TreeView) -> ListStore {
|
||||||
let list_store = scrolled_window.get_children().get(0).unwrap().clone().downcast::<gtk::TreeView>().unwrap().get_model().unwrap().downcast::<gtk::ListStore>().unwrap();
|
tree_view.get_model().unwrap().downcast::<gtk::ListStore>().unwrap()
|
||||||
|
|
||||||
list_store
|
|
||||||
}
|
|
||||||
pub fn get_tree_view(scrolled_window: >k::ScrolledWindow) -> TreeView {
|
|
||||||
let tree_view = scrolled_window.get_children().get(0).unwrap().clone().downcast::<gtk::TreeView>().unwrap();
|
|
||||||
|
|
||||||
tree_view
|
|
||||||
}
|
}
|
||||||
pub fn get_dialog_box_child(dialog: >k::Dialog) -> gtk::Box {
|
pub fn get_dialog_box_child(dialog: >k::Dialog) -> gtk::Box {
|
||||||
dialog.get_children()[0].clone().downcast::<gtk::Box>().unwrap()
|
dialog.get_children()[0].clone().downcast::<gtk::Box>().unwrap()
|
||||||
|
|
|
@ -12,7 +12,7 @@ use std::cmp::Ordering;
|
||||||
use std::fs;
|
use std::fs;
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
|
|
||||||
pub fn initialize_gui(gui_data: &GuiData) {
|
pub fn initialize_gui(gui_data: &mut GuiData) {
|
||||||
//// Setup default look(duplicate finder)
|
//// Setup default look(duplicate finder)
|
||||||
{
|
{
|
||||||
let buttons_search = gui_data.buttons_search.clone();
|
let buttons_search = gui_data.buttons_search.clone();
|
||||||
|
@ -20,17 +20,18 @@ pub fn initialize_gui(gui_data: &GuiData) {
|
||||||
let buttons_delete = gui_data.buttons_delete.clone();
|
let buttons_delete = gui_data.buttons_delete.clone();
|
||||||
let buttons_select = gui_data.buttons_select.clone();
|
let buttons_select = gui_data.buttons_select.clone();
|
||||||
let buttons_symlink = gui_data.buttons_symlink.clone();
|
let buttons_symlink = gui_data.buttons_symlink.clone();
|
||||||
let scrolled_window_duplicate_finder = gui_data.scrolled_window_duplicate_finder.clone();
|
let scrolled_window_duplicate_finder = gui_data.main_notebook.scrolled_window_duplicate_finder.clone();
|
||||||
let scrolled_window_main_empty_folder_finder = gui_data.scrolled_window_main_empty_folder_finder.clone();
|
let scrolled_window_empty_folder_finder = gui_data.main_notebook.scrolled_window_empty_folder_finder.clone();
|
||||||
let scrolled_window_main_empty_files_finder = gui_data.scrolled_window_main_empty_files_finder.clone();
|
let scrolled_window_empty_files_finder = gui_data.main_notebook.scrolled_window_empty_files_finder.clone();
|
||||||
let scrolled_window_main_temporary_files_finder = gui_data.scrolled_window_main_temporary_files_finder.clone();
|
let scrolled_window_temporary_files_finder = gui_data.main_notebook.scrolled_window_temporary_files_finder.clone();
|
||||||
let scrolled_window_big_files_finder = gui_data.scrolled_window_big_files_finder.clone();
|
let scrolled_window_big_files_finder = gui_data.main_notebook.scrolled_window_big_files_finder.clone();
|
||||||
let scrolled_window_similar_images_finder = gui_data.scrolled_window_similar_images_finder.clone();
|
let scrolled_window_similar_images_finder = gui_data.main_notebook.scrolled_window_similar_images_finder.clone();
|
||||||
let scrolled_window_same_music_finder = gui_data.scrolled_window_same_music_finder.clone();
|
let scrolled_window_same_music_finder = gui_data.main_notebook.scrolled_window_same_music_finder.clone();
|
||||||
let scrolled_window_invalid_symlinks = gui_data.scrolled_window_invalid_symlinks.clone();
|
let scrolled_window_invalid_symlinks = gui_data.main_notebook.scrolled_window_invalid_symlinks.clone();
|
||||||
let scrolled_window_zeroed_files_finder = gui_data.scrolled_window_zeroed_files_finder.clone();
|
let scrolled_window_zeroed_files_finder = gui_data.main_notebook.scrolled_window_zeroed_files_finder.clone();
|
||||||
let scrolled_window_included_directories = gui_data.scrolled_window_included_directories.clone();
|
let scrolled_window_included_directories = gui_data.scrolled_window_included_directories.clone();
|
||||||
let scrolled_window_excluded_directories = gui_data.scrolled_window_excluded_directories.clone();
|
let scrolled_window_excluded_directories = gui_data.scrolled_window_excluded_directories.clone();
|
||||||
|
|
||||||
let image_preview_similar_images = gui_data.image_preview_similar_images.clone();
|
let image_preview_similar_images = gui_data.image_preview_similar_images.clone();
|
||||||
let check_button_settings_show_preview_similar_images = gui_data.check_button_settings_show_preview_similar_images.clone();
|
let check_button_settings_show_preview_similar_images = gui_data.check_button_settings_show_preview_similar_images.clone();
|
||||||
let text_view_errors = gui_data.text_view_errors.clone();
|
let text_view_errors = gui_data.text_view_errors.clone();
|
||||||
|
@ -69,16 +70,17 @@ pub fn initialize_gui(gui_data: &GuiData) {
|
||||||
// println!("{}", e.get_button());
|
// println!("{}", e.get_button());
|
||||||
gtk::Inhibit(false)
|
gtk::Inhibit(false)
|
||||||
});
|
});
|
||||||
|
|
||||||
|
gui_data.main_notebook.tree_view_duplicate_finder = tree_view.clone();
|
||||||
scrolled_window_duplicate_finder.add(&tree_view);
|
scrolled_window_duplicate_finder.add(&tree_view);
|
||||||
scrolled_window_duplicate_finder.show_all();
|
scrolled_window_duplicate_finder.show_all();
|
||||||
|
|
||||||
let scrolled_window_duplicate_finder = gui_data.scrolled_window_duplicate_finder.clone();
|
|
||||||
let gui_data = gui_data.clone();
|
let gui_data = gui_data.clone();
|
||||||
tree_view.connect_key_release_event(move |_tree_view, e| {
|
tree_view.connect_key_release_event(move |tree_view, e| {
|
||||||
if let Some(button_number) = e.get_keycode() {
|
if let Some(button_number) = e.get_keycode() {
|
||||||
// Handle delete button
|
// Handle delete button
|
||||||
if button_number == 119 {
|
if button_number == 119 {
|
||||||
tree_remove(&scrolled_window_duplicate_finder, ColumnsDuplicates::Name as i32, ColumnsDuplicates::Path as i32, ColumnsDuplicates::Color as i32, &gui_data);
|
tree_remove(&tree_view, ColumnsDuplicates::Name as i32, ColumnsDuplicates::Path as i32, ColumnsDuplicates::Color as i32, &gui_data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
gtk::Inhibit(false)
|
gtk::Inhibit(false)
|
||||||
|
@ -97,16 +99,16 @@ pub fn initialize_gui(gui_data: &GuiData) {
|
||||||
|
|
||||||
tree_view.connect_button_press_event(opening_double_click_function_empty_folders);
|
tree_view.connect_button_press_event(opening_double_click_function_empty_folders);
|
||||||
|
|
||||||
scrolled_window_main_empty_folder_finder.add(&tree_view);
|
gui_data.main_notebook.tree_view_empty_folder_finder = tree_view.clone();
|
||||||
scrolled_window_main_empty_folder_finder.show_all();
|
scrolled_window_empty_folder_finder.add(&tree_view);
|
||||||
|
scrolled_window_empty_folder_finder.show_all();
|
||||||
|
|
||||||
let scrolled_window_main_empty_folder_finder = gui_data.scrolled_window_main_empty_folder_finder.clone();
|
|
||||||
let gui_data = gui_data.clone();
|
let gui_data = gui_data.clone();
|
||||||
tree_view.connect_key_release_event(move |_tree_view, e| {
|
tree_view.connect_key_release_event(move |tree_view, e| {
|
||||||
if let Some(button_number) = e.get_keycode() {
|
if let Some(button_number) = e.get_keycode() {
|
||||||
// Handle delete button
|
// Handle delete button
|
||||||
if button_number == 119 {
|
if button_number == 119 {
|
||||||
empty_folder_remover(&scrolled_window_main_empty_folder_finder, ColumnsEmptyFolders::Name as i32, ColumnsEmptyFolders::Path as i32, &gui_data);
|
empty_folder_remover(&tree_view, ColumnsEmptyFolders::Name as i32, ColumnsEmptyFolders::Path as i32, &gui_data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
gtk::Inhibit(false)
|
gtk::Inhibit(false)
|
||||||
|
@ -125,16 +127,16 @@ pub fn initialize_gui(gui_data: &GuiData) {
|
||||||
|
|
||||||
tree_view.connect_button_press_event(opening_double_click_function_empty_files);
|
tree_view.connect_button_press_event(opening_double_click_function_empty_files);
|
||||||
|
|
||||||
scrolled_window_main_empty_files_finder.add(&tree_view);
|
gui_data.main_notebook.tree_view_empty_files_finder = tree_view.clone();
|
||||||
scrolled_window_main_empty_files_finder.show_all();
|
scrolled_window_empty_files_finder.add(&tree_view);
|
||||||
|
scrolled_window_empty_files_finder.show_all();
|
||||||
|
|
||||||
let scrolled_window_main_empty_files_finder = gui_data.scrolled_window_main_empty_files_finder.clone();
|
|
||||||
let gui_data = gui_data.clone();
|
let gui_data = gui_data.clone();
|
||||||
tree_view.connect_key_release_event(move |_tree_view, e| {
|
tree_view.connect_key_release_event(move |tree_view, e| {
|
||||||
if let Some(button_number) = e.get_keycode() {
|
if let Some(button_number) = e.get_keycode() {
|
||||||
// Handle delete button
|
// Handle delete button
|
||||||
if button_number == 119 {
|
if button_number == 119 {
|
||||||
basic_remove(&scrolled_window_main_empty_files_finder, ColumnsEmptyFiles::Name as i32, ColumnsEmptyFiles::Path as i32, &gui_data);
|
basic_remove(&tree_view, ColumnsEmptyFiles::Name as i32, ColumnsEmptyFiles::Path as i32, &gui_data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
gtk::Inhibit(false)
|
gtk::Inhibit(false)
|
||||||
|
@ -153,16 +155,16 @@ pub fn initialize_gui(gui_data: &GuiData) {
|
||||||
|
|
||||||
tree_view.connect_button_press_event(opening_double_click_function_temporary_files);
|
tree_view.connect_button_press_event(opening_double_click_function_temporary_files);
|
||||||
|
|
||||||
scrolled_window_main_temporary_files_finder.add(&tree_view);
|
gui_data.main_notebook.tree_view_temporary_files_finder = tree_view.clone();
|
||||||
scrolled_window_main_temporary_files_finder.show_all();
|
scrolled_window_temporary_files_finder.add(&tree_view);
|
||||||
|
scrolled_window_temporary_files_finder.show_all();
|
||||||
|
|
||||||
let scrolled_window_main_temporary_files_finder = gui_data.scrolled_window_main_temporary_files_finder.clone();
|
|
||||||
let gui_data = gui_data.clone();
|
let gui_data = gui_data.clone();
|
||||||
tree_view.connect_key_release_event(move |_tree_view, e| {
|
tree_view.connect_key_release_event(move |tree_view, e| {
|
||||||
if let Some(button_number) = e.get_keycode() {
|
if let Some(button_number) = e.get_keycode() {
|
||||||
// Handle delete button
|
// Handle delete button
|
||||||
if button_number == 119 {
|
if button_number == 119 {
|
||||||
basic_remove(&scrolled_window_main_temporary_files_finder, ColumnsTemporaryFiles::Name as i32, ColumnsTemporaryFiles::Path as i32, &gui_data);
|
basic_remove(&tree_view, ColumnsTemporaryFiles::Name as i32, ColumnsTemporaryFiles::Path as i32, &gui_data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
gtk::Inhibit(false)
|
gtk::Inhibit(false)
|
||||||
|
@ -181,16 +183,16 @@ pub fn initialize_gui(gui_data: &GuiData) {
|
||||||
|
|
||||||
tree_view.connect_button_press_event(opening_double_click_function_big_files);
|
tree_view.connect_button_press_event(opening_double_click_function_big_files);
|
||||||
|
|
||||||
|
gui_data.main_notebook.tree_view_big_files_finder = tree_view.clone();
|
||||||
scrolled_window_big_files_finder.add(&tree_view);
|
scrolled_window_big_files_finder.add(&tree_view);
|
||||||
scrolled_window_big_files_finder.show_all();
|
scrolled_window_big_files_finder.show_all();
|
||||||
|
|
||||||
let scrolled_window_big_files_finder = gui_data.scrolled_window_big_files_finder.clone();
|
|
||||||
let gui_data = gui_data.clone();
|
let gui_data = gui_data.clone();
|
||||||
tree_view.connect_key_release_event(move |_tree_view, e| {
|
tree_view.connect_key_release_event(move |tree_view, e| {
|
||||||
if let Some(button_number) = e.get_keycode() {
|
if let Some(button_number) = e.get_keycode() {
|
||||||
// Handle delete button
|
// Handle delete button
|
||||||
if button_number == 119 {
|
if button_number == 119 {
|
||||||
basic_remove(&scrolled_window_big_files_finder, ColumnsBigFiles::Name as i32, ColumnsBigFiles::Path as i32, &gui_data);
|
basic_remove(&tree_view, ColumnsBigFiles::Name as i32, ColumnsBigFiles::Path as i32, &gui_data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
gtk::Inhibit(false)
|
gtk::Inhibit(false)
|
||||||
|
@ -303,22 +305,16 @@ pub fn initialize_gui(gui_data: &GuiData) {
|
||||||
gtk::Inhibit(false)
|
gtk::Inhibit(false)
|
||||||
});
|
});
|
||||||
|
|
||||||
|
gui_data.main_notebook.tree_view_similar_images_finder = tree_view.clone();
|
||||||
scrolled_window_similar_images_finder.add(&tree_view);
|
scrolled_window_similar_images_finder.add(&tree_view);
|
||||||
scrolled_window_similar_images_finder.show_all();
|
scrolled_window_similar_images_finder.show_all();
|
||||||
|
|
||||||
let scrolled_window_similar_images_finder = gui_data.scrolled_window_similar_images_finder.clone();
|
|
||||||
let gui_data = gui_data.clone();
|
let gui_data = gui_data.clone();
|
||||||
tree_view.connect_key_release_event(move |_tree_view, e| {
|
tree_view.connect_key_release_event(move |tree_view, e| {
|
||||||
if let Some(button_number) = e.get_keycode() {
|
if let Some(button_number) = e.get_keycode() {
|
||||||
// Handle delete button
|
// Handle delete button
|
||||||
if button_number == 119 {
|
if button_number == 119 {
|
||||||
tree_remove(
|
tree_remove(&tree_view, ColumnsSimilarImages::Name as i32, ColumnsSimilarImages::Path as i32, ColumnsSimilarImages::Color as i32, &gui_data);
|
||||||
&scrolled_window_similar_images_finder,
|
|
||||||
ColumnsSimilarImages::Name as i32,
|
|
||||||
ColumnsSimilarImages::Path as i32,
|
|
||||||
ColumnsSimilarImages::Color as i32,
|
|
||||||
&gui_data,
|
|
||||||
);
|
|
||||||
image_preview_similar_images_clone.hide();
|
image_preview_similar_images_clone.hide();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -338,16 +334,16 @@ pub fn initialize_gui(gui_data: &GuiData) {
|
||||||
|
|
||||||
tree_view.connect_button_press_event(opening_double_click_function_zeroed_files);
|
tree_view.connect_button_press_event(opening_double_click_function_zeroed_files);
|
||||||
|
|
||||||
|
gui_data.main_notebook.tree_view_zeroed_files_finder = tree_view.clone();
|
||||||
scrolled_window_zeroed_files_finder.add(&tree_view);
|
scrolled_window_zeroed_files_finder.add(&tree_view);
|
||||||
scrolled_window_zeroed_files_finder.show_all();
|
scrolled_window_zeroed_files_finder.show_all();
|
||||||
|
|
||||||
let scrolled_window_zeroed_files_finder = gui_data.scrolled_window_zeroed_files_finder.clone();
|
|
||||||
let gui_data = gui_data.clone();
|
let gui_data = gui_data.clone();
|
||||||
tree_view.connect_key_release_event(move |_tree_view, e| {
|
tree_view.connect_key_release_event(move |tree_view, e| {
|
||||||
if let Some(button_number) = e.get_keycode() {
|
if let Some(button_number) = e.get_keycode() {
|
||||||
// Handle delete button
|
// Handle delete button
|
||||||
if button_number == 119 {
|
if button_number == 119 {
|
||||||
basic_remove(&scrolled_window_zeroed_files_finder, ColumnsZeroedFiles::Name as i32, ColumnsZeroedFiles::Path as i32, &gui_data);
|
basic_remove(&tree_view, ColumnsZeroedFiles::Name as i32, ColumnsZeroedFiles::Path as i32, &gui_data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
gtk::Inhibit(false)
|
gtk::Inhibit(false)
|
||||||
|
@ -381,16 +377,16 @@ pub fn initialize_gui(gui_data: &GuiData) {
|
||||||
|
|
||||||
tree_view.connect_button_press_event(opening_double_click_function_same_music);
|
tree_view.connect_button_press_event(opening_double_click_function_same_music);
|
||||||
|
|
||||||
|
gui_data.main_notebook.tree_view_same_music_finder = tree_view.clone();
|
||||||
scrolled_window_same_music_finder.add(&tree_view);
|
scrolled_window_same_music_finder.add(&tree_view);
|
||||||
scrolled_window_same_music_finder.show_all();
|
scrolled_window_same_music_finder.show_all();
|
||||||
|
|
||||||
let scrolled_window_same_music_finder = gui_data.scrolled_window_same_music_finder.clone();
|
|
||||||
let gui_data = gui_data.clone();
|
let gui_data = gui_data.clone();
|
||||||
tree_view.connect_key_release_event(move |_tree_view, e| {
|
tree_view.connect_key_release_event(move |tree_view, e| {
|
||||||
if let Some(button_number) = e.get_keycode() {
|
if let Some(button_number) = e.get_keycode() {
|
||||||
// Handle delete button
|
// Handle delete button
|
||||||
if button_number == 119 {
|
if button_number == 119 {
|
||||||
tree_remove(&scrolled_window_same_music_finder, ColumnsSameMusic::Name as i32, ColumnsSameMusic::Path as i32, ColumnsSameMusic::Color as i32, &gui_data);
|
tree_remove(&tree_view, ColumnsSameMusic::Name as i32, ColumnsSameMusic::Path as i32, ColumnsSameMusic::Color as i32, &gui_data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
gtk::Inhibit(false)
|
gtk::Inhibit(false)
|
||||||
|
@ -409,16 +405,16 @@ pub fn initialize_gui(gui_data: &GuiData) {
|
||||||
|
|
||||||
tree_view.connect_button_press_event(opening_double_click_function_invalid_symlinks);
|
tree_view.connect_button_press_event(opening_double_click_function_invalid_symlinks);
|
||||||
|
|
||||||
|
gui_data.main_notebook.tree_view_invalid_symlinks = tree_view.clone();
|
||||||
scrolled_window_invalid_symlinks.add(&tree_view);
|
scrolled_window_invalid_symlinks.add(&tree_view);
|
||||||
scrolled_window_invalid_symlinks.show_all();
|
scrolled_window_invalid_symlinks.show_all();
|
||||||
|
|
||||||
let scrolled_window_invalid_symlinks = gui_data.scrolled_window_invalid_symlinks.clone();
|
|
||||||
let gui_data = gui_data.clone();
|
let gui_data = gui_data.clone();
|
||||||
tree_view.connect_key_release_event(move |_tree_view, e| {
|
tree_view.connect_key_release_event(move |tree_view, e| {
|
||||||
if let Some(button_number) = e.get_keycode() {
|
if let Some(button_number) = e.get_keycode() {
|
||||||
// Handle delete button
|
// Handle delete button
|
||||||
if button_number == 119 {
|
if button_number == 119 {
|
||||||
basic_remove(&scrolled_window_invalid_symlinks, ColumnsInvalidSymlinks::Name as i32, ColumnsInvalidSymlinks::Path as i32, &gui_data);
|
basic_remove(&tree_view, ColumnsInvalidSymlinks::Name as i32, ColumnsInvalidSymlinks::Path as i32, &gui_data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
gtk::Inhibit(false)
|
gtk::Inhibit(false)
|
||||||
|
@ -437,15 +433,15 @@ pub fn initialize_gui(gui_data: &GuiData) {
|
||||||
|
|
||||||
create_tree_view_directories(&mut tree_view);
|
create_tree_view_directories(&mut tree_view);
|
||||||
|
|
||||||
|
gui_data.tree_view_included_directories = tree_view.clone();
|
||||||
scrolled_window_included_directories.add(&tree_view);
|
scrolled_window_included_directories.add(&tree_view);
|
||||||
scrolled_window_included_directories.show_all();
|
scrolled_window_included_directories.show_all();
|
||||||
|
|
||||||
tree_view.connect_key_release_event(move |_tree_view, e| {
|
tree_view.connect_key_release_event(move |tree_view, e| {
|
||||||
if let Some(button_number) = e.get_keycode() {
|
if let Some(button_number) = e.get_keycode() {
|
||||||
// Handle delete button
|
// Handle delete button
|
||||||
if button_number == 119 {
|
if button_number == 119 {
|
||||||
let tree_view = get_tree_view(&scrolled_window_included_directories);
|
let list_store = get_list_store(&tree_view);
|
||||||
let list_store = get_list_store(&scrolled_window_included_directories);
|
|
||||||
let selection = tree_view.get_selection();
|
let selection = tree_view.get_selection();
|
||||||
|
|
||||||
let (vec_tree_path, _tree_model) = selection.get_selected_rows();
|
let (vec_tree_path, _tree_model) = selection.get_selected_rows();
|
||||||
|
@ -469,15 +465,15 @@ pub fn initialize_gui(gui_data: &GuiData) {
|
||||||
|
|
||||||
create_tree_view_directories(&mut tree_view);
|
create_tree_view_directories(&mut tree_view);
|
||||||
|
|
||||||
|
gui_data.tree_view_excluded_directories = tree_view.clone();
|
||||||
scrolled_window_excluded_directories.add(&tree_view);
|
scrolled_window_excluded_directories.add(&tree_view);
|
||||||
scrolled_window_excluded_directories.show_all();
|
scrolled_window_excluded_directories.show_all();
|
||||||
|
|
||||||
tree_view.connect_key_release_event(move |_tree_view, e| {
|
tree_view.connect_key_release_event(move |tree_view, e| {
|
||||||
if let Some(button_number) = e.get_keycode() {
|
if let Some(button_number) = e.get_keycode() {
|
||||||
// Handle delete button
|
// Handle delete button
|
||||||
if button_number == 119 {
|
if button_number == 119 {
|
||||||
let tree_view = get_tree_view(&scrolled_window_excluded_directories);
|
let list_store = get_list_store(&tree_view);
|
||||||
let list_store = get_list_store(&scrolled_window_excluded_directories);
|
|
||||||
let selection = tree_view.get_selection();
|
let selection = tree_view.get_selection();
|
||||||
|
|
||||||
let (vec_tree_path, _tree_model) = selection.get_selected_rows();
|
let (vec_tree_path, _tree_model) = selection.get_selected_rows();
|
||||||
|
|
|
@ -17,6 +17,7 @@ mod connect_settings;
|
||||||
mod create_tree_view;
|
mod create_tree_view;
|
||||||
mod double_click_opening;
|
mod double_click_opening;
|
||||||
mod gui_data;
|
mod gui_data;
|
||||||
|
mod gui_main_notebook;
|
||||||
mod help_functions;
|
mod help_functions;
|
||||||
mod initialize_gui;
|
mod initialize_gui;
|
||||||
mod notebook_enums;
|
mod notebook_enums;
|
||||||
|
@ -63,7 +64,7 @@ fn main() {
|
||||||
|
|
||||||
gtk::init().expect("Failed to initialize GTK.");
|
gtk::init().expect("Failed to initialize GTK.");
|
||||||
|
|
||||||
let gui_data: GuiData = GuiData::new();
|
let mut gui_data: GuiData = GuiData::new();
|
||||||
|
|
||||||
// Used for getting data from thread
|
// Used for getting data from thread
|
||||||
let (glib_stop_sender, glib_stop_receiver) = glib::MainContext::channel(glib::PRIORITY_DEFAULT);
|
let (glib_stop_sender, glib_stop_receiver) = glib::MainContext::channel(glib::PRIORITY_DEFAULT);
|
||||||
|
@ -79,7 +80,7 @@ fn main() {
|
||||||
let (futures_sender_zeroed, futures_receiver_zeroed): (futures::channel::mpsc::Sender<zeroed::ProgressData>, futures::channel::mpsc::Receiver<zeroed::ProgressData>) = futures::channel::mpsc::channel(20);
|
let (futures_sender_zeroed, futures_receiver_zeroed): (futures::channel::mpsc::Sender<zeroed::ProgressData>, futures::channel::mpsc::Receiver<zeroed::ProgressData>) = futures::channel::mpsc::channel(20);
|
||||||
let (futures_sender_invalid_symlinks, futures_receiver_invalid_symlinks): (futures::channel::mpsc::Sender<invalid_symlinks::ProgressData>, futures::channel::mpsc::Receiver<invalid_symlinks::ProgressData>) = futures::channel::mpsc::channel(20);
|
let (futures_sender_invalid_symlinks, futures_receiver_invalid_symlinks): (futures::channel::mpsc::Sender<invalid_symlinks::ProgressData>, futures::channel::mpsc::Receiver<invalid_symlinks::ProgressData>) = futures::channel::mpsc::channel(20);
|
||||||
|
|
||||||
initialize_gui(&gui_data);
|
initialize_gui(&mut gui_data);
|
||||||
reset_configuration(&gui_data, false); // Fallback for invalid loading setting project
|
reset_configuration(&gui_data, false); // Fallback for invalid loading setting project
|
||||||
load_configuration(&gui_data, false);
|
load_configuration(&gui_data, false);
|
||||||
|
|
||||||
|
|
|
@ -42,8 +42,8 @@ pub fn save_configuration(gui_data: &GuiData, manual_execution: bool) {
|
||||||
|
|
||||||
//// Included Directories
|
//// Included Directories
|
||||||
data_to_save.push("--included_directories:".to_string());
|
data_to_save.push("--included_directories:".to_string());
|
||||||
let scrolled_window_included_directories = gui_data.scrolled_window_included_directories.clone();
|
let tree_view_included_directories = gui_data.tree_view_included_directories.clone();
|
||||||
let list_store = get_list_store(&scrolled_window_included_directories);
|
let list_store = get_list_store(&tree_view_included_directories);
|
||||||
if let Some(iter) = list_store.get_iter_first() {
|
if let Some(iter) = list_store.get_iter_first() {
|
||||||
loop {
|
loop {
|
||||||
data_to_save.push(list_store.get_value(&iter, ColumnsDirectory::Path as i32).get::<String>().unwrap().unwrap());
|
data_to_save.push(list_store.get_value(&iter, ColumnsDirectory::Path as i32).get::<String>().unwrap().unwrap());
|
||||||
|
@ -55,8 +55,8 @@ pub fn save_configuration(gui_data: &GuiData, manual_execution: bool) {
|
||||||
|
|
||||||
//// Excluded Directories
|
//// Excluded Directories
|
||||||
data_to_save.push("--excluded_directories:".to_string());
|
data_to_save.push("--excluded_directories:".to_string());
|
||||||
let scrolled_window_excluded_directories = gui_data.scrolled_window_excluded_directories.clone();
|
let tree_view_excluded_directories = gui_data.tree_view_excluded_directories.clone();
|
||||||
let list_store = get_list_store(&scrolled_window_excluded_directories);
|
let list_store = get_list_store(&tree_view_excluded_directories);
|
||||||
if let Some(iter) = list_store.get_iter_first() {
|
if let Some(iter) = list_store.get_iter_first() {
|
||||||
loop {
|
loop {
|
||||||
data_to_save.push(list_store.get_value(&iter, ColumnsDirectory::Path as i32).get::<String>().unwrap().unwrap());
|
data_to_save.push(list_store.get_value(&iter, ColumnsDirectory::Path as i32).get::<String>().unwrap().unwrap());
|
||||||
|
@ -323,8 +323,8 @@ pub fn load_configuration(gui_data: &GuiData, manual_execution: bool) {
|
||||||
// Setting data
|
// Setting data
|
||||||
if manual_execution || loading_at_start {
|
if manual_execution || loading_at_start {
|
||||||
//// Included Directories
|
//// Included Directories
|
||||||
let scrolled_window_included_directories = gui_data.scrolled_window_included_directories.clone();
|
let tree_view_included_directories = gui_data.tree_view_included_directories.clone();
|
||||||
let list_store = get_list_store(&scrolled_window_included_directories);
|
let list_store = get_list_store(&tree_view_included_directories);
|
||||||
list_store.clear();
|
list_store.clear();
|
||||||
|
|
||||||
let col_indices = [0];
|
let col_indices = [0];
|
||||||
|
@ -335,8 +335,8 @@ pub fn load_configuration(gui_data: &GuiData, manual_execution: bool) {
|
||||||
}
|
}
|
||||||
|
|
||||||
//// Exclude Directories
|
//// Exclude Directories
|
||||||
let scrolled_window_excluded_directories = gui_data.scrolled_window_excluded_directories.clone();
|
let tree_view_excluded_directories = gui_data.tree_view_excluded_directories.clone();
|
||||||
let list_store = get_list_store(&scrolled_window_excluded_directories);
|
let list_store = get_list_store(&tree_view_excluded_directories);
|
||||||
list_store.clear();
|
list_store.clear();
|
||||||
|
|
||||||
let col_indices = [0];
|
let col_indices = [0];
|
||||||
|
@ -362,9 +362,9 @@ pub fn load_configuration(gui_data: &GuiData, manual_execution: bool) {
|
||||||
|
|
||||||
gui_data.check_button_settings_show_text_view.set_active(bottom_text_panel);
|
gui_data.check_button_settings_show_text_view.set_active(bottom_text_panel);
|
||||||
if !bottom_text_panel {
|
if !bottom_text_panel {
|
||||||
gui_data.scrolled_window_errors.hide();
|
gui_data.text_view_errors.hide();
|
||||||
} else {
|
} else {
|
||||||
gui_data.scrolled_window_errors.show();
|
gui_data.text_view_errors.show();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
gui_data.check_button_settings_load_at_start.set_active(false);
|
gui_data.check_button_settings_load_at_start.set_active(false);
|
||||||
|
@ -387,8 +387,8 @@ pub fn reset_configuration(gui_data: &GuiData, manual_clearing: bool) {
|
||||||
// Resetting included directories
|
// Resetting included directories
|
||||||
{
|
{
|
||||||
let col_indices = [0];
|
let col_indices = [0];
|
||||||
let scrolled_window_included_directories = gui_data.scrolled_window_included_directories.clone();
|
let tree_view_included_directories = gui_data.tree_view_included_directories.clone();
|
||||||
let list_store = get_list_store(&scrolled_window_included_directories);
|
let list_store = get_list_store(&tree_view_included_directories);
|
||||||
list_store.clear();
|
list_store.clear();
|
||||||
|
|
||||||
let current_dir: String = match env::current_dir() {
|
let current_dir: String = match env::current_dir() {
|
||||||
|
@ -412,8 +412,8 @@ pub fn reset_configuration(gui_data: &GuiData, manual_clearing: bool) {
|
||||||
// Resetting excluded directories
|
// Resetting excluded directories
|
||||||
{
|
{
|
||||||
let col_indices = [0];
|
let col_indices = [0];
|
||||||
let scrolled_window_excluded_directories = gui_data.scrolled_window_excluded_directories.clone();
|
let tree_view_excluded_directories = gui_data.tree_view_excluded_directories.clone();
|
||||||
let list_store = get_list_store(&scrolled_window_excluded_directories);
|
let list_store = get_list_store(&tree_view_excluded_directories);
|
||||||
list_store.clear();
|
list_store.clear();
|
||||||
if cfg!(target_family = "unix") {
|
if cfg!(target_family = "unix") {
|
||||||
for i in ["/proc", "/dev", "/sys", "/run", "/snap"].iter() {
|
for i in ["/proc", "/dev", "/sys", "/run", "/snap"].iter() {
|
||||||
|
|
Loading…
Reference in a new issue