diff --git a/source/ubl-settings-services.c b/source/ubl-settings-services.c
index d142d37..f667e90 100644
--- a/source/ubl-settings-services.c
+++ b/source/ubl-settings-services.c
@@ -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..3e6b8b7 100644
--- a/source/ubl-settings-services.h
+++ b/source/ubl-settings-services.h
@@ -154,8 +154,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)
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 @@
+
+
+
+