From dc7a650fa7c0a8c3b0163448554d3d72157925be Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 18 Apr 2024 16:05:16 +0600 Subject: [PATCH] Added 'restart service' button --- Makefile | 1 + ....ubl-settings-services.update-symbolic.svg | 1 + source/ubl-settings-services.c | 8 +++ source/ubl-settings-services.h | 2 + ubl-settings-services.glade | 70 +++++++++++++++---- 5 files changed, 70 insertions(+), 12 deletions(-) create mode 100644 icons/com.ublinux.ubl-settings-services.update-symbolic.svg diff --git a/Makefile b/Makefile index a056d11..17148b3 100644 --- a/Makefile +++ b/Makefile @@ -142,6 +142,7 @@ install: check uninstall @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/actions/" "icons/com.ublinux.${PKGNAME}.properties-symbolic.svg" @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/actions/" "icons/com.ublinux.${PKGNAME}.source-symbolic.svg" @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/actions/" "icons/com.ublinux.${PKGNAME}.save-symbolic.svg" + @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/actions/" "icons/com.ublinux.${PKGNAME}.update-symbolic.svg" @install -Dm644 -t "${DESTDIR}/usr/share/polkit-1/actions/" "${CMAKE_BUILD_DIR}/com.ublinux.${PKGNAME}${PKGIDENT}.policy" @if [ -z ${DESTDIR} ]; then \ [ -d "${DESTDIR}/usr/share/icons/hicolor/" ] && gtk-update-icon-cache -fiq "${DESTDIR}/usr/share/icons/hicolor/" &>/dev/null || true; \ diff --git a/icons/com.ublinux.ubl-settings-services.update-symbolic.svg b/icons/com.ublinux.ubl-settings-services.update-symbolic.svg new file mode 100644 index 0000000..e0ae6ce --- /dev/null +++ b/icons/com.ublinux.ubl-settings-services.update-symbolic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/source/ubl-settings-services.c b/source/ubl-settings-services.c index 62843f5..2e41ed2 100644 --- a/source/ubl-settings-services.c +++ b/source/ubl-settings-services.c @@ -1363,6 +1363,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->SystemServiceUpdateButton,1); } } else { @@ -1373,6 +1374,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->SystemServiceUpdateButton,0); } } } else if (page==1){ @@ -1388,6 +1390,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); } } else { gtk_label_set_text(GTK_LABEL(widgets->UserServiceLabel),""); @@ -1397,6 +1400,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); } } @@ -1449,6 +1453,7 @@ void yon_main_window_complete(main_window *widgets){ widgets->SystemUnitsTree=yon_gtk_builder_get_widget(builder,"SystemUnitsTree"); 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->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"); @@ -1484,6 +1489,7 @@ void yon_main_window_complete(main_window *widgets){ widgets->UserUnitsTree=yon_gtk_builder_get_widget(builder,"UserUnitsTree"); 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->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"); @@ -1532,6 +1538,7 @@ 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_system_update_clicked),widgets); + g_signal_connect(G_OBJECT(widgets->SystemServiceUpdateButton),"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); @@ -1543,6 +1550,7 @@ 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_user_update_clicked),widgets); + g_signal_connect(G_OBJECT(widgets->UserServiceUpdateButton),"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); diff --git a/source/ubl-settings-services.h b/source/ubl-settings-services.h index 8fb44ab..e73afd7 100644 --- a/source/ubl-settings-services.h +++ b/source/ubl-settings-services.h @@ -159,6 +159,7 @@ typedef struct { GtkWidget *SystemUnitsTree; GtkWidget *SystemPrevButton; GtkWidget *SystemUpdateButton; + GtkWidget *SystemServiceUpdateButton; GtkWidget *SystemInfoButton; GtkWidget *SystemLogButton; GtkWidget *SystemEditButton; @@ -176,6 +177,7 @@ typedef struct { GtkWidget *UserUnitsTree; GtkWidget *UserPrevButton; GtkWidget *UserUpdateButton; + GtkWidget *UserServiceUpdateButton; GtkWidget *UserInfoButton; GtkWidget *UserLogButton; GtkWidget *UserEditButton; diff --git a/ubl-settings-services.glade b/ubl-settings-services.glade index 1b5f3a0..b76d22e 100644 --- a/ubl-settings-services.glade +++ b/ubl-settings-services.glade @@ -155,6 +155,11 @@ False com.ublinux.ubl-settings-services.properties-symbolic + + True + False + com.ublinux.ubl-settings-services.update-symbolic + True False @@ -170,6 +175,11 @@ False com.ublinux.ubl-settings-services.source-symbolic + + True + False + com.ublinux.ubl-settings-services.update-symbolic + True False @@ -427,6 +437,24 @@ 2 + + + True + False + True + True + Restart + image6 + + + + False + True + 3 + + True @@ -442,7 +470,7 @@ False True - 3 + 4 @@ -460,7 +488,7 @@ False True - 4 + 5 @@ -478,7 +506,7 @@ False True - 5 + 6 @@ -496,7 +524,7 @@ False True - 6 + 7 @@ -507,7 +535,7 @@ False True - 7 + 8 @@ -532,7 +560,7 @@ False True - 8 + 9 @@ -985,6 +1013,24 @@ 2 + + + True + False + True + True + Reexec systemd + image2 + + + + False + True + 3 + + True @@ -1000,7 +1046,7 @@ False True - 3 + 4 @@ -1018,7 +1064,7 @@ False True - 4 + 5 @@ -1036,7 +1082,7 @@ False True - 5 + 6 @@ -1054,7 +1100,7 @@ False True - 6 + 7 @@ -1065,7 +1111,7 @@ False True - 7 + 8 @@ -1090,7 +1136,7 @@ False True - 8 + 9