Moved root button setup to library

pull/42/head
parent b73b7c33c2
commit c0e6d705c0

@ -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;i<main_config.launch_size;i++){
char *temp = yon_char_unite(argline," ", main_config.launch_arguments[i],NULL);
if(strcmp(argline,"")&&strcmp(argline,LocaleName))
free(argline);
argline=temp;
}
if (getuid()!=0){
argline = yon_char_unite("setsid /usr/bin/bash -c 'pkexec ",argline,"'; exit",NULL);
pthread_t thread_id;
pthread_create(&thread_id, NULL, (void *)on_root_get_root,argline);
gtk_widget_destroy(widgets->Window);
}
}
}
/**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);

@ -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")

Loading…
Cancel
Save