From b4d50c99cdea9ae67539c4d29ae1c4088d498817 Mon Sep 17 00:00:00 2001 From: Vladislav Nepogodin Date: Tue, 6 Aug 2024 02:17:15 +0400 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=A7=20pages:=20refactor=20messagedialo?= =?UTF-8?q?g=20into=20helper=20function?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages.rs | 41 ++++++++--------------------------------- src/utils.rs | 19 +++++++++++++++++++ 2 files changed, 27 insertions(+), 33 deletions(-) diff --git a/src/pages.rs b/src/pages.rs index 3d13d6d..e3996ce 100644 --- a/src/pages.rs +++ b/src/pages.rs @@ -408,17 +408,7 @@ fn create_fixes_section(builder: &Builder) -> gtk::Box { let widget_window = utils::get_window_from_widget(widget_obj).expect("Failed to retrieve window"); - let dialog = gtk::MessageDialog::builder() - .transient_for(&widget_window) - .message_type(msg.msg_type) - .text(msg.msg) - .title(msg.msg_type.to_string()) - .modal(true) - .buttons(gtk::ButtonsType::Ok) - .build(); - dialog.connect_response(|dialog, _| dialog.close()); - - dialog.show(); + utils::show_simple_dialog(&widget_window, msg.msg_type, &msg.msg, msg.msg_type.to_string()); glib::ControlFlow::Continue }); @@ -737,17 +727,7 @@ fn create_connections_section() -> gtk::Box { let widget_window = utils::get_window_from_widget(widget_obj).expect("Failed to retrieve window"); - let dialog = gtk::MessageDialog::builder() - .transient_for(&widget_window) - .message_type(msg.msg_type) - .text(msg.msg) - .title(msg.msg_type.to_string()) - .modal(true) - .buttons(gtk::ButtonsType::Ok) - .build(); - dialog.connect_response(|dialog, _| dialog.close()); - - dialog.show(); + utils::show_simple_dialog(&widget_window, msg.msg_type, &msg.msg, msg.msg_type.to_string()); glib::ControlFlow::Continue }); @@ -993,17 +973,12 @@ fn toggle_service( if !msg { callback(msg); - let dialog = gtk::MessageDialog::builder() - .transient_for(&widget_window) - .message_type(gtk::MessageType::Error) - .text(&dialog_text) - .title("Error") - .modal(true) - .buttons(gtk::ButtonsType::Ok) - .build(); - dialog.connect_response(|dialog, _| dialog.close()); - - dialog.show(); + utils::show_simple_dialog( + &widget_window, + gtk::MessageType::Error, + &dialog_text, + "Error".to_string(), + ); } glib::ControlFlow::Continue }); diff --git a/src/utils.rs b/src/utils.rs index eeb8303..ba37cb0 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -151,6 +151,25 @@ pub fn is_root_on_btrfs() -> bool { root_fs == "btrfs\n" } +pub fn show_simple_dialog( + widget_window: >k::Window, + dialog_msg_type: gtk::MessageType, + dialog_text: &String, + dialog_title: String, +) { + let dialog = gtk::MessageDialog::builder() + .transient_for(widget_window) + .message_type(dialog_msg_type) + .text(dialog_text) + .title(dialog_title) + .modal(true) + .buttons(gtk::ButtonsType::Ok) + .build(); + dialog.connect_response(|dialog, _| dialog.close()); + + dialog.show(); +} + #[cfg(test)] mod test { use super::*;