2021-02-23 21:40:19 +13:00
|
|
|
use gtk::prelude::*;
|
2021-07-08 07:13:36 +12:00
|
|
|
use gtk::{Builder, WindowPosition};
|
2021-02-23 21:40:19 +13:00
|
|
|
|
|
|
|
#[derive(Clone)]
|
2021-03-28 01:14:02 +13:00
|
|
|
pub struct GuiSettings {
|
2021-02-23 21:40:19 +13:00
|
|
|
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,
|
2021-03-07 03:56:39 +13:00
|
|
|
pub check_button_settings_confirm_group_deletion: gtk::CheckButton,
|
2021-02-23 21:40:19 +13:00
|
|
|
pub check_button_settings_show_text_view: gtk::CheckButton,
|
2021-03-05 00:09:53 +13:00
|
|
|
pub check_button_settings_use_cache: gtk::CheckButton,
|
2021-03-12 02:31:59 +13:00
|
|
|
pub check_button_settings_use_trash: gtk::CheckButton,
|
2021-02-23 21:40:19 +13:00
|
|
|
|
|
|
|
// Duplicates
|
|
|
|
pub check_button_settings_hide_hard_links: gtk::CheckButton,
|
2021-05-07 07:54:44 +12:00
|
|
|
pub entry_settings_cache_file_minimal_size: gtk::Entry,
|
2021-08-07 20:38:10 +12:00
|
|
|
pub check_button_settings_show_preview_duplicates: gtk::CheckButton,
|
2021-02-23 21:40:19 +13:00
|
|
|
|
|
|
|
// 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,
|
|
|
|
}
|
|
|
|
|
2021-03-28 01:14:02 +13:00
|
|
|
impl GuiSettings {
|
2021-07-08 07:13:36 +12:00
|
|
|
pub fn create_from_builder() -> Self {
|
|
|
|
let glade_src = include_str!("../ui/settings.glade").to_string();
|
|
|
|
let builder = Builder::from_string(glade_src.as_str());
|
|
|
|
|
2021-06-26 04:07:13 +12:00
|
|
|
let window_settings: gtk::Window = builder.object("window_settings").unwrap();
|
2021-05-17 21:06:22 +12:00
|
|
|
window_settings.set_position(WindowPosition::Center);
|
2021-02-23 21:40:19 +13:00
|
|
|
|
|
|
|
// General
|
2021-06-26 04:07:13 +12:00
|
|
|
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();
|
2021-02-23 21:40:19 +13:00
|
|
|
|
|
|
|
// Duplicates
|
2021-06-26 04:07:13 +12:00
|
|
|
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();
|
2021-08-07 20:38:10 +12:00
|
|
|
let check_button_settings_show_preview_duplicates: gtk::CheckButton = builder.object("check_button_settings_show_preview_duplicates").unwrap();
|
2021-02-23 21:40:19 +13:00
|
|
|
|
|
|
|
// Similar Images
|
2021-06-26 04:07:13 +12:00
|
|
|
let check_button_settings_show_preview_similar_images: gtk::CheckButton = builder.object("check_button_settings_show_preview_similar_images").unwrap();
|
2021-02-23 21:40:19 +13:00
|
|
|
|
|
|
|
// Saving/Loading/Resetting configuration
|
2021-06-26 04:07:13 +12:00
|
|
|
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();
|
2021-02-23 21:40:19 +13:00
|
|
|
|
|
|
|
Self {
|
|
|
|
window_settings,
|
|
|
|
check_button_settings_save_at_exit,
|
|
|
|
check_button_settings_load_at_start,
|
|
|
|
check_button_settings_confirm_deletion,
|
2021-03-07 03:56:39 +13:00
|
|
|
check_button_settings_confirm_group_deletion,
|
2021-02-23 21:40:19 +13:00
|
|
|
check_button_settings_show_text_view,
|
2021-03-28 01:14:02 +13:00
|
|
|
check_button_settings_use_cache,
|
|
|
|
check_button_settings_use_trash,
|
|
|
|
check_button_settings_hide_hard_links,
|
2021-05-07 07:54:44 +12:00
|
|
|
entry_settings_cache_file_minimal_size,
|
2021-08-07 20:38:10 +12:00
|
|
|
check_button_settings_show_preview_duplicates,
|
2021-03-28 01:14:02 +13:00
|
|
|
check_button_settings_show_preview_similar_images,
|
2021-02-23 21:40:19 +13:00
|
|
|
button_settings_save_configuration,
|
|
|
|
button_settings_load_configuration,
|
|
|
|
button_settings_reset_configuration,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|