1
0
Fork 0
mirror of synced 2024-05-22 05:13:39 +12:00

Added support for opening files by double clicks (#70)

This commit is contained in:
Rafał Mikrut 2020-10-15 10:42:27 +02:00 committed by GitHub
parent 1178e145ae
commit 4fed419856
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 121 additions and 1 deletions

View file

@ -0,0 +1,102 @@
use crate::help_functions::*;
use gtk::prelude::*;
pub fn opening_double_click_function_similar_images(tree_view: &gtk::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: &gtk::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: &gtk::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: &gtk::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: &gtk::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: &gtk::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)
}

View file

@ -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
{