diff --git a/source/ubl-settings-usergroups.c b/source/ubl-settings-usergroups.c index d6d3da9..8fdb6ed 100644 --- a/source/ubl-settings-usergroups.c +++ b/source/ubl-settings-usergroups.c @@ -210,19 +210,34 @@ void yon_delete_confirmation_save(GtkWidget *self, dictionary *dict){ 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; - gtk_tree_model_get(GTK_TREE_MODEL(window->list),&itar,1,&name_check,3,&status,-1); - if (!strcmp(name,name_check)){ - GtkTreeIter *it = gtk_tree_iter_copy(&iter); - if (!gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->UsersList),&iter)){ - iter = *gtk_tree_iter_copy(it); - if (!gtk_tree_model_iter_previous(GTK_TREE_MODEL(widgets->UsersList),&iter)){ - iter = *gtk_tree_iter_copy(it); + 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->UsersList,&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->UsersList),&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); } } - gtk_list_store_remove(widgets->UsersList,it); + } + } + } + char *name; + gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->UsersList),&iter); + gtk_tree_model_get(GTK_TREE_MODEL(widgets->UsersList),&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,3,&status,-1); + if (!strcmp(name,name_check)&&delete){ + gtk_list_store_remove(widgets->UsersList,&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->UsersList),&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); @@ -230,7 +245,6 @@ void yon_delete_confirmation_save(GtkWidget *self, dictionary *dict){ } } } - } on_subwindow_close(self); } diff --git a/ubl-settings-usergroups-confirmation.glade b/ubl-settings-usergroups-confirmation.glade index d56818e..65e05e5 100644 --- a/ubl-settings-usergroups-confirmation.glade +++ b/ubl-settings-usergroups-confirmation.glade @@ -71,8 +71,9 @@ False 20 20 - 20 - 20 + 10 + 10 + 50 dialog-question-symbolic 6