Added support for opening files by double clicks (#70)
This commit is contained in:
parent
1178e145ae
commit
4fed419856
102
czkawka_gui/src/double_click_opening.rs
Normal file
102
czkawka_gui/src/double_click_opening.rs
Normal file
|
@ -0,0 +1,102 @@
|
|||
use crate::help_functions::*;
|
||||
use gtk::prelude::*;
|
||||
|
||||
pub fn opening_double_click_function_similar_images(tree_view: >k::TreeView, event: &gdk::EventButton) -> gtk::Inhibit {
|
||||
if event.get_event_type() == gdk::EventType::DoubleButtonPress {
|
||||
let selection = tree_view.get_selection();
|
||||
let (selection_rows, tree_model) = selection.get_selected_rows();
|
||||
|
||||
for tree_path in selection_rows.iter().rev() {
|
||||
let name = tree_model.get_value(&tree_model.get_iter(tree_path).unwrap(), ColumnsSimilarImages::Name as i32).get::<String>().unwrap().unwrap();
|
||||
let path = tree_model.get_value(&tree_model.get_iter(tree_path).unwrap(), ColumnsSimilarImages::Path as i32).get::<String>().unwrap().unwrap();
|
||||
|
||||
if open::that(format!("{}/{}", path, name)).is_err() {
|
||||
println!("Failed to open {}/{}", path, name);
|
||||
}
|
||||
}
|
||||
}
|
||||
gtk::Inhibit(false)
|
||||
}
|
||||
|
||||
pub fn opening_double_click_function_duplicates(tree_view: >k::TreeView, event: &gdk::EventButton) -> gtk::Inhibit {
|
||||
if event.get_event_type() == gdk::EventType::DoubleButtonPress {
|
||||
let selection = tree_view.get_selection();
|
||||
let (selection_rows, tree_model) = selection.get_selected_rows();
|
||||
|
||||
for tree_path in selection_rows.iter().rev() {
|
||||
let name = tree_model.get_value(&tree_model.get_iter(tree_path).unwrap(), ColumnsDuplicates::Name as i32).get::<String>().unwrap().unwrap();
|
||||
let path = tree_model.get_value(&tree_model.get_iter(tree_path).unwrap(), ColumnsDuplicates::Path as i32).get::<String>().unwrap().unwrap();
|
||||
|
||||
if open::that(format!("{}/{}", path, name)).is_err() {
|
||||
println!("Failed to open {}/{}", path, name);
|
||||
}
|
||||
}
|
||||
}
|
||||
gtk::Inhibit(false)
|
||||
}
|
||||
pub fn opening_double_click_function_empty_folders(tree_view: >k::TreeView, event: &gdk::EventButton) -> gtk::Inhibit {
|
||||
if event.get_event_type() == gdk::EventType::DoubleButtonPress {
|
||||
let selection = tree_view.get_selection();
|
||||
let (selection_rows, tree_model) = selection.get_selected_rows();
|
||||
|
||||
for tree_path in selection_rows.iter().rev() {
|
||||
let name = tree_model.get_value(&tree_model.get_iter(tree_path).unwrap(), ColumnsEmptyFolders::Name as i32).get::<String>().unwrap().unwrap();
|
||||
let path = tree_model.get_value(&tree_model.get_iter(tree_path).unwrap(), ColumnsEmptyFolders::Path as i32).get::<String>().unwrap().unwrap();
|
||||
|
||||
if open::that(format!("{}/{}", path, name)).is_err() {
|
||||
println!("Failed to open {}/{}", path, name);
|
||||
}
|
||||
}
|
||||
}
|
||||
gtk::Inhibit(false)
|
||||
}
|
||||
pub fn opening_double_click_function_empty_files(tree_view: >k::TreeView, event: &gdk::EventButton) -> gtk::Inhibit {
|
||||
if event.get_event_type() == gdk::EventType::DoubleButtonPress {
|
||||
let selection = tree_view.get_selection();
|
||||
let (selection_rows, tree_model) = selection.get_selected_rows();
|
||||
|
||||
for tree_path in selection_rows.iter().rev() {
|
||||
let name = tree_model.get_value(&tree_model.get_iter(tree_path).unwrap(), ColumnsEmptyFiles::Name as i32).get::<String>().unwrap().unwrap();
|
||||
let path = tree_model.get_value(&tree_model.get_iter(tree_path).unwrap(), ColumnsEmptyFiles::Path as i32).get::<String>().unwrap().unwrap();
|
||||
|
||||
if open::that(format!("{}/{}", path, name)).is_err() {
|
||||
println!("Failed to open {}/{}", path, name);
|
||||
}
|
||||
}
|
||||
}
|
||||
gtk::Inhibit(false)
|
||||
}
|
||||
|
||||
pub fn opening_double_click_function_temporary_files(tree_view: >k::TreeView, event: &gdk::EventButton) -> gtk::Inhibit {
|
||||
if event.get_event_type() == gdk::EventType::DoubleButtonPress {
|
||||
let selection = tree_view.get_selection();
|
||||
let (selection_rows, tree_model) = selection.get_selected_rows();
|
||||
|
||||
for tree_path in selection_rows.iter().rev() {
|
||||
let name = tree_model.get_value(&tree_model.get_iter(tree_path).unwrap(), ColumnsTemporaryFiles::Name as i32).get::<String>().unwrap().unwrap();
|
||||
let path = tree_model.get_value(&tree_model.get_iter(tree_path).unwrap(), ColumnsTemporaryFiles::Path as i32).get::<String>().unwrap().unwrap();
|
||||
|
||||
if open::that(format!("{}/{}", path, name)).is_err() {
|
||||
println!("Failed to open {}/{}", path, name);
|
||||
}
|
||||
}
|
||||
}
|
||||
gtk::Inhibit(false)
|
||||
}
|
||||
|
||||
pub fn opening_double_click_function_big_files(tree_view: >k::TreeView, event: &gdk::EventButton) -> gtk::Inhibit {
|
||||
if event.get_event_type() == gdk::EventType::DoubleButtonPress {
|
||||
let selection = tree_view.get_selection();
|
||||
let (selection_rows, tree_model) = selection.get_selected_rows();
|
||||
|
||||
for tree_path in selection_rows.iter().rev() {
|
||||
let name = tree_model.get_value(&tree_model.get_iter(tree_path).unwrap(), ColumnsBigFiles::Name as i32).get::<String>().unwrap().unwrap();
|
||||
let path = tree_model.get_value(&tree_model.get_iter(tree_path).unwrap(), ColumnsBigFiles::Path as i32).get::<String>().unwrap().unwrap();
|
||||
|
||||
if open::that(format!("{}/{}", path, name)).is_err() {
|
||||
println!("Failed to open {}/{}", path, name);
|
||||
}
|
||||
}
|
||||
}
|
||||
gtk::Inhibit(false)
|
||||
}
|
|
@ -1,9 +1,13 @@
|
|||
mod double_click_opening;
|
||||
mod help_functions;
|
||||
|
||||
use czkawka_core::*;
|
||||
use humansize::{file_size_opts as options, FileSize};
|
||||
|
||||
// TODO split it across mutliple files
|
||||
|
||||
extern crate gtk;
|
||||
use crate::double_click_opening::*;
|
||||
use crate::help_functions::*;
|
||||
use chrono::NaiveDateTime;
|
||||
use crossbeam_channel::unbounded;
|
||||
|
@ -248,6 +252,8 @@ fn main() {
|
|||
|
||||
create_tree_view_duplicates(&mut tree_view);
|
||||
|
||||
tree_view.connect_button_press_event(opening_double_click_function_duplicates);
|
||||
|
||||
scrolled_window_duplicate_finder.add(&tree_view);
|
||||
scrolled_window_duplicate_finder.show_all();
|
||||
}
|
||||
|
@ -262,6 +268,8 @@ fn main() {
|
|||
|
||||
create_tree_view_empty_folders(&mut tree_view);
|
||||
|
||||
tree_view.connect_button_press_event(opening_double_click_function_empty_folders);
|
||||
|
||||
scrolled_window_main_empty_folder_finder.add(&tree_view);
|
||||
scrolled_window_main_empty_folder_finder.show_all();
|
||||
}
|
||||
|
@ -276,6 +284,8 @@ fn main() {
|
|||
|
||||
create_tree_view_empty_files(&mut tree_view);
|
||||
|
||||
tree_view.connect_button_press_event(opening_double_click_function_empty_files);
|
||||
|
||||
scrolled_window_main_empty_files_finder.add(&tree_view);
|
||||
scrolled_window_main_empty_files_finder.show_all();
|
||||
}
|
||||
|
@ -290,6 +300,8 @@ fn main() {
|
|||
|
||||
create_tree_view_temporary_files(&mut tree_view);
|
||||
|
||||
tree_view.connect_button_press_event(opening_double_click_function_temporary_files);
|
||||
|
||||
scrolled_window_main_temporary_files_finder.add(&tree_view);
|
||||
scrolled_window_main_temporary_files_finder.show_all();
|
||||
}
|
||||
|
@ -304,6 +316,8 @@ fn main() {
|
|||
|
||||
create_tree_view_big_files(&mut tree_view);
|
||||
|
||||
tree_view.connect_button_press_event(opening_double_click_function_big_files);
|
||||
|
||||
scrolled_window_big_files_finder.add(&tree_view);
|
||||
scrolled_window_big_files_finder.show_all();
|
||||
}
|
||||
|
@ -320,6 +334,8 @@ fn main() {
|
|||
|
||||
create_tree_view_similar_images(&mut tree_view);
|
||||
|
||||
tree_view.connect_button_press_event(opening_double_click_function_similar_images);
|
||||
|
||||
scrolled_window_similar_images_finder.add(&tree_view);
|
||||
scrolled_window_similar_images_finder.show_all();
|
||||
}
|
||||
|
@ -448,6 +464,8 @@ fn main() {
|
|||
});
|
||||
}
|
||||
|
||||
// Connect double click
|
||||
|
||||
//// Connect Buttons
|
||||
|
||||
// Main buttons
|
||||
|
@ -1301,7 +1319,7 @@ fn main() {
|
|||
});
|
||||
}
|
||||
}
|
||||
// Upper Notepad
|
||||
// Upper Notebook
|
||||
{
|
||||
// Add included directory
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue