Switched group deletion function to same as user's

pull/133/head
parent 4beb13a83c
commit e9233a78d2

@ -452,6 +452,50 @@ void yon_delete_confirmation_save(GtkWidget *self, dictionary *dict){
on_subwindow_close(self);
}
void yon_group_delete_confirmation_save(GtkWidget *self, dictionary *dict){
GtkTreeIter iter,itar;
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
yon_confirmation_window *window = yon_dictionary_get_data(dict->first->next,yon_confirmation_window*);
int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->GroupsList),&iter);
for (;valid;valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->GroupsList),&iter)){
char *name;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->GroupsList),&iter,2,&name,-1);
int valid2 = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(window->list),&itar);
for (;valid2;valid2 = gtk_tree_model_iter_next(GTK_TREE_MODEL(window->list),&itar)){
char *name_check;
int status,delete;
gtk_tree_model_get(GTK_TREE_MODEL(window->list),&itar,0,&delete,1,&name_check,-1);
if (!strcmp(name,name_check)&&delete){
gtk_list_store_remove(widgets->GroupsList,&iter);
yon_config_remove_by_key(USERADD(name));
yon_config_remove_by_key(USERSHADOW(name));
gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->GroupsList),&iter);
}
}
}
char *name;
if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->GroupsList),&iter)){
gtk_tree_model_get(GTK_TREE_MODEL(widgets->GroupsList),&iter,1,&name,-1);
int valid2 = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(window->list),&itar);
for (;valid2;valid2 = gtk_tree_model_iter_next(GTK_TREE_MODEL(window->list),&itar)){
char *name_check;
int status,delete;
gtk_tree_model_get(GTK_TREE_MODEL(window->list),&itar,0,&delete,1,&name_check,3,&status,-1);
if (!strcmp(name,name_check)&&delete){
gtk_list_store_remove(widgets->GroupsList,&iter);
yon_config_remove_by_key(GROUPADD(name));
gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->GroupsList),&iter);
if (status){
if (yon_char_parsed_check_exist(main_config.remove_homes,main_config.homes_size,name)==-1){
yon_char_parsed_add_or_create_if_exists(main_config.remove_homes,&main_config.homes_size,name);
}
}
}
}
}
on_subwindow_close(self);
}
yon_confirmation_window *yon_delete_confirmation_new(){
yon_confirmation_window *window = malloc(sizeof(yon_confirmation_window));
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_ubl_settings_usergroups_confirmation);
@ -514,6 +558,38 @@ void yon_delete_confirmation_open(main_window *widgets){
gtk_widget_show(window->Window);
}
void yon_group_delete_confirmation_open(main_window *widgets){
yon_confirmation_window *window = yon_delete_confirmation_new();
gtk_window_set_transient_for(GTK_WINDOW(window->Window),GTK_WINDOW(widgets->Window));
GtkTreeIter iter,itar;
dictionary *dict = NULL;
gtk_tree_view_column_set_visible(gtk_tree_view_get_column(GTK_TREE_VIEW(window->DeletionTree),2),0);
gtk_tree_view_column_set_visible(gtk_tree_view_get_column(GTK_TREE_VIEW(window->DeletionTree),3),0);
gtk_tree_view_column_set_visible(gtk_tree_view_get_column(GTK_TREE_VIEW(window->DeletionTree),4),0);
yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets);
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(yon_group_delete_confirmation_save),dict);
GtkTreeModel *model = GTK_TREE_MODEL(widgets->GroupsList);
GList *list = gtk_tree_selection_get_selected_rows(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->GroupsTree)),&model);
int chosen_size=0;
config_str chosen = NULL;
for (int i=0;i<g_list_length(list);i++){
char *current;
gtk_tree_model_get_iter(model,&iter,(GtkTreePath*)g_list_nth_data(list,i));
gtk_tree_model_get(model,&iter,1,&current,-1);
yon_char_parsed_add_or_create_if_exists(chosen,&chosen_size,current);
}
int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->GroupsList),&iter);
for (;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->GroupsList),&iter)){
char *name;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->GroupsList),&iter,1,&name,-1);
gtk_list_store_append(window->list,&itar);
gtk_list_store_set(window->list,&itar,0,yon_char_parsed_check_exist(chosen,chosen_size,name)>-1?1:0,1,name,-1);
free(name);
}
gtk_widget_show(window->Window);
}
yon_savasettings_window *yon_saving_settings_new(){
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_ubl_settings_usergroups_savesettings);
yon_savasettings_window *window = malloc(sizeof(yon_savasettings_window));
@ -2245,18 +2321,19 @@ void on_main_delete(GtkWidget *self, main_window *widgets){
if (gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==0){
yon_delete_confirmation_open(widgets);
} else {
model = GTK_TREE_MODEL(widgets->GroupsList);
cur_tree=widgets->GroupsTree;
if(gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(cur_tree)),&model,&iter)){
char *name;
gtk_tree_model_get(model,&iter,1,&name,-1);
data->action_text=DELETE_CONFIRMATION_LABEL("group",name);
if (yon_confirmation_dialog_call(self,data)==GTK_RESPONSE_ACCEPT){
yon_config_remove_by_key(GROUPADD(name));
gtk_list_store_remove(GTK_LIST_STORE(model),&iter);
}
}
yon_group_delete_confirmation_open(widgets);
// model = GTK_TREE_MODEL(widgets->GroupsList);
// cur_tree=widgets->GroupsTree;
// if(gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(cur_tree)),&model,&iter)){
// char *name;
// gtk_tree_model_get(model,&iter,1,&name,-1);
// data->action_text=DELETE_CONFIRMATION_LABEL("group",name);
// if (yon_confirmation_dialog_call(self,data)==GTK_RESPONSE_ACCEPT){
// yon_config_remove_by_key(GROUPADD(name));
// gtk_list_store_remove(GTK_LIST_STORE(model),&iter);
// }
// }
}
}

Loading…
Cancel
Save