diff --git a/source/model/model.c b/source/model/model.c index 5492683..c9fb03c 100644 --- a/source/model/model.c +++ b/source/model/model.c @@ -25,6 +25,13 @@ void model_clear_cfg(config_u_g_p* _config) { free(_config->loaded_keys); } +void model_clear_cfg_device(disk_status* _config) { + free(_config->device); + free(_config->fs); + free(_config->mount_point); + free(_config->name); +} + void model_free_vector_string(vector* vec_str) { if (vec_str->vectorList.total> 0) { for (int i = 0; i < vec_str->vectorList.total; i++) { @@ -117,7 +124,7 @@ int fill_tree_view_project(config_all* all_config,hotebook* widget , char* str_f return flag_searhc; } -int fill_tree_view_user_group(config_all* all_config, char* disk, hotebook* widget,char* str_fill ,int flag_gui_add) { +int fill_tree_view_user_group(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); @@ -135,7 +142,7 @@ int fill_tree_view_user_group(config_all* all_config, char* disk, hotebook* widg 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)) { + if (strcmp(_config->type_arr, str_fill) == 0) { GtkTreeIter iter; flag_searhc++; gtk_list_store_append(widget->liststore,&iter); @@ -248,4 +255,42 @@ int fill_tree_view_generate(vector* vec_fill, vector* vec_status_disk, char* str return 1; } +int pars_status_device(disk_status* _config) { + if (_config->status == 2) { + return 1; + } + return 0; +} +int fill_tree_view_device(vector* vec_device, hotebook* widget, 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; + if (vec_device->vectorList.total > 0) { + for (int i = 0; i < vec_device->vectorList.total; i++) { + disk_status* _config = (disk_status*)vec_device->pfVectorGet(vec_device, i); + 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,pars_status_device(_config), + 1,_config->device, + 2,_config->mount_point, + 3,_config->fs, + 4,_config->name, + 5,deferring_size, + 6,deferring_file, + -1); + } + } + if (flag_gui_add != 0) { + gtk_tree_view_set_model(GTK_TREE_VIEW(widget->tree_view), model); + } + return flag_searhc; +} diff --git a/source/model/model.h b/source/model/model.h index 42028e7..fbcca55 100644 --- a/source/model/model.h +++ b/source/model/model.h @@ -42,9 +42,15 @@ typedef struct { int count_remove; int flag_not_data; } config_all; + typedef struct{ char* device; int status; + size_t deferring_size; + size_t deferring_file; + char* fs; + char* mount_point; + char* name; } disk_status; typedef struct{ @@ -56,13 +62,15 @@ typedef struct{ int flag_load; } config_gui; +void model_clear_cfg_device(disk_status* _config); char* wrapper_str_time(size_t seconds); void model_null_str_writing(config_u_g_p* _config); void model_clear_cfg(config_u_g_p* _config); void model_array_size_memory(); char* format_actors(vector* vec_actors); void model_free_vector_string(vector* vec_str); -int fill_tree_view_user_group(config_all* all_config, char* disk, hotebook* widget,char* str_fill , int flag_gui_add); +int fill_tree_view_user_group(config_all* all_config, hotebook* widget,char* str_fill , int flag_gui_add); int fill_tree_view_project(config_all* all_config, hotebook* widget, char* str_fill , int flag_gui_add); int fill_tree_view_generate(vector* vec_fill, vector* vec_status_disk, char* str_fill, GtkWidget* tree_view, GtkListStore* liststoreGeneral); +int fill_tree_view_device(vector* vec_device, hotebook* widget, int flag_gui_add); #endif \ No newline at end of file diff --git a/source/model/philos_utils.h b/source/model/philos_utils.h index 3617e50..09a2f08 100644 --- a/source/model/philos_utils.h +++ b/source/model/philos_utils.h @@ -73,7 +73,7 @@ typedef struct { GtkWidget* lblSetNameDevice; GtkWidget* boxProjectAddEditboxProjectId; GtkWidget* entryUser; - + GtkWidget* UserDeviceCombo; } temp_set_window; typedef struct {