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