|
|
|
|
@ -219,10 +219,45 @@ void on_group_save(GtkWidget *self, dictionary *dict){
|
|
|
|
|
on_subwindow_close(self);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_group_delete_toggled(GtkWidget *,gchar* path,yon_confirmation_window *window){
|
|
|
|
|
int found=0;
|
|
|
|
|
GtkTreeModel *model = GTK_TREE_MODEL(window->list);
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
char *target;
|
|
|
|
|
gtk_tree_model_get_iter_from_string(model,&iter,path);
|
|
|
|
|
gtk_tree_model_get(model,&iter,1,&target,-1);
|
|
|
|
|
char *parameter = config(GROUPADD(target));
|
|
|
|
|
int size;
|
|
|
|
|
config_str parsed = yon_char_parse(parameter,&size,":");
|
|
|
|
|
int users_size;
|
|
|
|
|
config_str users = yon_config_get_all_by_key(USERADD_SEARCH_macro,&users_size);
|
|
|
|
|
for (int i=0;i<users_size;i++){
|
|
|
|
|
int parsed_user_size;
|
|
|
|
|
char *name = yon_char_divide_search(users[i],"=",-1);
|
|
|
|
|
free(yon_char_divide_search(name,"[",-1));
|
|
|
|
|
name[strlen(name)-1]='\0';
|
|
|
|
|
config_str user_parsed = yon_char_parse(users[i], &parsed_user_size,":");
|
|
|
|
|
|
|
|
|
|
int compare_size;
|
|
|
|
|
config_str compare_group = yon_config_load(get_group_info_command(user_parsed[2]),&compare_size);
|
|
|
|
|
int compare_parsed_size;
|
|
|
|
|
|
|
|
|
|
config_str compare_parsed = yon_char_parse(compare_group[0],&compare_parsed_size,":");
|
|
|
|
|
if (!strcmp(compare_parsed[1],parsed[1])){
|
|
|
|
|
found = 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
if (found ==1 ){
|
|
|
|
|
yon_ubl_status_box_spawn_infinite(GTK_CONTAINER(window->StatusBox),"group_occupied","",BACKGROUND_IMAGE_INFO_TYPE);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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));
|
|
|
|
|
// g_signal_connect(G_OBJECT(window->DeleteCell),"toggled",G_CALLBACK(on_group_delete_toggled),window);
|
|
|
|
|
GtkTreeIter iter,itar;
|
|
|
|
|
dictionary *dict = NULL;
|
|
|
|
|
gtk_label_set_text(GTK_LABEL(window->TitleLabel),DELETE_GROUP_CONFIRMATION_CONFIRM_LABEL);
|
|
|
|
|
@ -250,6 +285,7 @@ void yon_group_delete_confirmation_open(main_window *widgets){
|
|
|
|
|
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);
|
|
|
|
|
|