From d75564d032479e8ce0d92e22fdde7001448ddc28 Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Tue, 9 Dec 2025 13:22:52 +0600 Subject: [PATCH] Service window changes --- source/libublsettingsui-gtk3-service.c | 50 +++++++++++++++++++------- 1 file changed, 37 insertions(+), 13 deletions(-) diff --git a/source/libublsettingsui-gtk3-service.c b/source/libublsettingsui-gtk3-service.c index 068923e..e55e8c9 100644 --- a/source/libublsettingsui-gtk3-service.c +++ b/source/libublsettingsui-gtk3-service.c @@ -26,7 +26,9 @@ void __on_service_start_clicked(GtkWidget *, service_window *window){ yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),yon_char_get_localised_from_lib(FAIL_LABEL),5,BACKGROUND_IMAGE_FAIL_TYPE); return; }; - __on_service_update_clicked(NULL,window); + if (window->check_enable_command&&window->check_active_command){ + __on_service_update_clicked(NULL,window); + } } @@ -35,7 +37,9 @@ void __on_service_stop_clicked(GtkWidget *, service_window *window){ yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),yon_char_get_localised_from_lib(FAIL_LABEL),5,BACKGROUND_IMAGE_FAIL_TYPE); return; }; - __on_service_update_clicked(NULL,window); + if (window->check_enable_command&&window->check_active_command){ + __on_service_update_clicked(NULL,window); + } } @@ -44,7 +48,9 @@ void __on_service_enable_clicked(GtkWidget *, service_window *window){ yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),yon_char_get_localised_from_lib(FAIL_LABEL),5,BACKGROUND_IMAGE_FAIL_TYPE); return; }; - __on_service_update_clicked(NULL,window); + if (window->check_enable_command&&window->check_active_command){ + __on_service_update_clicked(NULL,window); + } } @@ -53,7 +59,9 @@ void __on_service_disable_clicked(GtkWidget *, service_window *window){ yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),yon_char_get_localised_from_lib(FAIL_LABEL),5,BACKGROUND_IMAGE_FAIL_TYPE); return; }; - __on_service_update_clicked(NULL,window); + if (window->check_enable_command&&window->check_active_command){ + __on_service_update_clicked(NULL,window); + } } void __on_service_restart_clicked(GtkWidget *, service_window *window){ @@ -67,8 +75,9 @@ void __on_service_restart_clicked(GtkWidget *, service_window *window){ yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),yon_char_get_localised_from_lib(FAIL_LABEL),5,BACKGROUND_IMAGE_FAIL_TYPE); return; }; - __on_service_update_clicked(NULL,window); - + if (window->check_enable_command&&window->check_active_command){ + __on_service_update_clicked(NULL,window); + } } void __on_service_status_clicked(GtkWidget *, service_window *window){ @@ -105,6 +114,7 @@ service_window *yon_service_window_new(char *name, char *start_command, char *disable_command, char *info_command, char *check_active_command, char *check_enable_command){ service_window *window = new(service_window); + memset(window,0,sizeof(service_window)); GtkBuilder *builder = gtk_builder_new_from_resource(ui_glade_path_service); window->MainWindow = yon_gtk_builder_get_widget(builder,"MainWindow"); window->StatusBox = yon_gtk_builder_get_widget(builder,"StatusBox"); @@ -142,13 +152,27 @@ service_window *yon_service_window_new(char *name, char *start_command, yon_gtk_window_setup(GTK_WINDOW(window->MainWindow),NULL,_SERVICE_HEAD_LABEL(window->name),yon_dull_icon_path,NULL); g_signal_connect(G_OBJECT(window->MainWindow),"destroy",G_CALLBACK(__on_closed),window); - g_signal_connect(G_OBJECT(window->StartButton),"clicked",G_CALLBACK(__on_service_start_clicked),window); - g_signal_connect(G_OBJECT(window->StopButton),"clicked",G_CALLBACK(__on_service_stop_clicked),window); - g_signal_connect(G_OBJECT(window->RestartButton),"clicked",G_CALLBACK(__on_service_restart_clicked),window); - g_signal_connect(G_OBJECT(window->StatusButton),"clicked",G_CALLBACK(__on_service_status_clicked),window); - g_signal_connect(G_OBJECT(window->UpdateButton),"clicked",G_CALLBACK(__on_service_update_clicked),window); - g_signal_connect(G_OBJECT(window->EnableButton),"clicked",G_CALLBACK(__on_service_enable_clicked),window); - g_signal_connect(G_OBJECT(window->DisableButton),"clicked",G_CALLBACK(__on_service_disable_clicked),window); + if (window->start_command){ + g_signal_connect(G_OBJECT(window->StartButton),"clicked",G_CALLBACK(__on_service_start_clicked),window); + } + if (window->stop_command){ + g_signal_connect(G_OBJECT(window->StopButton),"clicked",G_CALLBACK(__on_service_stop_clicked),window); + } + if (window->stop_command&&window->start_command){ + g_signal_connect(G_OBJECT(window->RestartButton),"clicked",G_CALLBACK(__on_service_restart_clicked),window); + } + if (window->info_command){ + g_signal_connect(G_OBJECT(window->StatusButton),"clicked",G_CALLBACK(__on_service_status_clicked),window); + } + if (window->check_enable_command&&window->check_active_command){ + g_signal_connect(G_OBJECT(window->UpdateButton),"clicked",G_CALLBACK(__on_service_update_clicked),window); + } + if (window->enable_command){ + g_signal_connect(G_OBJECT(window->EnableButton),"clicked",G_CALLBACK(__on_service_enable_clicked),window); + } + if (window->disable_command){ + g_signal_connect(G_OBJECT(window->DisableButton),"clicked",G_CALLBACK(__on_service_disable_clicked),window); + } if (!system(window->check_enable_command)){