Fixed crash at '-*' service name tooltip call

pull/71/head
parent 82787c4b1f
commit 0b209ba7b1

@ -1476,54 +1476,59 @@ gboolean on_tooltip_show(GtkWidget* self, gint x, gint y, gboolean keyboard_mode
if (gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(tree), tree_x, tree_y, &path, NULL, NULL, NULL)) { if (gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(tree), tree_x, tree_y, &path, NULL, NULL, NULL)) {
GtkTreeIter iter; GtkTreeIter iter;
if (gtk_tree_model_get_iter(model, &iter, path)) { if (gtk_tree_model_get_iter(model, &iter, path)) {
gchar *name, *description, *state; gchar *name, *description, *state, *name_target;
gint64 activa, deactiva; gint64 activa, deactiva;
int size; int size;
gtk_tree_model_get(model, &iter, 5, &name, 6, &description, 11, &state, -1); gtk_tree_model_get(model, &iter, 5, &name, 6, &description, 11, &state, -1);
config_str target = yon_config_load(get_activate_deactivate_times(name), &size); name_target = yon_char_new(name);
free(yon_char_divide_search(target[0], "=", -1)); if (name[0]=='-'){
yon_char_remove_last_symbol(target[0], '\n'); name_target = yon_char_append("-- ",name_target);
free(yon_char_divide_search(target[1], "=", -1)); }
yon_char_remove_last_symbol(target[1], '\n'); config_str target = yon_config_load(get_activate_deactivate_times(name_target), &size);
free(yon_char_divide_search(target[2], "=", -1)); free(name_target);
yon_char_remove_last_symbol(target[2], '\n'); if (target){
activa = g_ascii_strtoll(target[1], NULL, 10); free(yon_char_divide_search(target[0], "=", -1));
deactiva = g_ascii_strtoll(target[1], NULL, 10); 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');
activa = g_ascii_strtoll(target[1], NULL, 10);
deactiva = g_ascii_strtoll(target[1], NULL, 10);
gtk_label_set_text(GTK_LABEL(widgets->UnitLabel), target[0]);
}
gtk_label_set_text(GTK_LABEL(widgets->NameLabel), name); gtk_label_set_text(GTK_LABEL(widgets->NameLabel), name);
gtk_label_set_text(GTK_LABEL(widgets->DescriptionLabel), description); 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->StatusQueryLabel), state);
gtk_label_set_text(GTK_LABEL(widgets->UnitLabel), target[0]);
free(name); free(name);
free(description); free(description);
free(state); free(state);
free(target[1]);
free(target[2]);
gchar *formatted_activa = NULL;
gchar *formatted_deactiva = NULL;
if (activa) {
GDateTime *datetime = g_date_time_new_from_unix_local(activa);
formatted_activa = g_date_time_format(datetime, "%d:%m:%Y %T");
g_date_time_unref(datetime);
} else {
formatted_activa = g_strdup(NULL_LABEL);
}
if (deactiva) {
GDateTime *datetime = g_date_time_new_from_unix_local(deactiva);
formatted_deactiva = g_date_time_format(datetime, "%d:%m:%Y %T");
g_date_time_unref(datetime);
} else {
formatted_deactiva = g_strdup(NULL_LABEL);
}
gtk_label_set_text(GTK_LABEL(widgets->ActivateLabel), formatted_activa); if (target){
gtk_label_set_text(GTK_LABEL(widgets->DeactivateLabel), formatted_deactiva); gchar *formatted_activa = NULL;
gchar *formatted_deactiva = NULL;
if (activa) {
GDateTime *datetime = g_date_time_new_from_unix_local(activa);
formatted_activa = g_date_time_format(datetime, "%d:%m:%Y %T");
g_date_time_unref(datetime);
} else {
formatted_activa = g_strdup(NULL_LABEL);
}
if (deactiva) {
GDateTime *datetime = g_date_time_new_from_unix_local(deactiva);
formatted_deactiva = g_date_time_format(datetime, "%d:%m:%Y %T");
g_date_time_unref(datetime);
} else {
formatted_deactiva = g_strdup(NULL_LABEL);
}
g_free(formatted_activa); gtk_label_set_text(GTK_LABEL(widgets->ActivateLabel), formatted_activa);
g_free(formatted_deactiva); gtk_label_set_text(GTK_LABEL(widgets->DeactivateLabel), formatted_deactiva);
g_free(formatted_activa);
g_free(formatted_deactiva);
}
gtk_tree_path_free(path); gtk_tree_path_free(path);
return TRUE; return TRUE;
} }

Loading…
Cancel
Save