2020-12-08 03:25:44 +13:00
|
|
|
use gtk::prelude::*;
|
2021-05-09 06:33:09 +12:00
|
|
|
use gtk::WindowPosition;
|
2020-12-08 03:25:44 +13:00
|
|
|
|
2021-11-28 08:49:20 +13:00
|
|
|
use crate::gui_data::GuiData;
|
|
|
|
use crate::saving_loading::{load_configuration, reset_configuration, save_configuration};
|
|
|
|
|
2020-12-08 03:25:44 +13:00
|
|
|
pub fn connect_settings(gui_data: &GuiData) {
|
2021-02-23 21:40:19 +13:00
|
|
|
// Connect button settings
|
|
|
|
{
|
|
|
|
let button_settings = gui_data.header.button_settings.clone();
|
|
|
|
let window_main = gui_data.window_main.clone();
|
|
|
|
let window_settings = gui_data.settings.window_settings.clone();
|
|
|
|
button_settings.connect_clicked(move |_| {
|
2021-11-28 04:44:30 +13:00
|
|
|
window_main.set_position(WindowPosition::Center);
|
2021-02-23 21:40:19 +13:00
|
|
|
window_main.set_sensitive(false);
|
|
|
|
window_settings.show();
|
|
|
|
});
|
|
|
|
|
|
|
|
let window_main = gui_data.window_main.clone();
|
|
|
|
let window_settings = gui_data.settings.window_settings.clone();
|
|
|
|
|
|
|
|
window_settings.connect_delete_event(move |window, _y| {
|
|
|
|
window.hide();
|
|
|
|
window_main.set_sensitive(true);
|
|
|
|
gtk::Inhibit(true)
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2020-12-08 03:25:44 +13:00
|
|
|
// Connect save configuration button
|
|
|
|
{
|
2021-11-25 20:36:49 +13:00
|
|
|
let upper_notebook = gui_data.upper_notebook.clone();
|
|
|
|
let settings = gui_data.settings.clone();
|
|
|
|
let text_view_errors = gui_data.text_view_errors.clone();
|
2021-02-23 21:40:19 +13:00
|
|
|
let button_settings_save_configuration = gui_data.settings.button_settings_save_configuration.clone();
|
2020-12-08 03:25:44 +13:00
|
|
|
button_settings_save_configuration.connect_clicked(move |_| {
|
2021-11-25 20:36:49 +13:00
|
|
|
save_configuration(true, &upper_notebook, &settings, &text_view_errors);
|
2020-12-08 03:25:44 +13:00
|
|
|
});
|
|
|
|
}
|
|
|
|
// Connect load configuration button
|
|
|
|
{
|
2021-11-25 20:36:49 +13:00
|
|
|
let upper_notebook = gui_data.upper_notebook.clone();
|
|
|
|
let settings = gui_data.settings.clone();
|
|
|
|
let text_view_errors = gui_data.text_view_errors.clone();
|
2021-02-23 21:40:19 +13:00
|
|
|
let button_settings_load_configuration = gui_data.settings.button_settings_load_configuration.clone();
|
2021-11-25 20:36:49 +13:00
|
|
|
let scrolled_window_errors = gui_data.scrolled_window_errors.clone();
|
2020-12-08 03:25:44 +13:00
|
|
|
button_settings_load_configuration.connect_clicked(move |_| {
|
2021-11-25 20:36:49 +13:00
|
|
|
load_configuration(true, &upper_notebook, &settings, &text_view_errors, &scrolled_window_errors);
|
2020-12-08 03:25:44 +13:00
|
|
|
});
|
|
|
|
}
|
|
|
|
// Connect reset configuration button
|
|
|
|
{
|
2021-11-25 20:36:49 +13:00
|
|
|
let upper_notebook = gui_data.upper_notebook.clone();
|
|
|
|
let settings = gui_data.settings.clone();
|
|
|
|
let text_view_errors = gui_data.text_view_errors.clone();
|
2021-02-23 21:40:19 +13:00
|
|
|
let button_settings_reset_configuration = gui_data.settings.button_settings_reset_configuration.clone();
|
2020-12-08 03:25:44 +13:00
|
|
|
button_settings_reset_configuration.connect_clicked(move |_| {
|
2021-11-25 20:36:49 +13:00
|
|
|
reset_configuration(true, &upper_notebook, &settings, &text_view_errors);
|
2020-12-08 03:25:44 +13:00
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|