diff --git a/source/view_temp_u_g_p.c b/source/view_temp_u_g_p.c index 6374e39..65ba0f8 100644 --- a/source/view_temp_u_g_p.c +++ b/source/view_temp_u_g_p.c @@ -7,6 +7,11 @@ char* _glade_path = NULL; vector* vec_temp = NULL; config_all* _all_config_temp = NULL; int table_index = 0; +char* disk = NULL; + +void set_disk(char* _disk) { + disk = _disk; +} void set_all_config(config_all* _all_config) { _all_config_temp = _all_config; @@ -47,7 +52,6 @@ temp_set_window *temp_setup_window_custom(temp_set_window* temp_widgets, GtkBuil temp_widgets->lblSetUGPData = yon_gtk_builder_get_widget(builder, "lblSetUGPData"); temp_widgets->entryCatalogProject = yon_gtk_builder_get_widget(builder, "entryCatalogProject"); temp_widgets->chbAuto = yon_gtk_builder_get_widget(builder, "chbAuto"); - temp_widgets->btnGenerateProject = yon_gtk_builder_get_widget(builder, "btnGenerateProject"); temp_widgets->entryProjectName = yon_gtk_builder_get_widget(builder, "entryProjectName"); temp_widgets->boxProjectAddEdit = yon_gtk_builder_get_widget(builder, "boxProjectAddEdit"); temp_widgets->boxProject = yon_gtk_builder_get_widget(builder, "boxProject"); @@ -69,12 +73,14 @@ temp_set_window *temp_setup_window_custom(temp_set_window* temp_widgets, GtkBuil temp_widgets->lblSetNameDevice = yon_gtk_builder_get_widget(builder, "lblSetNameDevice"); temp_widgets->lblCatalogProjectEdit = yon_gtk_builder_get_widget(builder, "lblCatalogProjectEdit"); temp_widgets->lblProjectIdValueEdit = yon_gtk_builder_get_widget(builder, "lblProjectIdValueEdit"); + temp_widgets->boxTempDevice = yon_gtk_builder_get_widget(builder, "boxTempDevice"); table_u_g_set_flag(flag_temp_u_g_p); table_u_g_set_glade_path(_glade_path); - if (strcmp(flag_temp_u_g_p,"project")==0) { + if (strcmp(flag_temp_u_g_p,"prjquota")==0) { gtk_widget_hide(temp_widgets->lblSetUGP); gtk_widget_hide(temp_widgets->lblSetUGPData); gtk_widget_hide(temp_widgets->btnOpenUserGroup); + gtk_widget_hide(temp_widgets->boxTempDevice); if (strcmp(set_add_edit, "add")==0) { gtk_widget_hide(temp_widgets->lblCatalogProjectEdit); gtk_widget_hide(temp_widgets->lblProjectIdValueEdit); @@ -124,12 +130,14 @@ void set_temp_menu(char* _flag_temp_u_g_p, char* _set_add_edit) { void temp_show(GtkWidget *self, char* _glade_path) { if (temp_widgets != NULL) { gtk_widget_show(temp_widgets->Window); + set_activ_project_id(); temp_init_windows(); event_toggled_all(); } else { temp_setup_window_base(_glade_path); gtk_widget_show(temp_widgets->Window); + set_activ_project_id(); event_toggled_all(); } } @@ -152,8 +160,10 @@ void temp_event(temp_set_window* temp_widgets) { - if (strcmp(flag_temp_u_g_p,"project")==0) { - g_signal_connect(G_OBJECT(temp_widgets->btnOpenUserGroup),"clicked",G_CALLBACK(wrapper_show_file_manager),NULL); + if (strstr(flag_temp_u_g_p,"prjquota")) { + g_signal_connect(G_OBJECT(temp_widgets->btnReviewProject),"clicked",G_CALLBACK(wrapper_show_file_manager),NULL); + g_signal_connect(G_OBJECT(temp_widgets->btnGenerateProject),"clicked",G_CALLBACK(generate_id),NULL); + g_signal_connect(G_OBJECT(temp_widgets->chbAuto),"toggled",G_CALLBACK(set_activ_project_id),NULL); } else { g_signal_connect(G_OBJECT(temp_widgets->btnOpenUserGroup),"clicked",G_CALLBACK(table_u_g_show),_glade_path); @@ -252,17 +262,19 @@ void set_edit_gui_data_base(config_all* all_config, int index) { _config->severe_limitation_file, 0 ); - if (strcmp(flag_temp_u_g_p,"project") == 0) { - if (strcmp(set_add_edit, "add")==0) { + if (strstr(flag_temp_u_g_p,"prjquota")) { + if (strstr(set_add_edit, "add")) { } else { - gtk_entry_set_text(GTK_ENTRY(temp_widgets->entryProjectId), fill_tree_view_id(_config->id)); + char* id = fill_tree_view_id(_config->id); + char* actors = format_actors(&_config->actors); + gtk_label_set_label(GTK_LABEL(temp_widgets->lblProjectIdValueEdit), id); gtk_label_set_label(GTK_LABEL(temp_widgets->lblCatalogProjectEdit), _config->UNIX_file); - gtk_label_set_label(GTK_LABEL(temp_widgets->lblProjectIdValueEdit), format_actors(&_config->actors)); + gtk_entry_set_text(GTK_ENTRY(temp_widgets->entryProjectName), actors); } } else { - + gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetNameDevice), disk); } } @@ -322,10 +334,9 @@ void get_edit_gui_data_base(config_all* all_config, int index) { } void get_add_gui_data_base(config_all* all_config) { config_u_g_p* _config = malloc(sizeof(config_u_g_p)); - if (_config) { - _config = get_temp_gui_data_base(_config); - vec_temp->pfVectorAdd(vec_temp, _config); - } + model_null_str_writing(_config); + get_temp_gui_data_base(_config); + vec_temp->pfVectorAdd(vec_temp, _config); } @@ -354,15 +365,31 @@ config_u_g_p* get_temp_gui_data_base(config_u_g_p* _config) { &_config->severe_limitation_file, NULL ); - if (strcmp(flag_temp_u_g_p,"project") == 0) { - + _config->type_arr = yon_char_new(flag_temp_u_g_p); + // _config->status_set= 0; + if (strcmp(flag_temp_u_g_p,"prjquota") == 0) { + _config->UNIX_file = (char*)gtk_entry_get_text(GTK_ENTRY(temp_widgets->entryCatalogProject)); + char* actors = (char*)gtk_entry_get_text(GTK_ENTRY(temp_widgets->entryProjectName)); + if (strlen(actors)>1) { + _config->actors.pfVectorAdd(&_config->actors,yon_char_new(actors)); + } + gboolean active = active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(temp_widgets->chbAuto)); + if (active) { + _config->id = -1; + } + else { + char* id = (char*)gtk_entry_get_text(GTK_ENTRY(temp_widgets->entryProjectId)); + _config->id = atoi(id); + } } else { - + _config->UNIX_file = yon_char_new(disk); } return _config; } + + void set_widget_config(GtkWidget* check, GtkWidget* spin, GtkWidget* combo, size_t* value, int* mem_size) { gboolean active = active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(check)); if (active) { @@ -382,4 +409,30 @@ void set_widget_config(GtkWidget* check, GtkWidget* spin, GtkWidget* combo, size (*mem_size) = -3; } } +} + + +void generate_id() { + int max_id = -1; + if (vec_temp->vectorList.total> 0) { + for (int index = 0; index < vec_temp->vectorList.total; index++) { + config_u_g_p* _config = (config_u_g_p*)vec_temp->pfVectorGet(vec_temp, index); + if (_config->id > max_id) { + max_id = _config->id; + } + } + } + max_id++; + gtk_entry_set_text(GTK_ENTRY(temp_widgets->entryProjectId), yon_char_from_int(max_id)); + +} + +void set_activ_project_id() { + gboolean active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(temp_widgets->chbAuto)); + if (active) { + gtk_entry_set_text(GTK_ENTRY(temp_widgets->entryProjectId), ""); + } + gtk_widget_set_sensitive(temp_widgets->entryProjectId, !active); + gtk_widget_set_sensitive(temp_widgets->btnGenerateProject, !active); + } \ No newline at end of file diff --git a/source/view_temp_u_g_p.h b/source/view_temp_u_g_p.h index 2b43f50..0a218a5 100644 --- a/source/view_temp_u_g_p.h +++ b/source/view_temp_u_g_p.h @@ -16,6 +16,7 @@ void temp_set_index(int _index); temp_set_window* get_widget_temp(); +void set_disk(char* _disk); temp_set_window *temp_setup_window_base(char* _glade_path); void temp_on_destroy_subwindow(GtkWidget *self); void temp_destroy(GtkWidget *self); @@ -36,4 +37,6 @@ void set_edit_gui_data_base(config_all* all_config, int index); config_u_g_p* get_temp_gui_data_base(config_u_g_p* _config); void get_add_gui_data_base(config_all* all_config); void get_edit_gui_data_base(config_all* all_config, int index); -void set_widget(GtkWidget* check, GtkWidget* spin, GtkWidget* combo, int value_spin, int pow_mem_size); \ No newline at end of file +void set_widget(GtkWidget* check, GtkWidget* spin, GtkWidget* combo, int value_spin, int pow_mem_size); +void generate_id(); +void set_activ_project_id(); \ No newline at end of file