diff --git a/source/ubl-settings-services.c b/source/ubl-settings-services.c
index d142d37..b385c6e 100644
--- a/source/ubl-settings-services.c
+++ b/source/ubl-settings-services.c
@@ -209,7 +209,7 @@ void on_config_autostart_clicked(GtkCellRenderer *, char *path, main_window *wid
if (status==0){
if (place ==-1){
if (yon_char_parsed_check_exist(parsed,size,unit)==-1){
- if (!yon_config_append("SERVICES_ENABLE",name,",")){
+ if (!yon_config_append_element("SERVICES_ENABLE",name,",")){
yon_config_register("SERVICES_ENABLE",SERVICES_ENABLE_get_command,name);
}
} else {
@@ -274,7 +274,7 @@ void on_config_autostop_clicked(GtkCellRenderer *, char *path, main_window *widg
if (status==0){
if (place ==-1){
if (yon_char_parsed_check_exist(parsed,size,unit)==-1){
- if (!yon_config_append("SERVICES_DISABLE",name,",")){
+ if (!yon_config_append_element("SERVICES_DISABLE",name,",")){
yon_config_register("SERVICES_DISABLE",SERVICES_DISABLE_get_command,name);
}
} else {
@@ -325,7 +325,7 @@ void on_config_block_clicked(GtkCellRenderer *, char *path, main_window *widgets
free(unit);
unit=parsed_name;
gtk_list_store_set(GTK_LIST_STORE(model),&iter,2,!status,-1);
- char *config_sting = yon_config_get_by_key("SERVICES_MASK");
+ char *config_sting = yon_config_get_by_key(SERVICES_MASK_parameter);
int size;
config_str parsed = yon_char_parse(config_sting,&size,",");
if (strstr(name,".service")){
@@ -337,22 +337,22 @@ void on_config_block_clicked(GtkCellRenderer *, char *path, main_window *widgets
if (status==0){
if (place ==-1){
if (yon_char_parsed_check_exist(parsed,size,unit)==-1){
- if (!yon_config_append("SERVICES_MASK",name,",")){
- yon_config_register("SERVICES_MASK",SERVICES_MASK_get_command,name);
+ if (!yon_config_append_element(SERVICES_MASK_parameter,name,",")){
+ yon_config_register(SERVICES_MASK_parameter,SERVICES_MASK_parameter_command,name);
}
} else {
parsed = yon_char_parsed_rip(parsed,&size,place);
if (parsed)
- yon_config_set("SERVICES_MASK",yon_char_parsed_to_string(parsed,size,","));
- else yon_config_remove_by_key("SERVICES_MASK");
+ yon_config_set(SERVICES_MASK_parameter,yon_char_parsed_to_string(parsed,size,","));
+ else yon_config_remove_by_key(SERVICES_MASK_parameter);
}
}
} else {
if (place !=-1){
parsed = yon_char_parsed_rip(parsed,&size,place);
if (parsed)
- yon_config_set("SERVICES_MASK",yon_char_parsed_to_string(parsed,size,","));
- else yon_config_remove_by_key("SERVICES_MASK");
+ yon_config_set(SERVICES_MASK_parameter,yon_char_parsed_to_string(parsed,size,","));
+ else yon_config_remove_by_key(SERVICES_MASK_parameter);
}
}
yon_char_parsed_free(parsed,size);
@@ -1308,7 +1308,7 @@ gboolean yon_interface_update_finish(main_window *widgets){
yon_char_parsed_free(parsed,parsed_size);
while(gtk_events_pending()) gtk_main_iteration();
- char *masked = yon_config_get_by_key(SERVICES_MASK_PARAMETER);
+ char *masked = yon_config_get_by_key(SERVICES_MASK_parameter);
parsed = yon_char_parse(masked,&parsed_size,",");
valid = gtk_tree_model_get_iter_first(model,&iter);
for (;valid;valid=gtk_tree_model_iter_next(model,&iter))
@@ -1370,7 +1370,7 @@ gboolean yon_interface_update_finish(main_window *widgets){
yon_char_parsed_free(parsed,parsed_size);
while(gtk_events_pending()) gtk_main_iteration();
- char *masked = yon_config_get_by_key(SERVICES_MASK_PARAMETER);
+ char *masked = yon_config_get_by_key(SERVICES_MASK_parameter);
parsed = yon_char_parse(masked,&parsed_size,",");
valid = gtk_tree_model_get_iter_first(model,&iter);
for (;valid;valid=gtk_tree_model_iter_next(model,&iter))
@@ -1796,76 +1796,89 @@ gboolean on_tooltip_show(GtkWidget*, gint x, gint y, gboolean, GtkTooltip* toolt
if (gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(tree), tree_x, tree_y, &path, NULL, NULL, NULL)) {
GtkTreeIter iter;
if (gtk_tree_model_get_iter(model, &iter, path)) {
- gchar *name, *description, *state, *name_target, *load_status, *active_status,*unit_path;
+ gchar *name, *description, *state, *name_target, *load_status, *active_status,*unit_path,*activate_time,*deactivate_time;
int size;
- gtk_tree_model_get(model, &iter, 5, &name, 6, &description, 13, &state, 14,&load_status,15,&active_status,16,&unit_path, -1);
+ gtk_tree_model_get(model, &iter, 5, &name, 6, &description, 13, &state, 14,&load_status,15,&active_status,16,&unit_path,17,&activate_time,18,&deactivate_time, -1);
name_target = yon_char_new(name);
if (name[0]=='-'){
name_target = yon_char_append("-- ",name_target);
}
- config_str target = yon_config_load(yon_debug_output("%s\n",get_activate_deactivate_times(name_target)), &size);
- free(name_target);
- if (target){
- free(yon_char_divide_search(target[0], "=", -1));
- yon_char_remove_last_symbol(target[0], '\n');
- free(yon_char_divide_search(target[1], "=", -1));
- yon_char_remove_last_symbol(target[1], '\n');
- free(yon_char_divide_search(target[2], "=", -1));
- yon_char_remove_last_symbol(target[2], '\n');
- }
-
- state[0]=g_ascii_toupper(state[0]);
- load_status[0]=g_ascii_toupper(load_status[0]);
- active_status[0]=g_ascii_toupper(active_status[0]);
- gtk_label_set_text(GTK_LABEL(widgets->UnitLabel), unit_path);
- gtk_label_set_markup(GTK_LABEL(widgets->NameLabel), yon_char_unite("",name,"",NULL));
- gtk_label_set_text(GTK_LABEL(widgets->DescriptionLabel), description);
- gtk_label_set_text(GTK_LABEL(widgets->StatusQueryLabel), _(state));
- gtk_label_set_text(GTK_LABEL(widgets->AutostartLabel), _(load_status));
- gtk_label_set_text(GTK_LABEL(widgets->TooltipStatusLabel), _(active_status));
-
- free(name);
- free(description);
- free(state);
-
- if (target){
- gchar *formatted_activa = g_strdup(NULL_LABEL);//!yon_char_is_empty(target[1])&&strcmp(target[1],"0")?target[1]:g_strdup(NULL_LABEL);
- gchar *formatted_deactiva = g_strdup(NULL_LABEL);//!yon_char_is_empty(target[2])&&strcmp(target[2],"0")?target[2]:g_strdup(NULL_LABEL);
- if (!yon_char_is_empty(target[1])&&strcmp(target[1],"0")){
- int activated_size;
- config_str activated_parsed = yon_char_parse(target[1],&activated_size," ");
- int date_size;
- config_str date_parsed = yon_char_parse(activated_parsed[1],&date_size,"-");
- if (date_size>2){
- char *temp = date_parsed[0];
- date_parsed[0]=date_parsed[2];
- date_parsed[2]=temp;
- formatted_activa = yon_char_unite(date_parsed?yon_char_parsed_to_string(date_parsed,date_size,"."):""," ",activated_parsed[2],NULL);
- if (date_size) yon_char_parsed_free(date_parsed,date_size);
- }
- if (activated_size) yon_char_parsed_free(activated_parsed,activated_size);
+
+ state[0]=g_ascii_toupper(state[0]);
+ load_status[0]=g_ascii_toupper(load_status[0]);
+ active_status[0]=g_ascii_toupper(active_status[0]);
+ gtk_label_set_text(GTK_LABEL(widgets->UnitLabel), unit_path);
+ gtk_label_set_markup(GTK_LABEL(widgets->NameLabel), yon_char_unite("",name,"",NULL));
+ gtk_label_set_text(GTK_LABEL(widgets->DescriptionLabel), description);
+ gtk_label_set_text(GTK_LABEL(widgets->StatusQueryLabel), _(state));
+ gtk_label_set_text(GTK_LABEL(widgets->AutostartLabel), _(load_status));
+ gtk_label_set_text(GTK_LABEL(widgets->TooltipStatusLabel), _(active_status));
+
+
+ free(name);
+ free(description);
+ free(state);
+
+
+ if (yon_char_is_empty(activate_time)||yon_char_is_empty(deactivate_time)){
+ config_str target = yon_config_load(yon_debug_output("%s\n",get_activate_deactivate_times(name_target)), &size);
+ free(name_target);
+ if (target){
+ free(yon_char_divide_search(target[0], "=", -1));
+ yon_char_remove_last_symbol(target[0], '\n');
+ free(yon_char_divide_search(target[1], "=", -1));
+ yon_char_remove_last_symbol(target[1], '\n');
+ free(yon_char_divide_search(target[2], "=", -1));
+ yon_char_remove_last_symbol(target[2], '\n');
}
- if (!yon_char_is_empty(target[2])&&strcmp(target[2],"0")){
- int deactivated_size;
- config_str deactivated_parsed = yon_char_parse(target[2],&deactivated_size," ");
- int date_size;
- config_str date_parsed = yon_char_parse(deactivated_parsed[1],&date_size,"-");
- if (date_size>=2){
- char *temp = date_parsed[0];
- date_parsed[0]=date_parsed[2];
- date_parsed[2]=temp;
- formatted_deactiva = yon_char_unite(date_parsed?yon_char_parsed_to_string(date_parsed,date_size,"."):""," ",deactivated_parsed[2],NULL);
- if (date_size) yon_char_parsed_free(date_parsed,date_size);
+ if (target){
+ gchar *formatted_activa = g_strdup(NULL_LABEL);//!yon_char_is_empty(target[1])&&strcmp(target[1],"0")?target[1]:g_strdup(NULL_LABEL);
+ gchar *formatted_deactiva = g_strdup(NULL_LABEL);//!yon_char_is_empty(target[2])&&strcmp(target[2],"0")?target[2]:g_strdup(NULL_LABEL);
+ if (!yon_char_is_empty(target[1])&&strcmp(target[1],"0")){
+ int activated_size;
+ config_str activated_parsed = yon_char_parse(target[1],&activated_size," ");
+ int date_size;
+ config_str date_parsed = yon_char_parse(activated_parsed[1],&date_size,"-");
+ if (date_size>2){
+ char *temp = date_parsed[0];
+ date_parsed[0]=date_parsed[2];
+ date_parsed[2]=temp;
+ formatted_activa = yon_char_unite(date_parsed?yon_char_parsed_to_string(date_parsed,date_size,"."):""," ",activated_parsed[2],NULL);
+ if (date_size) yon_char_parsed_free(date_parsed,date_size);
+ }
+ if (activated_size) yon_char_parsed_free(activated_parsed,activated_size);
}
- if (deactivated_size) yon_char_parsed_free(deactivated_parsed,deactivated_size);
- }
+ if (!yon_char_is_empty(target[2])&&strcmp(target[2],"0")){
+ int deactivated_size;
+ config_str deactivated_parsed = yon_char_parse(target[2],&deactivated_size," ");
+ int date_size;
+ config_str date_parsed = yon_char_parse(deactivated_parsed[1],&date_size,"-");
+ if (date_size>=2){
+ char *temp = date_parsed[0];
+ date_parsed[0]=date_parsed[2];
+ date_parsed[2]=temp;
+ formatted_deactiva = yon_char_unite(date_parsed?yon_char_parsed_to_string(date_parsed,date_size,"."):""," ",deactivated_parsed[2],NULL);
+ if (date_size) yon_char_parsed_free(date_parsed,date_size);
+ }
+ if (deactivated_size) yon_char_parsed_free(deactivated_parsed,deactivated_size);
+ }
+ GtkTreeIter itar;
+ yon_tree_model_sort_filter_get_model_iter(GTK_TREE_MODEL_SORT(model),&iter,&itar);
+ GtkTreeModel *filter_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(model));
+ GtkTreeModel *list = gtk_tree_model_filter_get_model(GTK_TREE_MODEL_FILTER(filter_model));
- gtk_label_set_text(GTK_LABEL(widgets->ActivateLabel), formatted_activa);
- gtk_label_set_text(GTK_LABEL(widgets->DeactivateLabel), formatted_deactiva);
- g_free(formatted_activa);
- g_free(formatted_deactiva);
+ gtk_list_store_set(GTK_LIST_STORE(list),&itar,17,formatted_activa,18,formatted_deactiva,-1);
+
+ activate_time = yon_char_new(formatted_activa);
+ deactivate_time = yon_char_new(formatted_deactiva);
+
+ g_free(formatted_activa);
+ g_free(formatted_deactiva);
+ }
+ gtk_label_set_text(GTK_LABEL(widgets->ActivateLabel), activate_time);
+ gtk_label_set_text(GTK_LABEL(widgets->DeactivateLabel), deactivate_time);
}
gtk_tree_path_free(path);
return TRUE;
diff --git a/source/ubl-settings-services.h b/source/ubl-settings-services.h
index 9947e8d..4f005d3 100644
--- a/source/ubl-settings-services.h
+++ b/source/ubl-settings-services.h
@@ -131,7 +131,6 @@
#define SERVICES_ENABLE_get_command "ubconfig --source global get [system] SERVICES_ENABLE"
#define SERVICES_DISABLE_get_command "ubconfig --source global get [system] SERVICES_DISABLE"
-#define SERVICES_MASK_get_command "ubconfig --source global get [system] SERVICES_MASK"
#define CONSOLE_FONT_get_command "ubconfig --source global get [locale] CONSOLE_FONT"
#define play_icon_path "com.ublinux.ubl-settings-services.play-symbolic"
@@ -154,8 +153,8 @@
#define reload_systemd_root_command "systemctl daemon-reload"
#define reexec_systemd_root_command "systemctl daemon-reexec"
-#define reload_systemd_user_command "systemctl --user daemon-reload"
-#define reexec_systemd_user_command "systemctl --user daemon-reexec"
+#define reload_systemd_user_command yon_char_unite("systemctl --user --machine=",yon_ubl_root_user_get(),"@ daemon-reload",NULL)
+#define reexec_systemd_user_command yon_char_unite("systemctl --user --machine=",yon_ubl_root_user_get(),"@ daemon-reexec",NULL)
#define session_activate_session(target) yon_char_append("loginctl activate ",target)
#define session_terminate_session(target) yon_char_append("loginctl terminate-session ",target)
@@ -164,7 +163,8 @@
#define SERVICES_ENABLE_PARAMETER "SERVICES_ENABLE"
#define SERVICES_DISABLE_PARAMETER "SERVICES_DISABLE"
-#define SERVICES_MASK_PARAMETER "SERVICES_MASK"
+#define SERVICES_MASK_parameter "SERVICES_MASK"
+#define SERVICES_MASK_parameter_command "ubconfig --source global get [system] SERVICES_MASK"
typedef char* string;
diff --git a/ubl-settings-services.glade b/ubl-settings-services.glade
index 7c5916a..8bc1385 100644
--- a/ubl-settings-services.glade
+++ b/ubl-settings-services.glade
@@ -1,5 +1,5 @@
-
+
@@ -75,6 +75,10 @@
+
+
+
+