From b74e308983e269d5cc62321ca340e34dc3378b41 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 30 Oct 2023 17:47:48 +0600 Subject: [PATCH] Logrotate tab window buttons lock if nothing were chosen --- source/ubl-settings-logging.c | 27 ++++++++++++++++++++++ ubl-settings-logging-logrotate-table.glade | 4 ++++ 2 files changed, 31 insertions(+) diff --git a/source/ubl-settings-logging.c b/source/ubl-settings-logging.c index 90f4eb6..aa1b895 100644 --- a/source/ubl-settings-logging.c +++ b/source/ubl-settings-logging.c @@ -996,6 +996,30 @@ void on_log_edit_logrotate_settings(GtkWidget *self, dictionary *dict){ // Logrotate tab window +void on_logrotate_tab_selection_changed(GtkWidget *self, logrotate_window *window){ + GtkTreeModel *model = GTK_TREE_MODEL(main_config.logrotate_list); + GtkTreeIter iter; + if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(window->MainTree)),&model,&iter)){ + gtk_widget_set_sensitive(window->AddButton,1); + gtk_widget_set_sensitive(window->RemoveButton,1); + gtk_widget_set_sensitive(window->ConfigureButton,1); + } else { + gtk_widget_set_sensitive(window->AddButton,0); + gtk_widget_set_sensitive(window->RemoveButton,0); + gtk_widget_set_sensitive(window->ConfigureButton,0); + } +} + +void on_logrotate_applications_tab_selection_changed(GtkWidget *self, logrotate_window *window){ + GtkTreeModel *model = GTK_TREE_MODEL(main_config.logrotate_apps_list); + GtkTreeIter iter; + if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(window->AppsMainTree)),&model,&iter)){ + gtk_widget_set_sensitive(window->AppsConfigureButton,1); + } else { + gtk_widget_set_sensitive(window->AppsConfigureButton,0); + } +} + void on_logrotate_tab_open(GtkWidget *self, main_window *widgets){ logrotate_window *window = malloc(sizeof(logrotate_window)); GtkBuilder *builder = gtk_builder_new_from_resource(glade_logrotate_table_path); @@ -1019,6 +1043,9 @@ void on_logrotate_tab_open(GtkWidget *self, main_window *widgets){ g_signal_connect(G_OBJECT(window->RemoveButton),"clicked",G_CALLBACK(on_logrotate_remove),window); g_signal_connect(G_OBJECT(window->ConfigureButton),"clicked",G_CALLBACK(on_logrotate_edit),window); g_signal_connect(G_OBJECT(window->AppsConfigureButton),"clicked",G_CALLBACK(on_logrotate_apps_configure),window); + + g_signal_connect(G_OBJECT(window->MainTree),"cursor-changed",G_CALLBACK(on_logrotate_tab_selection_changed),window); + g_signal_connect(G_OBJECT(window->AppsMainTree),"cursor-changed",G_CALLBACK(on_logrotate_applications_tab_selection_changed),window); gtk_widget_show(window->Window); } diff --git a/ubl-settings-logging-logrotate-table.glade b/ubl-settings-logging-logrotate-table.glade index 7177eaa..b02c0fa 100644 --- a/ubl-settings-logging-logrotate-table.glade +++ b/ubl-settings-logging-logrotate-table.glade @@ -126,6 +126,7 @@ True + False True True image5 @@ -142,6 +143,7 @@ True + False True True image4 @@ -158,6 +160,7 @@ True + False True True image3 @@ -264,6 +267,7 @@ True + False True True image8