From 08807aa402e87e5590339fc8d56977bc688ac413 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Fri, 3 Nov 2023 16:34:17 +0600 Subject: [PATCH] Ability to change name and description for custom journal bundles --- source/ubl-settings-logging.c | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/source/ubl-settings-logging.c b/source/ubl-settings-logging.c index 5889ccb..88f90cf 100644 --- a/source/ubl-settings-logging.c +++ b/source/ubl-settings-logging.c @@ -1589,7 +1589,10 @@ void on_log_save(GtkWidget *self, dictionary *dict){ char *name = (char*)gtk_entry_get_text(GTK_ENTRY(window->NameEntry)); char *desc = (char*)gtk_entry_get_text(GTK_ENTRY(window->LogDescriptionEntry)); if (!yon_char_is_empty(name)){ - gtk_list_store_append(widgets->list,&iter); + GtkTreeModel *model = GTK_TREE_MODEL(widgets->list); + GtkTreeIter iter; + if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->MainTree)),&model,&iter)) + gtk_list_store_append(widgets->list,&iter); gtk_list_store_set(widgets->list,&iter,0,name,1,pathse,2,&desc ? desc : "",-1); } on_close_subwindow(self); @@ -1685,6 +1688,7 @@ 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(widgets); + gtk_tree_selection_unselect_all(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->MainTree))); gtk_widget_show(window->MainWindow); gtk_widget_hide(window->StatisticsFrame); gtk_widget_hide(window->ControlSectionBox); @@ -1702,14 +1706,10 @@ void on_log_edit(GtkWidget *self,main_window *widgets){ char *paths; int size; char *description; + gboolean is_standard; int protect; - gtk_tree_model_get(model,&iter,0,&name,1,&paths,2,&description,4,&protect,-1); + gtk_tree_model_get(model,&iter,0,&name,1,&paths,2,&description,3,&is_standard,4,&protect,-1); gtk_entry_set_text(GTK_ENTRY(window->NameEntry),name); - gtk_entry_set_has_frame(GTK_ENTRY(window->NameEntry),0); - gtk_widget_set_sensitive(window->NameEntry,0); - gtk_style_context_add_class(gtk_widget_get_style_context(window->NameEntry),"nobackground"); - gtk_style_context_add_class(gtk_widget_get_style_context(window->NameEntry),"noborder"); - gtk_style_context_add_class(gtk_widget_get_style_context(window->NameEntry),"instant"); if (!strcmp(name,"journald")){ gtk_widget_hide(window->LogrotateButton); gtk_widget_hide(window->MetalogButton); @@ -1758,7 +1758,18 @@ void on_log_edit(GtkWidget *self,main_window *widgets){ gtk_widget_show(last); g_signal_connect(G_OBJECT(last),"clicked",G_CALLBACK(on_log_path_append),window); gtk_widget_set_sensitive(window->LogTypeCombo,0); - // gtk_widget_set_sensitive(window->LogDescriptionEntry,0); + if (is_standard) { + gtk_widget_set_sensitive(window->NameEntry,0); + gtk_widget_set_sensitive(window->LogDescriptionEntry,0); + gtk_entry_set_has_frame(GTK_ENTRY(window->NameEntry),0); + gtk_widget_set_sensitive(window->NameEntry,0); + gtk_style_context_add_class(gtk_widget_get_style_context(window->NameEntry),"nobackground"); + gtk_style_context_add_class(gtk_widget_get_style_context(window->NameEntry),"noborder"); + gtk_style_context_add_class(gtk_widget_get_style_context(window->NameEntry),"instant"); + } else { + gtk_widget_set_sensitive(window->NameEntry,1); + gtk_widget_set_sensitive(window->LogDescriptionEntry,1); + } } }