| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -1854,6 +1854,32 @@ void on_main_delete(GtkWidget *, main_window *widgets){
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						}
 | 
					 | 
					 | 
					 | 
						}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					}
 | 
					 | 
					 | 
					 | 
					}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					void on_user_info(GtkWidget *,main_window *widgets){
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						int page = gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook));
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						char *target_user = NULL;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						GtkTreeIter iter;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						GtkTreeModel *model = NULL;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						switch (page){
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							case 1:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							case 3:{
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
								return;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							} break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							case 0:{
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
								if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->UsersTree)),&model,&iter)){
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
									return;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
								}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							} break;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							case 2:{
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
								if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SystemTree)),&model,&iter)){
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
									return;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
								}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						gtk_tree_model_get(model,&iter,2,&target_user,-1);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						char *command = user_info_command(target_user);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						yon_terminal_window_launch(GTK_WINDOW(widgets->Window),command,yon_char_get_localised_from_lib(SUCCESS_LABEL),yon_char_get_localised_from_lib(FAIL_LABEL));
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					void on_config_update(GtkWidget *, main_window *widgets){
 | 
					 | 
					 | 
					 | 
					void on_config_update(GtkWidget *, main_window *widgets){
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						if (main_config.load_mode==YON_CONFIG_GLOBAL){
 | 
					 | 
					 | 
					 | 
						if (main_config.load_mode==YON_CONFIG_GLOBAL){
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							on_config_global_load(NULL,widgets);
 | 
					 | 
					 | 
					 | 
							on_config_global_load(NULL,widgets);
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -2103,6 +2129,7 @@ void on_notebook_page_changed(GtkWidget *, GtkWidget *, int num, main_window *wi
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							gtk_widget_show(widgets->AddButton);
 | 
					 | 
					 | 
					 | 
							gtk_widget_show(widgets->AddButton);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							gtk_widget_show(widgets->EditButton);
 | 
					 | 
					 | 
					 | 
							gtk_widget_show(widgets->EditButton);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							gtk_widget_show(widgets->DeleteButton);
 | 
					 | 
					 | 
					 | 
							gtk_widget_show(widgets->DeleteButton);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							gtk_widget_show(widgets->UserInfoButton);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							gtk_widget_hide(widgets->UserAddToConfigButton);
 | 
					 | 
					 | 
					 | 
							gtk_widget_hide(widgets->UserAddToConfigButton);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							GtkTreeModel *model = GTK_TREE_MODEL(widgets->UsersList);
 | 
					 | 
					 | 
					 | 
							GtkTreeModel *model = GTK_TREE_MODEL(widgets->UsersList);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->UsersTree)),&model,&iter)){
 | 
					 | 
					 | 
					 | 
							if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->UsersTree)),&model,&iter)){
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -2117,6 +2144,7 @@ void on_notebook_page_changed(GtkWidget *, GtkWidget *, int num, main_window *wi
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							gtk_widget_show(widgets->EditButton);
 | 
					 | 
					 | 
					 | 
							gtk_widget_show(widgets->EditButton);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							gtk_widget_show(widgets->DeleteButton);
 | 
					 | 
					 | 
					 | 
							gtk_widget_show(widgets->DeleteButton);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							gtk_widget_hide(widgets->UserAddToConfigButton);
 | 
					 | 
					 | 
					 | 
							gtk_widget_hide(widgets->UserAddToConfigButton);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							gtk_widget_hide(widgets->UserInfoButton);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							GtkTreeModel *model = GTK_TREE_MODEL(widgets->GroupsList);
 | 
					 | 
					 | 
					 | 
							GtkTreeModel *model = GTK_TREE_MODEL(widgets->GroupsList);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->GroupsTree)),&model,&iter)){
 | 
					 | 
					 | 
					 | 
							if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->GroupsTree)),&model,&iter)){
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								gtk_widget_set_sensitive(widgets->EditButton,1);
 | 
					 | 
					 | 
					 | 
								gtk_widget_set_sensitive(widgets->EditButton,1);
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -2128,6 +2156,7 @@ void on_notebook_page_changed(GtkWidget *, GtkWidget *, int num, main_window *wi
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						} else if (num==2){
 | 
					 | 
					 | 
					 | 
						} else if (num==2){
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							gtk_widget_hide(widgets->AddButton);
 | 
					 | 
					 | 
					 | 
							gtk_widget_hide(widgets->AddButton);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							gtk_widget_hide(widgets->EditButton);
 | 
					 | 
					 | 
					 | 
							gtk_widget_hide(widgets->EditButton);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							gtk_widget_show(widgets->UserInfoButton);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							gtk_widget_show(widgets->UserAddToConfigButton);
 | 
					 | 
					 | 
					 | 
							gtk_widget_show(widgets->UserAddToConfigButton);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							GtkTreeModel *model = GTK_TREE_MODEL(widgets->liststore1);
 | 
					 | 
					 | 
					 | 
							GtkTreeModel *model = GTK_TREE_MODEL(widgets->liststore1);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SystemTree)),&model,&iter)){
 | 
					 | 
					 | 
					 | 
							if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SystemTree)),&model,&iter)){
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -2142,6 +2171,7 @@ void on_notebook_page_changed(GtkWidget *, GtkWidget *, int num, main_window *wi
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							gtk_widget_hide(widgets->AddButton);
 | 
					 | 
					 | 
					 | 
							gtk_widget_hide(widgets->AddButton);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							gtk_widget_hide(widgets->EditButton);
 | 
					 | 
					 | 
					 | 
							gtk_widget_hide(widgets->EditButton);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							gtk_widget_show(widgets->UserAddToConfigButton);
 | 
					 | 
					 | 
					 | 
							gtk_widget_show(widgets->UserAddToConfigButton);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							gtk_widget_hide(widgets->UserInfoButton);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							GtkTreeModel *model = GTK_TREE_MODEL(widgets->liststore2);
 | 
					 | 
					 | 
					 | 
							GtkTreeModel *model = GTK_TREE_MODEL(widgets->liststore2);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SystemGroupsTree)),&model,&iter)){
 | 
					 | 
					 | 
					 | 
							if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SystemGroupsTree)),&model,&iter)){
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								gtk_widget_set_sensitive(widgets->UserAddToConfigButton,1);
 | 
					 | 
					 | 
					 | 
								gtk_widget_set_sensitive(widgets->UserAddToConfigButton,1);
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -2213,6 +2243,7 @@ main_window *yon_main_window_complete(main_window *widgets){
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						widgets->EditButton=yon_gtk_builder_get_widget(builder,"EditButton");
 | 
					 | 
					 | 
					 | 
						widgets->EditButton=yon_gtk_builder_get_widget(builder,"EditButton");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						widgets->DeleteButton=yon_gtk_builder_get_widget(builder,"DeleteButton");
 | 
					 | 
					 | 
					 | 
						widgets->DeleteButton=yon_gtk_builder_get_widget(builder,"DeleteButton");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						widgets->UpdateButton=yon_gtk_builder_get_widget(builder,"UpdateButton");
 | 
					 | 
					 | 
					 | 
						widgets->UpdateButton=yon_gtk_builder_get_widget(builder,"UpdateButton");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						widgets->UserInfoButton=yon_gtk_builder_get_widget(builder,"UserInfoButton");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						widgets->UsersTree=yon_gtk_builder_get_widget(builder,"UsersTree");
 | 
					 | 
					 | 
					 | 
						widgets->UsersTree=yon_gtk_builder_get_widget(builder,"UsersTree");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						widgets->GroupsTree=yon_gtk_builder_get_widget(builder,"GroupsTree");
 | 
					 | 
					 | 
					 | 
						widgets->GroupsTree=yon_gtk_builder_get_widget(builder,"GroupsTree");
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						widgets->MainNotebook=yon_gtk_builder_get_widget(builder,"MainNotebook");
 | 
					 | 
					 | 
					 | 
						widgets->MainNotebook=yon_gtk_builder_get_widget(builder,"MainNotebook");
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -2247,6 +2278,7 @@ main_window *yon_main_window_complete(main_window *widgets){
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    g_signal_connect(G_OBJECT(widgets->button2),"clicked",G_CALLBACK(on_ubl_settings_usergroups_additional_settings_open),widgets);
 | 
					 | 
					 | 
					 | 
					    g_signal_connect(G_OBJECT(widgets->button2),"clicked",G_CALLBACK(on_ubl_settings_usergroups_additional_settings_open),widgets);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    g_signal_connect(G_OBJECT(widgets->UserAddToConfigButton),"clicked",G_CALLBACK(on_user_sync_with_config),widgets);
 | 
					 | 
					 | 
					 | 
					    g_signal_connect(G_OBJECT(widgets->UserAddToConfigButton),"clicked",G_CALLBACK(on_user_sync_with_config),widgets);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    g_signal_connect(G_OBJECT(widgets->UpdateButton),"clicked",G_CALLBACK(on_config_update),widgets);
 | 
					 | 
					 | 
					 | 
					    g_signal_connect(G_OBJECT(widgets->UpdateButton),"clicked",G_CALLBACK(on_config_update),widgets);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    g_signal_connect(G_OBJECT(widgets->UserInfoButton),"clicked",G_CALLBACK(on_user_info),widgets);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						g_signal_connect(G_OBJECT(widgets->SavingSettingsButton),"clicked",G_CALLBACK(on_saving_settings_open),widgets);
 | 
					 | 
					 | 
					 | 
						g_signal_connect(G_OBJECT(widgets->SavingSettingsButton),"clicked",G_CALLBACK(on_saving_settings_open),widgets);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    g_signal_connect(G_OBJECT(widgets->SaveMenuItem),"activate",G_CALLBACK(on_config_save),widgets);
 | 
					 | 
					 | 
					 | 
					    g_signal_connect(G_OBJECT(widgets->SaveMenuItem),"activate",G_CALLBACK(on_config_save),widgets);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    g_signal_connect(G_OBJECT(widgets->UsersTree),"cursor-changed",G_CALLBACK(on_selection_changed),widgets);
 | 
					 | 
					 | 
					 | 
					    g_signal_connect(G_OBJECT(widgets->UsersTree),"cursor-changed",G_CALLBACK(on_selection_changed),widgets);
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
 
 |