From 6ff395095f5013cb5501d8dd526c5fed87609dfb Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Fri, 26 Apr 2024 11:05:34 +0600 Subject: [PATCH] Added restart service button --- source/ubl-settings-services.c | 29 +++++----- source/ubl-settings-services.h | 2 + source/ubl-strings.h | 4 +- ubl-settings-services.glade | 98 +++++++++++++++++++++++++--------- 4 files changed, 90 insertions(+), 43 deletions(-) diff --git a/source/ubl-settings-services.c b/source/ubl-settings-services.c index 6062f47..336900b 100644 --- a/source/ubl-settings-services.c +++ b/source/ubl-settings-services.c @@ -529,17 +529,6 @@ void on_system_launch_clicked(GtkWidget *self, char *path, main_window *widgets) gtk_list_store_set(GTK_LIST_STORE(model),&iter,4,1,-1); } } - - // yon_char_parsed_free(result,size); - // yon_launch(service_start_command(service_name)); - // 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")){ - // gtk_list_store_set(GTK_LIST_STORE(model),&iter,4,1,-1); - // } else { - // yon_ubl_status_box_render(SERVICE_START_FAILED_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); - // } } } @@ -1353,6 +1342,8 @@ gboolean yon_interface_update(main_window *widgets){ void on_interface_update(GtkWidget *self, main_window *widgets){ if (self){}; if (!main_config.update_thread_active){ + gtk_tree_selection_unselect_all(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SystemUnitsTree))); + gtk_tree_selection_unselect_all(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->UserUnitsTree))); main_config.update_thread_active=1; pthread_t tid; pthread_create(&tid,NULL,(void*)(void*)((yon_interface_update)),widgets); @@ -1417,6 +1408,7 @@ void on_tree_selection_changed(GtkWidget *self, main_window *widgets){ if (getuid()==0){ gtk_widget_set_sensitive(widgets->SystemEditButton,1); gtk_widget_set_sensitive(widgets->SystemLogButton,1); + gtk_widget_set_sensitive(widgets->SystemUpdateServiceButton,1); } } else { @@ -1427,6 +1419,7 @@ void on_tree_selection_changed(GtkWidget *self, main_window *widgets){ if (getuid()==0){ gtk_widget_set_sensitive(widgets->SystemEditButton,0); gtk_widget_set_sensitive(widgets->SystemLogButton,0); + gtk_widget_set_sensitive(widgets->SystemUpdateServiceButton,0); } } } else if (page==1){ @@ -1442,7 +1435,7 @@ void on_tree_selection_changed(GtkWidget *self, main_window *widgets){ if (getuid()==0){ gtk_widget_set_sensitive(widgets->UserEditButton,1); gtk_widget_set_sensitive(widgets->UserLogButton,1); - gtk_widget_set_sensitive(widgets->UserServiceUpdateButton,1); + gtk_widget_set_sensitive(widgets->UserUpdateServiceButton,1); } } else { gtk_label_set_text(GTK_LABEL(widgets->UserServiceLabel),""); @@ -1452,7 +1445,7 @@ void on_tree_selection_changed(GtkWidget *self, main_window *widgets){ if (getuid()==0){ gtk_widget_set_sensitive(widgets->UserEditButton,0); gtk_widget_set_sensitive(widgets->UserLogButton,0); - gtk_widget_set_sensitive(widgets->UserServiceUpdateButton,0); + gtk_widget_set_sensitive(widgets->UserUpdateServiceButton,0); } } @@ -1506,6 +1499,7 @@ void yon_main_window_complete(main_window *widgets){ widgets->SystemPrevButton=yon_gtk_builder_get_widget(builder,"SystemPrevButton"); widgets->SystemUpdateButton=yon_gtk_builder_get_widget(builder,"SystemUpdateButton"); widgets->SystemServiceUpdateButton=yon_gtk_builder_get_widget(builder,"SystemServiceUpdateButton"); + widgets->SystemUpdateServiceButton=yon_gtk_builder_get_widget(builder,"SystemUpdateServiceButton"); widgets->SystemInfoButton=yon_gtk_builder_get_widget(builder,"SystemInfoButton"); widgets->SystemLogButton=yon_gtk_builder_get_widget(builder,"SystemLogButton"); widgets->SystemEditButton=yon_gtk_builder_get_widget(builder,"SystemEditButton"); @@ -1542,6 +1536,7 @@ void yon_main_window_complete(main_window *widgets){ widgets->UserPrevButton=yon_gtk_builder_get_widget(builder,"UserPrevButton"); widgets->UserUpdateButton=yon_gtk_builder_get_widget(builder,"UserUpdateButton"); widgets->UserServiceUpdateButton=yon_gtk_builder_get_widget(builder,"UserServiceUpdateButton"); + widgets->UserUpdateServiceButton=yon_gtk_builder_get_widget(builder,"UserUpdateServiceButton"); widgets->UserInfoButton=yon_gtk_builder_get_widget(builder,"UserInfoButton"); widgets->UserLogButton=yon_gtk_builder_get_widget(builder,"UserLogButton"); widgets->UserEditButton=yon_gtk_builder_get_widget(builder,"UserEditButton"); @@ -1590,7 +1585,8 @@ void yon_main_window_complete(main_window *widgets){ g_signal_connect(G_OBJECT(widgets->SystemPrevButton),"clicked",G_CALLBACK(on_system_update_hz_clicked),widgets); g_signal_connect(G_OBJECT(widgets->SystemUpdateButton),"clicked",G_CALLBACK(on_interface_update),widgets); - g_signal_connect(G_OBJECT(widgets->SystemServiceUpdateButton),"clicked",G_CALLBACK(on_system_restart_clicked),widgets); + g_signal_connect(G_OBJECT(widgets->SystemServiceUpdateButton),"clicked",G_CALLBACK(on_system_update_clicked),widgets); + g_signal_connect(G_OBJECT(widgets->SystemUpdateServiceButton),"clicked",G_CALLBACK(on_system_restart_clicked),widgets); g_signal_connect(G_OBJECT(widgets->SystemInfoButton),"clicked",G_CALLBACK(on_system_info_clicked),widgets); g_signal_connect(G_OBJECT(widgets->SystemLogButton),"clicked",G_CALLBACK(on_system_log_clicked),widgets); g_signal_connect(G_OBJECT(widgets->SystemEditButton),"clicked",G_CALLBACK(on_system_edit_clicked),widgets); @@ -1602,7 +1598,8 @@ void yon_main_window_complete(main_window *widgets){ g_signal_connect(G_OBJECT(widgets->UserPrevButton),"clicked",G_CALLBACK(on_user_update_hz_clicked),widgets); g_signal_connect(G_OBJECT(widgets->UserUpdateButton),"clicked",G_CALLBACK(on_interface_update),widgets); - g_signal_connect(G_OBJECT(widgets->UserServiceUpdateButton),"clicked",G_CALLBACK(on_system_restart_clicked),widgets); + g_signal_connect(G_OBJECT(widgets->UserServiceUpdateButton),"clicked",G_CALLBACK(on_user_update_clicked),widgets); + g_signal_connect(G_OBJECT(widgets->UserUpdateServiceButton),"clicked",G_CALLBACK(on_system_restart_clicked),widgets); g_signal_connect(G_OBJECT(widgets->UserInfoButton),"clicked",G_CALLBACK(on_user_info_clicked),widgets); g_signal_connect(G_OBJECT(widgets->UserLogButton),"clicked",G_CALLBACK(on_user_log_clicked),widgets); g_signal_connect(G_OBJECT(widgets->UserEditButton),"clicked",G_CALLBACK(on_user_edit_clicked),widgets); @@ -1639,7 +1636,7 @@ void yon_main_window_complete(main_window *widgets){ g_signal_connect(G_OBJECT(widgets->UserConfigBlockCell),"toggled",G_CALLBACK(on_config_block_clicked),widgets); if (getuid()==0){ - gtk_widget_set_sensitive(widgets->UserUpdateButton,0); + gtk_widget_set_sensitive(widgets->UserServiceUpdateButton,0); gtk_widget_set_sensitive(widgets->UserPrevButton,0); g_signal_connect(G_OBJECT(widgets->SystemAutostartCell),"toggled",G_CALLBACK(on_system_autostart_clicked),widgets); g_signal_connect(G_OBJECT(widgets->SystemLaunchedCell),"toggled",G_CALLBACK(on_system_launch_clicked),widgets); diff --git a/source/ubl-settings-services.h b/source/ubl-settings-services.h index 86ea10b..45e190d 100644 --- a/source/ubl-settings-services.h +++ b/source/ubl-settings-services.h @@ -160,6 +160,7 @@ typedef struct { GtkWidget *SystemPrevButton; GtkWidget *SystemUpdateButton; GtkWidget *SystemServiceUpdateButton; + GtkWidget *SystemUpdateServiceButton; GtkWidget *SystemInfoButton; GtkWidget *SystemLogButton; GtkWidget *SystemEditButton; @@ -178,6 +179,7 @@ typedef struct { GtkWidget *UserPrevButton; GtkWidget *UserUpdateButton; GtkWidget *UserServiceUpdateButton; + GtkWidget *UserUpdateServiceButton; GtkWidget *UserInfoButton; GtkWidget *UserLogButton; GtkWidget *UserEditButton; diff --git a/source/ubl-strings.h b/source/ubl-strings.h index cfb97a9..974fddd 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -148,4 +148,6 @@ #define SERVICE_RELOAD_SUCCESS_LABEL _("Service has been successfully restarted") -#define SAVE_LABEL _("Save") \ No newline at end of file +#define SAVE_LABEL _("Save") + +#define service_tooltip_template() yon_char_unite("",target,"\n",_("Description:"),description,"\n",_("Unit file:"),unit,"\n",_("Status:"),status,"\n",) \ No newline at end of file diff --git a/ubl-settings-services.glade b/ubl-settings-services.glade index e8022ad..40e4cca 100644 --- a/ubl-settings-services.glade +++ b/ubl-settings-services.glade @@ -165,6 +165,16 @@ False com.ublinux.ubl-settings-services.update-symbolic + + True + False + com.ublinux.ubl-settings-services.update-symbolic + + + True + False + com.ublinux.ubl-settings-services.update-symbolic + True False @@ -183,7 +193,7 @@ True False - com.ublinux.ubl-settings-services.sync-symbolic + com.ublinux.ubl-settings-services.update-symbolic True @@ -193,7 +203,7 @@ True False - com.ublinux.ubl-settings-services.update-symbolic + com.ublinux.ubl-settings-services.sync-symbolic True @@ -398,12 +408,12 @@ vertical 5 - + True True True - Update - image6 + Reexec systemd + image8 @@ -443,12 +453,12 @@ - + True True True - Reexec systemd - image8 + Update + image6 @@ -470,6 +480,24 @@ 4 + + + True + False + True + True + Reexec systemd + image20 + + + + False + True + 5 + + True @@ -485,7 +513,7 @@ False True - 5 + 6 @@ -503,7 +531,7 @@ False True - 6 + 7 @@ -521,7 +549,7 @@ False True - 7 + 8 @@ -539,7 +567,7 @@ False True - 8 + 9 @@ -550,7 +578,7 @@ False True - 9 + 10 @@ -575,7 +603,7 @@ False True - 10 + 11 @@ -984,12 +1012,12 @@ vertical 5 - + True True True - Update - image2 + Reexec systemd + image14 @@ -1029,12 +1057,12 @@ - + True True True - Reexec systemd - image14 + Update + image2 @@ -1056,6 +1084,24 @@ 4 + + + True + False + True + True + Reexec systemd + image21 + + + + False + True + 5 + + True @@ -1071,7 +1117,7 @@ False True - 5 + 6 @@ -1089,7 +1135,7 @@ False True - 6 + 7 @@ -1107,7 +1153,7 @@ False True - 7 + 8 @@ -1125,7 +1171,7 @@ False True - 8 + 9 @@ -1136,7 +1182,7 @@ False True - 9 + 10 @@ -1161,7 +1207,7 @@ False True - 10 + 11