#include "model.h" void model_clear_cfg(config_u_g_p* _config) { free(_config->quota); free(_config->size_memory); free(_config->device); free(_config->UNIX_file); free(_config->files); vectorFree(&_config->actors); free(_config->loaded_keys); } void model_tree_view_add(config_u_g_p* _config) { model_null_str_writing(_config); } void model_null_str_writing(config_u_g_p* _config) { _config->quota = yon_char_new(empty_str); _config->size_memory = yon_char_new(empty_str); _config->device = yon_char_new(empty_str); _config->UNIX_file = yon_char_new(empty_str); _config->files = yon_char_new(empty_str); _config->loaded_keys = yon_char_new(empty_str); _config->type_arr = yon_char_new(empty_str); _config->id = 0; _config->soft_restriction_size = 0; _config->soft_restriction_file = 0; _config->severe_limitation_size = 0; _config->severe_limitation_file = 0; _config->deferring_size = 0; _config->deferring_file = 0; _config->size_memory_pow = 0; _config->soft_restriction_size_pow = 0; _config->severe_limitation_size_pow = 0; vector_init(&_config->actors); } char* format_actors(vector* vec_actors) { char* str_all = yon_char_new(""); char split_simvol[2] = {0}; split_simvol[0] = 0; split_simvol[1] = 0; char* str_actors = NULL; if (vec_actors->vectorList.total> 0) { for (int i = 0; i < vec_actors->vectorList.total; i++) { str_actors = (char*)vec_actors->pfVectorGet(vec_actors, i); if (str_actors) { str_all = yon_char_unite(str_all,split_simvol, str_actors, NULL); // Баг split_simvol[0] = ','; split_simvol[1] = '\0'; } } } if (strlen(str_all) < 3) { return yon_char_new("-"); } return str_all; } int fill_tree_view_project(config_all* all_config,hotebook* widget , char* str_fill, int flag_gui_add) { GtkTreeModel *model = GTK_TREE_MODEL(widget->liststore); if (flag_gui_add == 0) { g_object_ref(widget->liststore); gtk_list_store_clear(widget->liststore); } int flag_searhc = 0; for (int i = 0; i < all_config->v_project.pfVectorTotal(&all_config->v_project); i++) { config_u_g_p* _config = (config_u_g_p*)all_config->v_project.pfVectorGet(&all_config->v_project, i); if (strcmp(_config->type_arr, str_fill) == 0) { GtkTreeIter iter; flag_searhc++; gtk_list_store_append(widget->liststore,&iter); char* deferring_size = wrapper_str_time(_config->deferring_size); char* deferring_file = wrapper_str_time(_config->deferring_file); gtk_list_store_set(widget->liststore,&iter, 0,fill_tree_view_id(_config->id), 1,format_actors(&_config->actors), 2,_config->quota, 3,_config->size_memory, 4,philos_format_cfg_str_size_memory("", _config->soft_restriction_size,_config->soft_restriction_size_pow), 5,philos_format_cfg_str_size_memory("", _config->severe_limitation_size,_config->severe_limitation_size_pow), 6,yon_char_from_int(_config->soft_restriction_file), 7,_config->files, 8,yon_char_from_int(_config->severe_limitation_file), 9,deferring_size, 10,deferring_file, -1); } } if (flag_gui_add != 0) { gtk_tree_view_set_model(GTK_TREE_VIEW(widget->spinWeeksFile), model); } return flag_searhc; } int fill_tree_view_user_group(config_all* all_config, char* disk, hotebook* widget,char* str_fill ,int flag_gui_add) { GtkTreeModel *model = GTK_TREE_MODEL(widget->liststore); if (flag_gui_add == 0) { g_object_ref(widget->liststore); // gtk_tree_view_set_model(GTK_TREE_VIEW(widget->tree_view), NULL); gtk_list_store_clear(widget->liststore); } int flag_searhc = 0; vector* vec_temp = NULL; if (strcmp(str_fill, "usrquota")==0) { vec_temp = &all_config->v_user; } else { vec_temp = &all_config->v_group; } if (vec_temp->vectorList.total > 0) { for (int i = 0; i < vec_temp->vectorList.total; i++) { config_u_g_p* _config = (config_u_g_p*)vec_temp->pfVectorGet(vec_temp, i); if (strcmp(_config->type_arr, str_fill) == 0 && strstr(_config->UNIX_file, disk)) { GtkTreeIter iter; flag_searhc++; gtk_list_store_append(widget->liststore,&iter); char* deferring_size = wrapper_str_time(_config->deferring_size); char* deferring_file = wrapper_str_time(_config->deferring_file); gtk_list_store_set(widget->liststore,&iter, 0,format_actors(&_config->actors), 1,_config->quota, 2,_config->size_memory, 3,philos_format_cfg_str_size_memory("", _config->soft_restriction_size,_config->soft_restriction_size_pow), 4,philos_format_cfg_str_size_memory("", _config->severe_limitation_size,_config->severe_limitation_size_pow), 5,yon_char_from_int(_config->soft_restriction_file), 6,_config->files, 7,yon_char_from_int(_config->severe_limitation_file), 8,deferring_size, 9,deferring_file, -1); } } } if (flag_gui_add != 0) { gtk_tree_view_set_model(GTK_TREE_VIEW(widget->tree_view), model); } return flag_searhc; } char* wrapper_str_time(size_t seconds) { me_time t; if (seconds!=-1) { t = time_convert(seconds); t.str_time = yon_char_unite(yon_char_from_int(t.weeks),WEEKS, yon_char_from_int(t.days), DAYS, yon_char_from_int(t.hours), HOURS, yon_char_from_int(t.minutes), MINUTES, NULL); } else { t.str_time = yon_char_new("-"); } return t.str_time; }