1
0
Fork 0
mirror of synced 2024-05-03 12:03:22 +12:00
czkawka/czkawka_gui/src/gui_settings.rs
Rafał Mikrut 5836e3e5b3
GTK 4 compatibility fixes (#467)
App still require GTK 3.22(3.24 in near future), but converting to GTK 4 should be easier and faster
2021-11-27 16:44:30 +01:00

81 lines
4.2 KiB
Rust

use gtk::prelude::*;
use gtk::{Builder, Window};
#[derive(Clone)]
pub struct GuiSettings {
pub window_settings: gtk::Window,
// General
pub check_button_settings_save_at_exit: gtk::CheckButton,
pub check_button_settings_load_at_start: gtk::CheckButton,
pub check_button_settings_confirm_deletion: gtk::CheckButton,
pub check_button_settings_confirm_group_deletion: gtk::CheckButton,
pub check_button_settings_show_text_view: gtk::CheckButton,
pub check_button_settings_use_cache: gtk::CheckButton,
pub check_button_settings_use_trash: gtk::CheckButton,
// Duplicates
pub check_button_settings_hide_hard_links: gtk::CheckButton,
pub entry_settings_cache_file_minimal_size: gtk::Entry,
pub check_button_settings_show_preview_duplicates: gtk::CheckButton,
// Similar Images
pub check_button_settings_show_preview_similar_images: gtk::CheckButton,
// Buttons
pub button_settings_save_configuration: gtk::Button,
pub button_settings_load_configuration: gtk::Button,
pub button_settings_reset_configuration: gtk::Button,
}
impl GuiSettings {
pub fn create_from_builder(window_main: &Window) -> Self {
let glade_src = include_str!("../ui/settings.glade").to_string();
let builder = Builder::from_string(glade_src.as_str());
let window_settings: gtk::Window = builder.object("window_settings").unwrap();
window_settings.set_modal(true);
window_settings.set_transient_for(Some(window_main));
// General
let check_button_settings_save_at_exit: gtk::CheckButton = builder.object("check_button_settings_save_at_exit").unwrap();
let check_button_settings_load_at_start: gtk::CheckButton = builder.object("check_button_settings_load_at_start").unwrap();
let check_button_settings_confirm_deletion: gtk::CheckButton = builder.object("check_button_settings_confirm_deletion").unwrap();
let check_button_settings_confirm_group_deletion: gtk::CheckButton = builder.object("check_button_settings_confirm_group_deletion").unwrap();
let check_button_settings_show_text_view: gtk::CheckButton = builder.object("check_button_settings_show_text_view").unwrap();
let check_button_settings_use_cache: gtk::CheckButton = builder.object("check_button_settings_use_cache").unwrap();
let check_button_settings_use_trash: gtk::CheckButton = builder.object("check_button_settings_use_trash").unwrap();
// Duplicates
let check_button_settings_hide_hard_links: gtk::CheckButton = builder.object("check_button_settings_hide_hard_links").unwrap();
let entry_settings_cache_file_minimal_size: gtk::Entry = builder.object("entry_settings_cache_file_minimal_size").unwrap();
let check_button_settings_show_preview_duplicates: gtk::CheckButton = builder.object("check_button_settings_show_preview_duplicates").unwrap();
// Similar Images
let check_button_settings_show_preview_similar_images: gtk::CheckButton = builder.object("check_button_settings_show_preview_similar_images").unwrap();
// Saving/Loading/Resetting configuration
let button_settings_save_configuration: gtk::Button = builder.object("button_settings_save_configuration").unwrap();
let button_settings_load_configuration: gtk::Button = builder.object("button_settings_load_configuration").unwrap();
let button_settings_reset_configuration: gtk::Button = builder.object("button_settings_reset_configuration").unwrap();
Self {
window_settings,
check_button_settings_save_at_exit,
check_button_settings_load_at_start,
check_button_settings_confirm_deletion,
check_button_settings_confirm_group_deletion,
check_button_settings_show_text_view,
check_button_settings_use_cache,
check_button_settings_use_trash,
check_button_settings_hide_hard_links,
entry_settings_cache_file_minimal_size,
check_button_settings_show_preview_duplicates,
check_button_settings_show_preview_similar_images,
button_settings_save_configuration,
button_settings_load_configuration,
button_settings_reset_configuration,
}
}
}