From fb9e980101690d3307d83f763e36830de15bd9f0 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Fri, 27 Oct 2023 09:45:20 +0600 Subject: [PATCH] Fixed unshown paths lines at log creation --- source/ubl-settings-logging.c | 67 +++++++++++++++++++---------------- 1 file changed, 36 insertions(+), 31 deletions(-) diff --git a/source/ubl-settings-logging.c b/source/ubl-settings-logging.c index a4d8b0e..f034761 100644 --- a/source/ubl-settings-logging.c +++ b/source/ubl-settings-logging.c @@ -1276,27 +1276,6 @@ add_log_window *on_add_open(){ return window; } -void on_log_add(GtkWidget *self, main_window *widgets){ - GtkTreeModel *model = GTK_TREE_MODEL(widgets->list); - GtkTreeIter iter; - add_log_window *window = on_add_open(); - gtk_widget_show(window->MainWindow); - gtk_widget_hide(window->StatisticsFrame); - gtk_widget_hide(window->ControlSectionBox); -} - -void on_log_path_choose(GtkWidget *self,add_log_window *window){ - GtkWidget *dialog = gtk_file_chooser_dialog_new(TITLE_LABEL,GTK_WINDOW(window->MainWindow),GTK_FILE_CHOOSER_ACTION_OPEN,CANCEL_LABEL,GTK_RESPONSE_CANCEL,ACCEPT_LABEL,GTK_RESPONSE_ACCEPT,NULL); - gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog),"/"); - int response = gtk_dialog_run(GTK_DIALOG(dialog)); - if (response == GTK_RESPONSE_ACCEPT){ - GtkWidget *parent = gtk_widget_get_parent(self); - GList *list = gtk_container_get_children(GTK_CONTAINER(parent)); - gtk_entry_set_text((GtkEntry*)g_list_nth_data(list,1),gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog))); - } - gtk_widget_destroy(dialog); -} - void on_log_path_remove(GtkWidget *self, add_log_window *window){ GList *paths = gtk_container_get_children(GTK_CONTAINER(window->LogPathsBox)); for (int i=0;iMainWindow),GTK_FILE_CHOOSER_ACTION_OPEN,CANCEL_LABEL,GTK_RESPONSE_CANCEL,ACCEPT_LABEL,GTK_RESPONSE_ACCEPT,NULL); + gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog),"/"); + int response = gtk_dialog_run(GTK_DIALOG(dialog)); + if (response == GTK_RESPONSE_ACCEPT){ + GtkWidget *parent = gtk_widget_get_parent(self); + GList *list = gtk_container_get_children(GTK_CONTAINER(parent)); + gtk_entry_set_text((GtkEntry*)g_list_nth_data(list,1),gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog))); + } + gtk_widget_destroy(dialog); +} + void on_log_path_append(GtkWidget *self, add_log_window *window){ GList *paths = gtk_container_get_children(GTK_CONTAINER(window->LogPathsBox)); GtkWidget *box = (GtkWidget*)g_list_nth_data(paths,g_list_length(paths)-1); - GList *path_widgets = gtk_container_get_children(GTK_CONTAINER(box)); - GtkWidget *entry = (GtkWidget*)g_list_nth_data(path_widgets,1); - if (gtk_widget_get_sensitive(box)&&strcmp(gtk_entry_get_text(GTK_ENTRY(entry)),"")){ + GList *path_widgets; + GtkWidget *entry; + if (box){ + path_widgets = gtk_container_get_children(GTK_CONTAINER(box)); + entry = (GtkWidget*)g_list_nth_data(path_widgets,1); + + if (!gtk_widget_get_sensitive(box)||!strcmp(gtk_entry_get_text(GTK_ENTRY(entry)),"")){ + return; + } else + gtk_widget_hide(self); + } GtkBuilder *builder = gtk_builder_new_from_resource(glade_add_path_path); - GtkWidget *box = yon_gtk_builder_get_widget(builder,"PathBox"); - GtkWidget *entry = yon_gtk_builder_get_widget(builder,"PathEntry"); + GtkWidget *box_path = yon_gtk_builder_get_widget(builder,"PathBox"); + GtkWidget *entry_path = yon_gtk_builder_get_widget(builder,"PathEntry"); GtkWidget *AppendButton = yon_gtk_builder_get_widget(builder,"AppendButton"); GtkWidget *SearchButton = yon_gtk_builder_get_widget(builder,"SearchButton"); GtkWidget *RemoveButton = yon_gtk_builder_get_widget(builder,"RemoveButton"); @@ -1333,11 +1332,17 @@ void on_log_path_append(GtkWidget *self, add_log_window *window){ g_signal_connect(G_OBJECT(RemoveButton),"clicked",G_CALLBACK(on_log_path_remove),window); g_signal_connect(G_OBJECT(SearchButton),"clicked",G_CALLBACK(on_log_path_choose),window); gtk_widget_show(AppendButton); - gtk_widget_hide(self); - gtk_box_pack_start(GTK_BOX(window->LogPathsBox),box,0,0,5); - } - g_list_free(paths); - g_list_free(path_widgets); + gtk_box_pack_start(GTK_BOX(window->LogPathsBox),box_path,0,0,5); +} + +void on_log_add(GtkWidget *self, main_window *widgets){ + GtkTreeModel *model = GTK_TREE_MODEL(widgets->list); + GtkTreeIter iter; + add_log_window *window = on_add_open(); + gtk_widget_show(window->MainWindow); + gtk_widget_hide(window->StatisticsFrame); + gtk_widget_hide(window->ControlSectionBox); + on_log_path_append(NULL,window); } void on_log_edit(GtkWidget *self,main_window *widgets){