From 982fbf53c0a0047731b7b071ed416227bb2ec66e Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Sat, 27 Apr 2024 17:09:17 +0600 Subject: [PATCH 1/2] test fix for service start/stop --- source/ubl-settings-services.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/source/ubl-settings-services.c b/source/ubl-settings-services.c index da50d7c..587d41a 100644 --- a/source/ubl-settings-services.c +++ b/source/ubl-settings-services.c @@ -471,7 +471,7 @@ void on_filter_changed(GtkWidget *self, main_window *widgets){ void on_system_kill_confirmed(GtkWidget *self,char *service_name){ if (self){}; - yon_launch_app_with_arguments(service_name,""); + yon_launch(service_name); } void on_system_launch_clicked(GtkWidget *self, char *path, main_window *widgets){ @@ -497,13 +497,14 @@ void on_system_launch_clicked(GtkWidget *self, char *path, main_window *widgets) dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data)); data->action_text=SERVICE_STOP_WARNING_LABEL(service_name); data->data=service_stop_command(service_name); - data->function=(void*)(void*)on_system_kill_confirmed; + data->function=NULL; int size; config_str result = yon_config_load(service_check_active_command(service_name),&size); yon_char_remove_last_symbol(result[0],'\n'); if (size>0&&!strcmp(result[0],"active")){ int responce = yon_confirmation_dialog_call(widgets->Window,data); if (responce == GTK_RESPONSE_ACCEPT){ + on_system_kill_confirmed(NULL,data->data); result = yon_config_load(service_check_active_command(service_name),&size); yon_char_remove_last_symbol(result[0],'\n'); if (strcmp(result[0],"active")){ @@ -513,6 +514,9 @@ void on_system_launch_clicked(GtkWidget *self, char *path, main_window *widgets) } } + } else { + gtk_list_store_set(GTK_LIST_STORE(model),&iter,4,0,-1); + } yon_char_parsed_free(result,size); } else { @@ -523,10 +527,11 @@ void on_system_launch_clicked(GtkWidget *self, char *path, main_window *widgets) int size; config_str result = yon_config_load(service_check_active_command(service_name),&size); yon_char_remove_last_symbol(result[0],'\n'); - if (size>0&&!strcmp(result[0],"active")){ + if (size>0&&strcmp(result[0],"active")){ int responce = yon_confirmation_dialog_call(widgets->Window,data); if (responce == GTK_RESPONSE_ACCEPT){ gtk_list_store_set(GTK_LIST_STORE(model),&iter,4,1,-1); + yon_ubl_status_box_render(SERVICE_RELOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); } } } From 5ee2e7ec392156b03b6e84e3a7097121a2310a4f Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Sat, 27 Apr 2024 17:42:58 +0600 Subject: [PATCH 2/2] Fixed session tab button sensitiveness --- source/ubl-settings-services.c | 16 ++++++++++++++++ source/ubl-settings-services.h | 2 ++ ubl-settings-services.glade | 3 +++ 3 files changed, 21 insertions(+) diff --git a/source/ubl-settings-services.c b/source/ubl-settings-services.c index 587d41a..1cc6ff6 100644 --- a/source/ubl-settings-services.c +++ b/source/ubl-settings-services.c @@ -571,6 +571,21 @@ void on_system_restart_clicked(GtkWidget *self, main_window *widgets){ } } +void on_sessions_selection_changed(GtkWidget *self, main_window *widgets){ + if (self){}; + GtkTreeIter iter; + GtkTreeModel *model; + if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SessionMainTree)),&model,&iter)){ + gtk_widget_set_sensitive(widgets->SessionStopButton,1); + gtk_widget_set_sensitive(widgets->SessionBlockButton,1); + gtk_widget_set_sensitive(widgets->SessionStartButton,1); + } else { + gtk_widget_set_sensitive(widgets->SessionStopButton,0); + gtk_widget_set_sensitive(widgets->SessionBlockButton,0); + gtk_widget_set_sensitive(widgets->SessionStartButton,0); + } +} + void yon_sessions_update(main_window *widgets){ gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->SessionMainTree),NULL); gtk_list_store_clear(widgets->SessionsList); @@ -1715,6 +1730,7 @@ void yon_main_window_complete(main_window *widgets){ g_signal_connect(G_OBJECT(widgets->SessionStartButton),"clicked",G_CALLBACK(on_session_activate),widgets); g_signal_connect(G_OBJECT(widgets->SessionStopButton),"clicked",G_CALLBACK(on_session_end),widgets); g_signal_connect(G_OBJECT(widgets->SessionBlockButton),"clicked",G_CALLBACK(on_session_block),widgets); + g_signal_connect(G_OBJECT(widgets->SessionMainTree),"cursor-changed",G_CALLBACK(on_sessions_selection_changed),widgets); g_signal_connect(G_OBJECT(widgets->SystemServicesStatusMenuItem),"activate",G_CALLBACK(on_system_services_status),widgets); g_signal_connect(G_OBJECT(widgets->InstalledUnitsStatusMenuItem),"activate",G_CALLBACK(on_units_status),widgets); diff --git a/source/ubl-settings-services.h b/source/ubl-settings-services.h index 125b3f0..6f2887d 100644 --- a/source/ubl-settings-services.h +++ b/source/ubl-settings-services.h @@ -302,6 +302,8 @@ log_window *yon_log_window_new(); gboolean yon_filter(GtkTreeModel* model, GtkTreeIter *iter, main_window *widgets); void on_filter_changed(GtkWidget *self, main_window *widgets); +void on_sessions_selection_changed(GtkWidget *self, main_window *widgets); + void on_system_services_status(GtkWidget *self, main_window *widgets); void on_user_services_status(GtkWidget *self, main_window *widgets); diff --git a/ubl-settings-services.glade b/ubl-settings-services.glade index 5a8db02..5246171 100644 --- a/ubl-settings-services.glade +++ b/ubl-settings-services.glade @@ -1941,6 +1941,7 @@ True + False True True Activate session @@ -1958,6 +1959,7 @@ True + False True True Terminate session @@ -1975,6 +1977,7 @@ True + False True True Lock session