From e721d311cd11cf1cfb7cac55b53b001a4aa0acfb Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 14 Apr 2025 12:10:28 +0600 Subject: [PATCH] Added confirmation windows for session button; Localisation changes --- source/ubl-settings-services.c | 49 ++++++-- source/ubl-strings.h | 15 ++- ubl-settings-services.glade | 12 +- ubl-settings-services.pot | 181 +++++++++++++++------------ ubl-settings-services_ru.po | 218 +++++++++++++++++++-------------- 5 files changed, 280 insertions(+), 195 deletions(-) diff --git a/source/ubl-settings-services.c b/source/ubl-settings-services.c index 06810d7..11dcce4 100644 --- a/source/ubl-settings-services.c +++ b/source/ubl-settings-services.c @@ -580,42 +580,61 @@ void yon_sessions_update(main_window *widgets){ gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->SessionMainTree),GTK_TREE_MODEL(widgets->SessionsList)); } -void on_session_activate(GtkWidget *, main_window *widgets){ +void on_session_activate(GtkWidget *self, main_window *widgets){ GtkTreeModel *model = GTK_TREE_MODEL(widgets->SessionsList); GtkTreeIter iter; if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SessionMainTree)),&model,&iter)){ + int id; gtk_tree_model_get(model,&iter,0,&id,-1); + dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data)); char *convert = yon_char_from_int(id); - yon_launch(session_activate_session(convert)); - free(convert); - yon_sessions_update(widgets); + data->action_text = SESSION_ACTIVATE_TOOLTIP_LABEL(convert); + data->data = NULL; + data->function = NULL; + if (yon_confirmation_dialog_call(self,data) == GTK_RESPONSE_ACCEPT){ + yon_launch(session_activate_session(convert)); + free(convert); + yon_sessions_update(widgets); + } } } -void on_session_end(GtkWidget *, main_window *widgets){ +void on_session_end(GtkWidget *self, main_window *widgets){ GtkTreeModel *model = GTK_TREE_MODEL(widgets->SessionsList); GtkTreeIter iter; if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SessionMainTree)),&model,&iter)){ int id; gtk_tree_model_get(model,&iter,0,&id,-1); + dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data)); char *convert = yon_char_from_int(id); - yon_launch(session_terminate_session(convert)); - free(convert); - yon_sessions_update(widgets); + data->action_text = SESSION_END_TOOLTIP_LABEL(convert); + data->data = NULL; + data->function = NULL; + if (yon_confirmation_dialog_call(self,data) == GTK_RESPONSE_ACCEPT){ + yon_launch(session_terminate_session(convert)); + free(convert); + yon_sessions_update(widgets); + } } } -void on_session_block(GtkWidget *, main_window *widgets){ +void on_session_block(GtkWidget *self, main_window *widgets){ GtkTreeModel *model = GTK_TREE_MODEL(widgets->SessionsList); GtkTreeIter iter; if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SessionMainTree)),&model,&iter)){ int id; gtk_tree_model_get(model,&iter,0,&id,-1); + dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data)); char *convert = yon_char_from_int(id); - yon_launch(session_lock_session(convert)); - free(convert); - yon_sessions_update(widgets); + data->action_text = SESSION_BLOCK_TOOLTIP_LABEL(convert); + data->data = NULL; + data->function = NULL; + if (yon_confirmation_dialog_call(self,data) == GTK_RESPONSE_ACCEPT){ + yon_launch(session_lock_session(convert)); + free(convert); + yon_sessions_update(widgets); + } } } @@ -687,7 +706,11 @@ typedef void (*data_function)(void*,void*); void on_system_update_hz_clicked(GtkWidget *self, main_window *widgets){ if (widgets){ dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data)); - data->action_text = RELOAD_SERVICE_WARMING_LABEL("systemd"); + if (gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==0){ + data->action_text = RELOAD_SYSTEM_SETTINGS_WARNING_LABEL; + }else if (gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==1){ + data->action_text = RELOAD_USER_SETTINGS_WARNING_LABEL; + } data->data = widgets; data->function = (data_function)yon_system_systemd_restart; yon_confirmation_dialog_call(self,data); diff --git a/source/ubl-strings.h b/source/ubl-strings.h index 479e0b4..fc991ea 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -69,6 +69,11 @@ #define RELOAD_SERVICE_WARMING_LABEL(target) yon_char_unite(_("Are you sure want to reload "),target,"?\n",_("The system may become unstable."),NULL) #define SERVICE_ENABLE_WARNING_LABEL(target) yon_char_unite(_("Are you sure want to enable "),target,"?\n",_("The system may become unstable."),NULL) #define SERVICE_DISABLE_WARNING_LABEL(target) yon_char_unite(_("Are you sure want to disable "),target,"?\n",_("The system may become unstable."),NULL) +#define RELOAD_SYSTEM_SETTINGS_WARNING_LABEL yon_char_unite(_("Are you sure want to reload system units settings?"),"\n",_("The system may become unstable."),NULL) +#define RELOAD_USER_SETTINGS_WARNING_LABEL yon_char_unite(_("Are you sure want to reload user units settings?"),"\n",_("The system may become unstable."),NULL) +#define SESSION_ACTIVATE_TOOLTIP_LABEL(target) yon_char_unite(_("Are you sure you want to switch on session")," ID-",target,"?",NULL) +#define SESSION_END_TOOLTIP_LABEL(target) yon_char_unite(_("Attention!")," ",_("You are about to end your session")," ID-",target,"? ",_("If this is your active session, you will be taken to the login screen. Make sure to save all files before performing this operation."),NULL) +#define SESSION_BLOCK_TOOLTIP_LABEL(target) yon_char_unite(_("Are you sure you want to block session")," ID-",target,"?",NULL) #define DAYS_LABEL _("Days") #define HOURS_LABEL _("Hours") #define MINUTES_LABEL _("Minutes") @@ -94,12 +99,12 @@ #define RELAUNCH_SYSTEMCTL_LABEL _("Reload settings") #define REEXEC_SYSTEMCTL_LABEL _("Reexec systemd") -#define SHOW_SERVICE_INFO_LABEL _("Show service information") +#define SHOW_SERVICE_INFO_LABEL _("Service information") #define RELAUNCH_SERVICE_LABEL _("Relaunch with new configuration") -#define SHOW_SERVICE_LOG_LABEL _("Show service log") -#define SHOW_SERVICE_SOURCE_LABEL _("Show service source file") -#define SHOW_SERVICE_PROPERTIES_LABEL _("Show service properties") -#define SHOW_LABEL _("Show...") +#define SHOW_SERVICE_LOG_LABEL _("Service log") +#define SHOW_SERVICE_SOURCE_LABEL _("Service source file") +#define SHOW_SERVICE_PROPERTIES_LABEL _("Service properties") +#define SHOW_LABEL _("Additional information") #define EDIT_CONFIG_LABEL _("Edit configuration file") diff --git a/ubl-settings-services.glade b/ubl-settings-services.glade index 3a2b971..51e65fe 100644 --- a/ubl-settings-services.glade +++ b/ubl-settings-services.glade @@ -19,7 +19,7 @@ - + @@ -760,7 +760,7 @@ False True True - Show service information + Service information image3