diff --git a/source/ubl-settings-services.c b/source/ubl-settings-services.c index 1a0b394..dc93d96 100644 --- a/source/ubl-settings-services.c +++ b/source/ubl-settings-services.c @@ -10,6 +10,7 @@ void on_save_done(main_window *widgets, config_str output, int size){ printf("%s\n",final_output); free(final_output); yon_char_parsed_free(output,size); + textdomain(template_ui_LocaleName); switch (main_config.save_config){ case 0: yon_ubl_status_box_render(GLOBAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); @@ -21,6 +22,7 @@ void on_save_done(main_window *widgets, config_str output, int size){ yon_ubl_status_box_render(GLOBAL_LOCAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); break; } + textdomain(LocaleName); } void yon_load_proceed(YON_CONFIG_TYPE type){ @@ -461,25 +463,33 @@ void on_system_launch_clicked(GtkWidget *self, char *path, main_window *widgets) gboolean status = 0; char *service_name; gtk_tree_model_get(model,&iter,4,&status,5,&service_name,-1); - int size; - config_str result = yon_config_load(service_check_active_command(service_name),&size); - yon_char_remove_last_symbol(result[0],'\n'); - if (size>0){ - if (!strcmp(result[0],"active")){ - if (status){ - on_system_kill_confirmed(NULL,service_name); + if (status){ + dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data)); + data->action_text=SERVICE_STOP_WARNING_LABEL(service_name); + data->data=service_name; + data->function=(void*)(void*)on_system_kill_confirmed; + int size; + config_str result = yon_config_load(service_check_active_command(service_name),&size); + yon_char_remove_last_symbol(result[0],'\n'); + if (size>0&&!strcmp(result[0],"active")){ + int responce = yon_confirmation_dialog_call(widgets->Window,data); + if (responce == GTK_RESPONSE_ACCEPT){ gtk_list_store_set(GTK_LIST_STORE(model),&iter,4,0,-1); + } - } else { - gtk_list_store_set(GTK_LIST_STORE(model),&iter,4,0,-1); } - yon_launch((!status)==1 ? service_start_command(service_name) : \ - service_stop_command(service_name)); - if (!status) { + yon_char_parsed_free(result,size); + } else { + yon_launch(service_start_command(service_name)); + int size; + config_str result = yon_config_load(service_check_active_command(service_name),&size); + yon_char_remove_last_symbol(result[0],'\n'); + if (size>0&&!strcmp(result[0],"active")){ gtk_list_store_set(GTK_LIST_STORE(model),&iter,4,1,-1); + } else { + yon_ubl_status_box_render(SERVICE_START_FAILED_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); } } - yon_char_parsed_free(result,size); } } @@ -1010,6 +1020,10 @@ gboolean yon_interface_update(main_window *widgets){ if (system_services[i][strlen(system_services[i])-1]=='\n') system_services[i][strlen(system_services[i])-1] = '\0'; int size; config_str parsed = yon_char_parse(system_services[i],&size,";"); + char *name_temp = yon_char_replace(parsed[0],"\\","\18"); + if (name_temp!=parsed[0]) free(parsed[0]); + parsed[0]=yon_char_replace(name_temp,"\18","\\\\"); + if (name_temp!=parsed[0]) free(name_temp); if (parsed){ int loaded = !strcmp(parsed[1],"loaded"); int active = !strcmp(parsed[2],"active"); diff --git a/source/ubl-strings.h b/source/ubl-strings.h index 4700ee2..f394e9b 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -49,16 +49,18 @@ #define SHOW_SOURCE_LABEL _("Show source") #define PROPERTIES_LABEL _("Properties") #define ACTIVATE_SESSION_LABEL _("Activate session") -#define END_SESSION_LABEL _("End session") +#define END_SESSION_LABEL _("Terminate session") #define BLOCK_SESSION_LABEL _("Block session") #define SOURCE_UNFOUND_LABEL _("Service source were not loaded") +#define SERVICE_START_FAILED_LABEL _("Failed to launch service") #define SAVING_LABEL _("Saving...") #define SAVED_LABEL _("Saved") #define ERROR_LABEL _("Error has occured") #define SWITCH_OFF_ERROR_LABEL _("Service were not stopped") +#define SERVICE_STOP_WARNING_LABEL(target) yon_char_unite(_("Are you sure want to stop "),target,"?\n",_("The system may become unstable."),NULL) #define REEXEC_SERVICE_WARMING_LABEL(target) yon_char_unite(_("Are you sure want to restart "),target,"?\n",_("The system may become unstable."),NULL) #define RELOAD_SERVICE_WARMING_LABEL(target) yon_char_unite(_("Are you sure want to reload "),target,"?\n",_("The system may become unstable."),NULL) #define DAYS_LABEL _("Days") diff --git a/ubl-settings-services.glade b/ubl-settings-services.glade index 5be103e..0726e48 100644 --- a/ubl-settings-services.glade +++ b/ubl-settings-services.glade @@ -1543,6 +1543,7 @@ True True True + Activate session image11