From 5bdef3306e0720d44509b9ddce23b7e6ac0a143a Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Fri, 2 Feb 2024 15:02:39 +0600 Subject: [PATCH] Sensitivity logic for main window buttons --- source/ubl-settings-services.c | 18 ++++++++++++++++++ source/ubl-settings-services.h | 2 ++ ubl-settings-services.glade | 7 +++++++ 3 files changed, 27 insertions(+) diff --git a/source/ubl-settings-services.c b/source/ubl-settings-services.c index bb111a0..1111c33 100644 --- a/source/ubl-settings-services.c +++ b/source/ubl-settings-services.c @@ -598,6 +598,23 @@ void on_activate(GtkTreeView *self, main_window *widgets){ main_config.rmb_clicked=0; } +void on_tree_selection_changed(GtkWidget *self, main_window *widgets){ + if (self){}; + GtkTreeModel *model = GTK_TREE_MODEL(widgets->liststore2); + GtkTreeIter iter; + int switch_status=0; + if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->MainTree)),&model,&iter)){ + switch_status=1; + } + gtk_widget_set_sensitive(widgets->ConfigAutostartButton,switch_status); + gtk_widget_set_sensitive(widgets->ConfigAutostopButton,switch_status); + gtk_widget_set_sensitive(widgets->ConfigBlockButton,switch_status); + gtk_widget_set_sensitive(widgets->SystemAutostartButton,switch_status); + gtk_widget_set_sensitive(widgets->SystemLaunchButton,switch_status); + gtk_widget_set_sensitive(widgets->InfoButton,switch_status); + gtk_widget_set_sensitive(widgets->LogButton,switch_status); +} + /**yon_main_window_complete(main_window *widgets) * [EN] * @@ -654,6 +671,7 @@ void yon_main_window_complete(main_window *widgets){ g_signal_connect(G_OBJECT(widgets->SaveMenuItem),"activate",G_CALLBACK(on_config_global_local_save),NULL); g_signal_connect(G_OBJECT(widgets->SaveLocalMenuItem),"activate",G_CALLBACK(on_config_local_save),NULL); g_signal_connect(G_OBJECT(widgets->SaveGlobalMenuItem),"activate",G_CALLBACK(on_config_global_save),NULL); + g_signal_connect(G_OBJECT(widgets->MainTree),"cursor-changed",G_CALLBACK(on_tree_selection_changed),widgets); g_list_free(list); main_config.ServiceFilter = gtk_tree_model_filter_new(GTK_TREE_MODEL(widgets->liststore2),NULL); gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(main_config.ServiceFilter),(GtkTreeModelFilterVisibleFunc)on_service_filter,NULL,NULL); diff --git a/source/ubl-settings-services.h b/source/ubl-settings-services.h index 4df1a05..5647ff6 100644 --- a/source/ubl-settings-services.h +++ b/source/ubl-settings-services.h @@ -226,6 +226,8 @@ void yon_load_proceed(YON_CONFIG_TYPE type); void config_init(); +void on_tree_selection_changed(GtkWidget *self, main_window *widgets); + void yon_main_window_complete(main_window *widgets); diff --git a/ubl-settings-services.glade b/ubl-settings-services.glade index 4b2b7b1..0e0d092 100644 --- a/ubl-settings-services.glade +++ b/ubl-settings-services.glade @@ -183,6 +183,7 @@ True + False True True Toggle autostart at configuration @@ -200,6 +201,7 @@ True + False True True Toggle autostop at configuration @@ -217,6 +219,7 @@ True + False True True Toggle service blocking at configuration @@ -234,6 +237,7 @@ True + False True True Toggle autostart at system @@ -251,6 +255,7 @@ True + False True True Launch service @@ -268,6 +273,7 @@ True + False True True Check service status @@ -285,6 +291,7 @@ True + False True True Check service log