From 4bec9bf29316d5ad72ebb6ad1d4f10b6b1d0fd84 Mon Sep 17 00:00:00 2001 From: YanTheKaller Date: Mon, 8 Apr 2024 05:05:10 +0000 Subject: [PATCH 1/9] Fixed startup syncronization for columns size --- source/ubl-settings-services.c | 1 + 1 file changed, 1 insertion(+) diff --git a/source/ubl-settings-services.c b/source/ubl-settings-services.c index f9beddf..24f3119 100644 --- a/source/ubl-settings-services.c +++ b/source/ubl-settings-services.c @@ -1580,6 +1580,7 @@ void yon_main_window_complete(main_window *widgets){ yon_window_config_add_listener(g_list_nth_data(list,i),yon_char_append("TimersUnitsColumn",yon_char_from_int(i)),"fixed-width",YON_TYPE_INT); } g_list_free(list); + on_column_resize(NULL,NULL,widgets); g_signal_connect(G_OBJECT(widgets->LoadLocalMenuItem),"activate",G_CALLBACK(on_config_local_load),widgets); g_signal_connect(G_OBJECT(widgets->LoadGlobalMenuItem),"activate",G_CALLBACK(on_config_global_load),widgets); -- 2.35.1 From 95709979417f3e1f7ea83f69ea45caea126b580e Mon Sep 17 00:00:00 2001 From: YanTheKaller Date: Mon, 8 Apr 2024 05:21:54 +0000 Subject: [PATCH 2/9] fixed wrong icons --- source/ubl-settings-services.c | 1 + 1 file changed, 1 insertion(+) diff --git a/source/ubl-settings-services.c b/source/ubl-settings-services.c index 24f3119..2b397b4 100644 --- a/source/ubl-settings-services.c +++ b/source/ubl-settings-services.c @@ -564,6 +564,7 @@ log_window *yon_log_window_new(){ window->target=NULL; window->adjustment = GTK_ADJUSTMENT(gtk_builder_get_object(builder,"adjustment1")); yon_gtk_widget_set_scroll_window_for_scroll(window->Window,GTK_SCROLLBAR(window->TerminalScroll)); + gtk_window_set_icon_name(GTK_WINDOW(window->Window),"com.ublinux.ubl-settings-services"); GdkRGBA rgba; vte_terminal_get_color_background_for_draw(VTE_TERMINAL(window->SystemTerminal),&rgba); vte_terminal_set_color_cursor(VTE_TERMINAL(window->SystemTerminal),&rgba); -- 2.35.1 From 061302159d3d77048480da447b4aae9bf5b705dd Mon Sep 17 00:00:00 2001 From: YanTheKaller Date: Mon, 8 Apr 2024 07:42:58 +0000 Subject: [PATCH 3/9] Changed systemd relaunch and re-exec status message background, changed sensitivity logics for relaunch and re-execute buttons on both tabs --- source/ubl-settings-services.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/source/ubl-settings-services.c b/source/ubl-settings-services.c index 2b397b4..a38bc4d 100644 --- a/source/ubl-settings-services.c +++ b/source/ubl-settings-services.c @@ -580,14 +580,14 @@ void yon_system_systemd_restart(GtkWidget *self, main_window *widgets){ if (system(reload_systemd_root_command)){ yon_ubl_status_box_render(SYSTEMD_RELAUNCH_ERROR_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); } else { - yon_ubl_status_box_render(SYSTEMD_RELAUNCH_SUCCESS_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_box_render(SYSTEMD_RELAUNCH_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); } } else { if (system(reload_systemd_user_command)){ yon_ubl_status_box_render(SYSTEMD_RELAUNCH_ERROR_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); } else { - yon_ubl_status_box_render(SYSTEMD_RELAUNCH_SUCCESS_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_box_render(SYSTEMD_RELAUNCH_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); } } @@ -1285,6 +1285,8 @@ void config_init(){ main_config.lock_save_local=0; main_config.load_mode=1; main_config.update_thread_active=0; + main_config.launch_arguments=NULL; + main_config.launch_size=0; } void on_tree_selection_changed(GtkWidget *self, main_window *widgets){ @@ -1358,8 +1360,8 @@ void on_root_access(GtkWidget *self, main_window *widgets){ if (getuid()){ char *argline = LocaleName; for (int i=1;iUserConfigAutostopCell),"toggled",G_CALLBACK(on_config_autostop_clicked),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->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); @@ -1537,9 +1541,7 @@ void yon_main_window_complete(main_window *widgets){ g_signal_connect(G_OBJECT(widgets->UserSystemLaunchedCell),"toggled",G_CALLBACK(on_system_launch_clicked),widgets); } else { gtk_widget_set_sensitive(widgets->SystemUpdateButton,0); - gtk_widget_set_sensitive(widgets->UserUpdateButton,0); gtk_widget_set_sensitive(widgets->SystemPrevButton,0); - gtk_widget_set_sensitive(widgets->UserPrevButton,0); } yon_gtk_tree_view_minimal_fixed_size_set_full(GTK_TREE_VIEW(widgets->UserUnitsTree)); yon_gtk_tree_view_minimal_fixed_size_set_full(GTK_TREE_VIEW(widgets->SystemUnitsTree)); @@ -1643,8 +1645,9 @@ int main(int argc, char *argv[]){ yon_ubl_status_box_render(ROOT_WARNING_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); textdomain(LocaleName); } - main_config.launch_arguments=argv; + main_config.launch_arguments=yon_char_parsed_copy(argv,argc); main_config.launch_size=argc; + yon_char_parsed_add_or_create_if_exists(main_config.launch_arguments,&main_config.launch_size,"--socket-id=gfasdfg"); gtk_main(); return 0; } \ No newline at end of file -- 2.35.1 From 279885cafb4ec252ffca84df83fafb6c98b728e0 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Tue, 9 Apr 2024 10:45:38 +0600 Subject: [PATCH 4/9] fixed crash at root getting --- source/ubl-settings-services.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ubl-settings-services.c b/source/ubl-settings-services.c index a38bc4d..6df3ac8 100644 --- a/source/ubl-settings-services.c +++ b/source/ubl-settings-services.c @@ -1360,7 +1360,7 @@ void on_root_access(GtkWidget *self, main_window *widgets){ if (getuid()){ char *argline = LocaleName; for (int i=1;i Date: Tue, 9 Apr 2024 12:11:45 +0600 Subject: [PATCH 5/9] Removed test strings --- source/ubl-settings-services.c | 1 - 1 file changed, 1 deletion(-) diff --git a/source/ubl-settings-services.c b/source/ubl-settings-services.c index 6df3ac8..16ab617 100644 --- a/source/ubl-settings-services.c +++ b/source/ubl-settings-services.c @@ -1647,7 +1647,6 @@ int main(int argc, char *argv[]){ } main_config.launch_arguments=yon_char_parsed_copy(argv,argc); main_config.launch_size=argc; - yon_char_parsed_add_or_create_if_exists(main_config.launch_arguments,&main_config.launch_size,"--socket-id=gfasdfg"); gtk_main(); return 0; } \ No newline at end of file -- 2.35.1 From e970b3b10289970786e685361d22fc6fe22bd14e Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Tue, 9 Apr 2024 12:26:50 +0600 Subject: [PATCH 6/9] Fixed systemctl reload commands --- source/ubl-settings-services.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ubl-settings-services.c b/source/ubl-settings-services.c index 16ab617..17d33b9 100644 --- a/source/ubl-settings-services.c +++ b/source/ubl-settings-services.c @@ -576,7 +576,7 @@ log_window *yon_log_window_new(){ void yon_system_systemd_restart(GtkWidget *self, main_window *widgets){ if (self){}; if (widgets){ - if (getuid()!=0&>k_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==0){ + if (!getuid()&>k_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==0){ if (system(reload_systemd_root_command)){ yon_ubl_status_box_render(SYSTEMD_RELAUNCH_ERROR_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); } else { -- 2.35.1 From 8d0720e124013627a0557b0fb8d8f260d503f651 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Tue, 9 Apr 2024 17:30:23 +0600 Subject: [PATCH 7/9] Removed ability to save config files if application was launced without root rights --- source/ubl-settings-services.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/ubl-settings-services.c b/source/ubl-settings-services.c index 17d33b9..f2db465 100644 --- a/source/ubl-settings-services.c +++ b/source/ubl-settings-services.c @@ -880,6 +880,8 @@ void on_config_edit_clicked(GtkWidget *self, main_window *widgets){ GtkTreeModel *model = GTK_TREE_MODEL(widgets->ConfigList); if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->ConfigMainTree)),&model,&iter)){ log_window *window = yon_log_window_new(); + if (getuid()) + gtk_widget_set_sensitive(window->SaveButton,0); gtk_label_set_text(GTK_LABEL(window->webHeaderNameLabel),EDIT_CONFIG_LABEL); gtk_window_set_title(GTK_WINDOW(window->Window),EDIT_CONFIG_LABEL); gtk_widget_hide(gtk_widget_get_parent(window->SystemTerminal)); -- 2.35.1 From b73b7c33c2523baa4cbeb11afeac9cd95b408a91 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Wed, 10 Apr 2024 12:31:25 +0600 Subject: [PATCH 8/9] Added 'Show...' button to user services tab. It shows user-specific data --- source/ubl-settings-services.c | 23 ++++++--- source/ubl-settings-services.h | 15 +++++- ubl-settings-services.glade | 87 +++++++++++++++++++++++++++++----- 3 files changed, 105 insertions(+), 20 deletions(-) diff --git a/source/ubl-settings-services.c b/source/ubl-settings-services.c index f2db465..c5fb6b9 100644 --- a/source/ubl-settings-services.c +++ b/source/ubl-settings-services.c @@ -936,7 +936,7 @@ void on_units_status(GtkWidget *self, main_window *widgets){ log_window *window = yon_log_window_new(); gtk_label_set_text(GTK_LABEL(window->webHeaderNameLabel),INSTALLED_UNIT_LABEL); gtk_window_set_title(GTK_WINDOW(window->Window),INSTALLED_UNIT_LABEL); - window->target = installed_units_states_command; + window->target = !gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))?installed_units_states_command:user_installed_units_states_command; yon_terminal_integrated_start(window->SystemTerminal,window->target,NULL,NULL); gtk_widget_show(window->Window); @@ -950,7 +950,7 @@ void on_units_list_status(GtkWidget *self, main_window *widgets){ log_window *window = yon_log_window_new(); gtk_label_set_text(GTK_LABEL(window->webHeaderNameLabel),UNITS_LIST_LABEL); gtk_window_set_title(GTK_WINDOW(window->Window),UNITS_LIST_LABEL); - window->target = list_of_units_states_command; + window->target = !gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))?list_of_units_states_command:user_list_of_units_states_command; yon_terminal_integrated_start(window->SystemTerminal,window->target,NULL,NULL); gtk_widget_show(window->Window); @@ -964,7 +964,7 @@ void on_sockets_list_status(GtkWidget *self, main_window *widgets){ log_window *window = yon_log_window_new(); gtk_label_set_text(GTK_LABEL(window->webHeaderNameLabel),SOCKETS_LIST_LABEL); gtk_window_set_title(GTK_WINDOW(window->Window),SOCKETS_LIST_LABEL); - window->target = list_of_sockets_states_command; + window->target = !gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))?list_of_sockets_states_command:user_list_of_sockets_states_command; yon_terminal_integrated_start(window->SystemTerminal,window->target,NULL,NULL); gtk_widget_show(window->Window); @@ -978,7 +978,7 @@ void on_timers_list_status(GtkWidget *self, main_window *widgets){ log_window *window = yon_log_window_new(); gtk_label_set_text(GTK_LABEL(window->webHeaderNameLabel),TIMERS_LIST_LABEL); gtk_window_set_title(GTK_WINDOW(window->Window),TIMERS_LIST_LABEL); - window->target = list_of_timers_states_command; + window->target = !gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))?list_of_timers_states_command:user_list_of_timers_states_command; yon_terminal_integrated_start(window->SystemTerminal,window->target,NULL,NULL); gtk_widget_show(window->Window); @@ -1400,12 +1400,17 @@ void yon_main_window_complete(main_window *widgets){ widgets->MainNotebook=yon_gtk_builder_get_widget(builder,"MainNotebook"); widgets->SystemServicesStatusMenuItem=yon_gtk_builder_get_widget(builder,"SystemServicesStatusMenuItem"); - widgets->UserServicesStatusMenuItem=yon_gtk_builder_get_widget(builder,"UserServicesStatusMenuItem"); widgets->InstalledUnitsStatusMenuItem=yon_gtk_builder_get_widget(builder,"InstalledUnitsStatusMenuItem"); widgets->UnitsStatusListMenuItem=yon_gtk_builder_get_widget(builder,"UnitsStatusListMenuItem"); widgets->SocketsStatusListMenuItem=yon_gtk_builder_get_widget(builder,"SocketsStatusListMenuItem"); widgets->TimersStatusListMenuItem=yon_gtk_builder_get_widget(builder,"TimersStatusListMenuItem"); + widgets->UserServicesStatusMenuItem=yon_gtk_builder_get_widget(builder,"UserServicesStatusMenuItem"); + widgets->UserInstalledUnitsStatusMenuItem=yon_gtk_builder_get_widget(builder,"UserInstalledUnitsStatusMenuItem"); + widgets->UserUnitsStatusListMenuItem=yon_gtk_builder_get_widget(builder,"UserUnitsStatusListMenuItem"); + widgets->UserSocketsStatusListMenuItem=yon_gtk_builder_get_widget(builder,"UserSocketsStatusListMenuItem"); + widgets->UserTimersStatusListMenuItem=yon_gtk_builder_get_widget(builder,"UserTimersStatusListMenuItem"); + widgets->SystemSearchEntry=yon_gtk_builder_get_widget(builder,"SystemSearchEntry"); widgets->SystemFiltersCombo=yon_gtk_builder_get_widget(builder,"SystemFiltersCombo"); widgets->SystemInactiveShowCheck=yon_gtk_builder_get_widget(builder,"SystemInactiveShowCheck"); @@ -1520,12 +1525,17 @@ void yon_main_window_complete(main_window *widgets){ g_signal_connect(G_OBJECT(widgets->SessionBlockButton),"clicked",G_CALLBACK(on_session_block),widgets); g_signal_connect(G_OBJECT(widgets->SystemServicesStatusMenuItem),"activate",G_CALLBACK(on_system_services_status),widgets); - g_signal_connect(G_OBJECT(widgets->UserServicesStatusMenuItem),"activate",G_CALLBACK(on_user_services_status),widgets); g_signal_connect(G_OBJECT(widgets->InstalledUnitsStatusMenuItem),"activate",G_CALLBACK(on_units_status),widgets); g_signal_connect(G_OBJECT(widgets->UnitsStatusListMenuItem),"activate",G_CALLBACK(on_units_list_status),widgets); g_signal_connect(G_OBJECT(widgets->SocketsStatusListMenuItem),"activate",G_CALLBACK(on_sockets_list_status),widgets); g_signal_connect(G_OBJECT(widgets->TimersStatusListMenuItem),"activate",G_CALLBACK(on_timers_list_status),widgets); + g_signal_connect(G_OBJECT(widgets->UserServicesStatusMenuItem),"activate",G_CALLBACK(on_user_services_status),widgets); + g_signal_connect(G_OBJECT(widgets->UserInstalledUnitsStatusMenuItem),"activate",G_CALLBACK(on_units_status),widgets); + g_signal_connect(G_OBJECT(widgets->UserUnitsStatusListMenuItem),"activate",G_CALLBACK(on_units_list_status),widgets); + g_signal_connect(G_OBJECT(widgets->UserSocketsStatusListMenuItem),"activate",G_CALLBACK(on_sockets_list_status),widgets); + g_signal_connect(G_OBJECT(widgets->UserTimersStatusListMenuItem),"activate",G_CALLBACK(on_timers_list_status),widgets); + g_signal_connect(G_OBJECT(widgets->ConfigAutostartCell),"toggled",G_CALLBACK(on_config_autostart_clicked),widgets); g_signal_connect(G_OBJECT(widgets->ConfigAutostopCell),"toggled",G_CALLBACK(on_config_autostop_clicked),widgets); g_signal_connect(G_OBJECT(widgets->ConfigBlockCell),"toggled",G_CALLBACK(on_config_block_clicked),widgets); @@ -1533,6 +1543,7 @@ void yon_main_window_complete(main_window *widgets){ g_signal_connect(G_OBJECT(widgets->UserConfigAutostartCell),"toggled",G_CALLBACK(on_config_autostart_clicked),widgets); g_signal_connect(G_OBJECT(widgets->UserConfigAutostopCell),"toggled",G_CALLBACK(on_config_autostop_clicked),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->UserPrevButton,0); diff --git a/source/ubl-settings-services.h b/source/ubl-settings-services.h index 62429f2..b49aa1a 100644 --- a/source/ubl-settings-services.h +++ b/source/ubl-settings-services.h @@ -58,13 +58,18 @@ #define get_config_files_command "find /etc/systemd -iname *.conf -exec du -sh --time {} \\;|sed -e 's/\t/;/g'" #define system_services_status_command "systemctl status --no-pager" -#define user_services_status_command yon_char_unite("systemctl --user --machine=",yon_ubl_root_user_get(),"@ status --no-pager",NULL) #define installed_units_states_command "systemctl list-unit-files --no-pager" #define list_of_units_states_command "systemctl list-units --all --no-pager" #define list_of_sockets_states_command "systemctl list-sockets --all --no-pager" #define list_of_timers_states_command "systemctl list-timers --all --no-pager" #define get_timers_command "systemctl list-timers --all --no-pager --plain --no-legend --output=json" +#define user_services_status_command !getuid()?yon_char_unite("systemctl --user --machine=",yon_ubl_root_user_get(),"@ status --no-pager",NULL):"systemctl --user status --no-pager" +#define user_installed_units_states_command !getuid()?yon_char_unite("systemctl --user --machine=",yon_ubl_root_user_get(),"@ list-unit-files --no-pager",NULL):"systemctl --user list-unit-files --no-pager" +#define user_list_of_units_states_command !getuid()?yon_char_unite("systemctl --user --machine=",yon_ubl_root_user_get(),"@ list-units --all --no-pager",NULL):"systemctl --user list-units --all --no-pager" +#define user_list_of_sockets_states_command !getuid()?yon_char_unite("systemctl --user --machine=",yon_ubl_root_user_get(),"@ list-sockets --all --no-pager",NULL):"systemctl --user list-sockets --all --no-pager" +#define user_list_of_timers_states_command !getuid()?yon_char_unite("systemctl --user --machine=",yon_ubl_root_user_get(),"@ list-timers --all --no-pager",NULL):"systemctl --user list-timers --all --no-pager" + #define installed_units_command "systemctl list-unit-files --no-pager| sed -e 's/ */;/g'" #define list_of_units_command "systemctl list-units --all --no-pager| sed -e 's/ */;/g'" #define list_of_sockets_command "systemctl list-sockets --all --no-pager| sed -e 's/ */;/g'" @@ -189,11 +194,17 @@ typedef struct { GtkWidget *MainNotebook; GtkWidget *SystemServicesStatusMenuItem; - GtkWidget *UserServicesStatusMenuItem; GtkWidget *InstalledUnitsStatusMenuItem; GtkWidget *UnitsStatusListMenuItem; GtkWidget *SocketsStatusListMenuItem; GtkWidget *TimersStatusListMenuItem; + + GtkWidget *UserServicesStatusMenuItem; + GtkWidget *UserInstalledUnitsStatusMenuItem; + GtkWidget *UserUnitsStatusListMenuItem; + GtkWidget *UserSocketsStatusListMenuItem; + GtkWidget *UserTimersStatusListMenuItem; + GtkTreeModelFilter *SystemFilter; GtkTreeModelFilter *UserFilter; diff --git a/ubl-settings-services.glade b/ubl-settings-services.glade index 5d0fa4e..5be103e 100644 --- a/ubl-settings-services.glade +++ b/ubl-settings-services.glade @@ -198,14 +198,6 @@ True - - - True - False - User services status - True - - True @@ -239,6 +231,45 @@ + + True + False + + + True + False + User services status + + + + + True + False + Installed unit files + + + + + True + False + Units and status list + + + + + True + False + Sockets and status list + + + + + True + False + Timers and status list + + + True False @@ -1020,12 +1051,48 @@ + + False + True + 6 + + + + + True + False + False True 7 + + + True + True + False + True + Show... + menu2 + + + True + False + com.ublinux.ubl-settings-services.menu-symbolic + + + + + + False + True + 8 + + False @@ -1802,8 +1869,4 @@ - - True - False - -- 2.35.1 From c0e6d705c0b54ab0d7ff69c95a27abb1b30a9ed2 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Wed, 10 Apr 2024 17:28:20 +0600 Subject: [PATCH 9/9] Moved root button setup to library --- source/ubl-settings-services.c | 41 +--------------------------------- source/ubl-strings.h | 2 -- 2 files changed, 1 insertion(+), 42 deletions(-) diff --git a/source/ubl-settings-services.c b/source/ubl-settings-services.c index c5fb6b9..1a0b394 100644 --- a/source/ubl-settings-services.c +++ b/source/ubl-settings-services.c @@ -1353,29 +1353,6 @@ void on_tree_selection_changed(GtkWidget *self, main_window *widgets){ } } -void on_root_get_root(char *argline){ - yon_launch(argline); -} - -void on_root_access(GtkWidget *self, main_window *widgets){ - if (self){}; - if (getuid()){ - char *argline = LocaleName; - for (int i=1;iWindow); - } - } -} - /**yon_main_window_complete(main_window *widgets) * [EN] * @@ -1608,23 +1585,7 @@ void yon_main_window_complete(main_window *widgets){ g_signal_connect(G_OBJECT(widgets->SaveCustomMenuItem),"activate",G_CALLBACK(on_config_custom_save),NULL); g_signal_connect(G_OBJECT(widgets->SystemUnitsTree),"cursor-changed",G_CALLBACK(on_tree_selection_changed),widgets); g_signal_connect(G_OBJECT(widgets->UserUnitsTree),"cursor-changed",G_CALLBACK(on_tree_selection_changed),widgets); - GtkWidget *root_item = gtk_menu_item_new(); - gtk_style_context_add_class(gtk_widget_get_style_context(root_item),"menuitemtop"); - gtk_style_context_add_class(gtk_widget_get_style_context(widgets->DocumentationMenuItem),"menuitemmiddle"); - gtk_style_context_remove_class(gtk_widget_get_style_context(widgets->DocumentationMenuItem),"menuitemtop"); - GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,5); - GtkWidget *root_label = gtk_label_new(ROOT_CHECK_LABEL); - GtkWidget *root_check = gtk_check_button_new(); - gtk_menu_shell_prepend(GTK_MENU_SHELL(gtk_widget_get_parent(widgets->DocumentationMenuItem)),root_item); - gtk_box_pack_start(GTK_BOX(box),root_label,1,1,0); - gtk_box_pack_start(GTK_BOX(box),root_check,0,0,0); - gtk_container_add(GTK_CONTAINER(root_item),box); - gtk_widget_show_all(root_item); - g_signal_connect(G_OBJECT(root_item),"activate", G_CALLBACK(on_root_access),widgets); - if (getuid()==0) { - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(root_check),1); - gtk_widget_set_sensitive(root_item,0); - } + yon_root_button_setup((template_main_window*)widgets,main_config.launch_arguments,main_config.launch_size); gtk_tree_model_filter_set_visible_func(widgets->UserFilter,(GtkTreeModelFilterVisibleFunc)yon_filter,widgets,NULL); gtk_tree_model_filter_set_visible_func(widgets->SystemFilter,(GtkTreeModelFilterVisibleFunc)yon_filter,widgets,NULL); gtk_tree_view_set_search_column(GTK_TREE_VIEW(widgets->UserUnitsTree),5); diff --git a/source/ubl-strings.h b/source/ubl-strings.h index 971fb69..4700ee2 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -128,8 +128,6 @@ #define STATE_PLUGGED_LABEL _("plugged") #define STATE_ABANDONED_LABEL _("abandoned") -#define ROOT_CHECK_LABEL _("Upgrade to root") - #define SERVICE_STATE_TITLE_LABEL(target) yon_char_append(_("State of "),target) #define SERVICE_LOG_TITLE_LABEL(target) yon_char_unite(_("View")," ",target," ",_("log"),NULL) #define SERVICE_UNIT_EDIT_TITLE_LABEL _("Edit unit file") -- 2.35.1