|
|
|
|
@ -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,¤t,-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);
|
|
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|