2022-02-16 07:00:52 +13:00
|
|
|
use crossbeam_channel::{Sender, TrySendError};
|
2022-06-01 03:52:55 +12:00
|
|
|
use gtk4::prelude::*;
|
2020-11-01 02:23:31 +13:00
|
|
|
|
2022-05-22 20:59:09 +12:00
|
|
|
use crate::flg;
|
2022-01-14 03:58:33 +13:00
|
|
|
use crate::gui_structs::gui_data::GuiData;
|
2021-12-01 23:09:47 +13:00
|
|
|
use crate::help_functions::KEY_ENTER;
|
2021-11-28 08:49:20 +13:00
|
|
|
|
2022-02-16 07:00:52 +13:00
|
|
|
fn send_stop_message(stop_sender: &Sender<()>) {
|
|
|
|
stop_sender
|
|
|
|
.try_send(())
|
2023-10-05 19:06:47 +13:00
|
|
|
.map_or_else(|e| if matches!(e, TrySendError::Full(())) { Ok(()) } else { Err(e) }, |()| Ok(()))
|
2022-02-16 07:00:52 +13:00
|
|
|
.unwrap();
|
|
|
|
}
|
|
|
|
|
2020-11-01 02:23:31 +13:00
|
|
|
pub fn connect_button_stop(gui_data: &GuiData) {
|
2021-12-01 23:09:47 +13:00
|
|
|
let evk_button_stop_in_dialog = gui_data.progress_window.evk_button_stop_in_dialog.clone();
|
2022-05-22 20:59:09 +12:00
|
|
|
let stop_dialog = gui_data.progress_window.window_progress.clone();
|
2020-11-05 06:15:06 +13:00
|
|
|
let stop_sender = gui_data.stop_sender.clone();
|
2021-12-01 23:09:47 +13:00
|
|
|
evk_button_stop_in_dialog.connect_key_released(move |_, _, key_code, _| {
|
|
|
|
if key_code == KEY_ENTER {
|
2022-05-22 20:59:09 +12:00
|
|
|
stop_dialog.set_title(Some(&format!("{} ({})", flg!("window_progress_title"), flg!("progress_stop_additional_message"))));
|
2022-02-16 07:00:52 +13:00
|
|
|
send_stop_message(&stop_sender);
|
2021-03-07 20:57:48 +13:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
let button_stop_in_dialog = gui_data.progress_window.button_stop_in_dialog.clone();
|
2022-05-22 20:59:09 +12:00
|
|
|
let stop_dialog = gui_data.progress_window.window_progress.clone();
|
2021-03-07 20:57:48 +13:00
|
|
|
let stop_sender = gui_data.stop_sender.clone();
|
2022-05-22 20:59:09 +12:00
|
|
|
|
|
|
|
button_stop_in_dialog.connect_clicked(move |_a| {
|
|
|
|
stop_dialog.set_title(Some(&format!("{} ({})", flg!("window_progress_title"), flg!("progress_stop_additional_message"))));
|
2022-02-16 07:00:52 +13:00
|
|
|
send_stop_message(&stop_sender);
|
2020-11-01 02:23:31 +13:00
|
|
|
});
|
|
|
|
}
|