Сделал добавление окно выбора пользователей и групп

pull/24/head
Igor Belitskiy 2 years ago
parent 36ba123c47
commit 0efc525246

@ -3,7 +3,7 @@
main_window cfg_main_gui;
custom_window cfg_custom_gui;
config_settings_gui main_config;
config_all* all_config;
config_all all_config;
int index_selected = 0;
void wrapper_filters_user_show() {
@ -22,11 +22,11 @@ void wrapper_filters_project_show() {
void wrapper_add_user_show() {
char* activ_text = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(cfg_custom_gui.user.comboBox));
activ_text= yon_char_divide_search(activ_text, " ", -1);
activ_text = yon_char_divide_search(activ_text, " ", -1);
set_disk(activ_text);
set_temp_menu("usrquota", "add");
set_all_config(all_config);
set_vector(&all_config->v_user);
set_all_config(&all_config);
set_vector(&all_config.v_user);
temp_show(NULL, glade_path);
int i = 0;
g_signal_connect(G_OBJECT(get_widget_temp()->btnSaveTempSave),"clicked",G_CALLBACK(entry_user_disk),&i);
@ -39,10 +39,10 @@ void wrapper_edit_user_show() {
set_disk(activ_text);
set_temp_menu("usrquota", "edit");
temp_set_index(index);
set_all_config(all_config);
set_all_config(&all_config);
temp_show(NULL, glade_path);
set_vector(&all_config->v_user);
set_edit_gui_data_base(all_config, index);
set_vector(&all_config.v_user);
set_edit_gui_data_base(&all_config, index);
int i = 0;
g_signal_connect(G_OBJECT(get_widget_temp()->btnSaveTempSave),"clicked",G_CALLBACK(entry_user_disk),&i);
}
@ -52,8 +52,8 @@ void wrapper_add_group_show() {
activ_text = yon_char_divide_search(activ_text, " ", -1);
set_disk(activ_text);
set_temp_menu("grpquota", "add");
set_all_config(all_config);
set_vector(&all_config->v_group);
set_all_config(&all_config);
set_vector(&all_config.v_group);
temp_show(NULL, glade_path);
int i = 0;
g_signal_connect(G_OBJECT(get_widget_temp()->btnSaveTempSave),"clicked",G_CALLBACK(entry_groups_disk),&i);
@ -65,17 +65,17 @@ void wrapper_edit_group_show() {
set_disk(activ_text);
set_temp_menu("grpquota", "edit");
temp_set_index(index);
set_all_config(all_config);
set_vector(&all_config->v_group);
set_all_config(&all_config);
set_vector(&all_config.v_group);
temp_show(NULL, glade_path);
set_edit_gui_data_base(all_config, index);
set_edit_gui_data_base(&all_config, index);
int i = 0;
g_signal_connect(G_OBJECT(get_widget_temp()->btnSaveTempSave),"clicked",G_CALLBACK(entry_groups_disk),&i);
}
void wrapper_add_project_show() {
set_temp_menu("prjquota", "add");
set_all_config(all_config);
set_vector(&all_config->v_project);
set_all_config(&all_config);
set_vector(&all_config.v_project);
temp_show(NULL, glade_path);
int i = 0;
g_signal_connect(G_OBJECT(get_widget_temp()->btnSaveTempSave),"clicked",G_CALLBACK(entry_project_disk),&i);
@ -84,10 +84,10 @@ void wrapper_edit_project_show() {
int index = wrapper_select_tree_view(&cfg_custom_gui.project);
set_temp_menu("prjquota", "edit");
temp_set_index(index);
set_all_config(all_config);
set_all_config(&all_config);
temp_show(NULL, glade_path);
set_vector(&all_config->v_project);
set_edit_gui_data_base(all_config, index);
set_vector(&all_config.v_project);
set_edit_gui_data_base(&all_config, index);
int i = 0;
g_signal_connect(G_OBJECT(get_widget_temp()->btnSaveTempSave),"clicked",G_CALLBACK(entry_project_disk),&i);
}
@ -124,14 +124,14 @@ void unlock_tree_view(hotebook* widgets,void (*f)()) {
void entry_user_disk(GtkWidget *self,int* flag_update) {
if (flag_update) {
all_config->flag_set_data = 1;
all_config->flag_save = 3;
all_config.flag_set_data = 1;
all_config.flag_save = 3;
temp_on_destroy_subwindow(self);
}
get_status_disk(&cfg_custom_gui.user);
char* activ_text = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(cfg_custom_gui.user.comboBox));
activ_text= yon_char_divide_search(activ_text, " ", -1);
int find = fill_tree_view_user_group(all_config, activ_text, &cfg_custom_gui.user,"usrquota", 0);
int find = fill_tree_view_user_group(&all_config, activ_text, &cfg_custom_gui.user,"usrquota", 0);
if (find == 0) {
g_object_ref(cfg_custom_gui.user.liststore);
gtk_list_store_clear(cfg_custom_gui.user.liststore);
@ -139,14 +139,14 @@ void entry_user_disk(GtkWidget *self,int* flag_update) {
}
void entry_groups_disk(GtkWidget *self,int* flag_update) {
if (flag_update) {
all_config->flag_set_data = 1;
all_config->flag_save = 3;
all_config.flag_set_data = 1;
all_config.flag_save = 3;
temp_on_destroy_subwindow(self);
}
get_status_disk(&cfg_custom_gui.group);
char* activ_text = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(cfg_custom_gui.group.comboBox));
activ_text= yon_char_divide_search(activ_text, " ", -1);
int find = fill_tree_view_user_group(all_config, activ_text, &cfg_custom_gui.group,"grpquota", 0);
int find = fill_tree_view_user_group(&all_config, activ_text, &cfg_custom_gui.group,"grpquota", 0);
if (find == 0) {
g_object_ref(cfg_custom_gui.group.liststore);
gtk_list_store_clear(cfg_custom_gui.group.liststore);
@ -154,11 +154,11 @@ void entry_groups_disk(GtkWidget *self,int* flag_update) {
}
void entry_project_disk(GtkWidget *self,int* flag_update) {
if (flag_update) {
all_config->flag_set_data = 1;
all_config->flag_save = 3;
all_config.flag_set_data = 1;
all_config.flag_save = 3;
temp_on_destroy_subwindow(self);
}
int find = fill_tree_view_project(all_config, &cfg_custom_gui.project,"prjquota", 0);
int find = fill_tree_view_project(&all_config, &cfg_custom_gui.project,"prjquota", 0);
if (find == 0) {
g_object_ref(cfg_custom_gui.project.liststore);
gtk_list_store_clear(cfg_custom_gui.project.liststore);
@ -168,21 +168,21 @@ void entry_project_disk(GtkWidget *self,int* flag_update) {
void tree_view_select_user(GtkWidget* self) {
block_tree_view(&cfg_custom_gui.user,tree_view_select_user);
block_spin_time(&cfg_custom_gui.user, wrapper_get_spin_time_gui_user);
tree_view_select(NULL,&all_config->v_user , &cfg_custom_gui.user);
tree_view_select(NULL,&all_config.v_user , &cfg_custom_gui.user);
unlock_spin_time(&cfg_custom_gui.user, wrapper_get_spin_time_gui_user);
unlock_tree_view(&cfg_custom_gui.user,tree_view_select_user);
}
void tree_view_select_group(GtkWidget* sel) {
block_tree_view(&cfg_custom_gui.group,tree_view_select_group);
block_spin_time(&cfg_custom_gui.group, wrapper_get_spin_time_gui_group);
tree_view_select(NULL,&all_config->v_group ,&cfg_custom_gui.group);
tree_view_select(NULL,&all_config.v_group ,&cfg_custom_gui.group);
unlock_spin_time(&cfg_custom_gui.group, wrapper_get_spin_time_gui_group);
unlock_tree_view(&cfg_custom_gui.group,tree_view_select_group);
}
void tree_view_select_project(GtkWidget* self) {
block_tree_view(&cfg_custom_gui.project,tree_view_select_project);
block_spin_time(&cfg_custom_gui.project, wrapper_get_spin_time_gui_project);
tree_view_select(NULL,&all_config->v_project , &cfg_custom_gui.project);
tree_view_select(NULL,&all_config.v_project , &cfg_custom_gui.project);
unlock_spin_time(&cfg_custom_gui.project, wrapper_get_spin_time_gui_project);
unlock_tree_view(&cfg_custom_gui.group, wrapper_get_spin_time_gui_project);
}
@ -191,7 +191,7 @@ void tree_view_select_project(GtkWidget* self) {
void tree_view_select(GtkWidget* self, vector* vec_temp, hotebook* widgets) {
if (self) {}
if (vec_temp->vectorList.total > 0) {
tree_view_edit(all_config, vec_temp, widgets);
tree_view_edit(&all_config, vec_temp, widgets);
GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(widgets->liststore);
GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->tree_view));
@ -211,17 +211,17 @@ void tree_view_select(GtkWidget* self, vector* vec_temp, hotebook* widgets) {
}
void wrapper_get_spin_time_gui_user() {
get_spin_time_gui(&all_config->v_user, &cfg_custom_gui.user);
get_spin_time_gui(&all_config.v_user, &cfg_custom_gui.user);
entry_user_disk(0, 0);
}
void wrapper_get_spin_time_gui_group() {
get_spin_time_gui(&all_config->v_group, &cfg_custom_gui.group);
get_spin_time_gui(&all_config.v_group, &cfg_custom_gui.group);
entry_groups_disk(0, 0);
}
void wrapper_get_spin_time_gui_project() {
get_spin_time_gui(&all_config->v_project, &cfg_custom_gui.project);
get_spin_time_gui(&all_config.v_project, &cfg_custom_gui.project);
entry_project_disk(0, 0);
}
@ -251,10 +251,10 @@ void template_remove(vector* vec_temp, hotebook* widgets) {
if (index!=-1) {
config_u_g_p* _config = (config_u_g_p*)vec_temp->pfVectorGet(vec_temp, index);
char* load_key = yon_char_new(_config->loaded_keys);
all_config->v_remove.pfVectorAdd(&all_config->v_remove, load_key);
all_config.v_remove.pfVectorAdd(&all_config.v_remove, load_key);
model_clear_cfg(_config);
vec_temp->pfVectorDelete(vec_temp, index);
all_config->flag_save = 1;
all_config.flag_save = 1;
}
}
@ -265,7 +265,7 @@ void user_remove() {
if(gtk_tree_selection_get_selected(selection, &model, &iter)) {
gtk_list_store_remove(cfg_custom_gui.user.liststore, &iter);
}
template_remove(&all_config->v_user, &cfg_custom_gui.user);
template_remove(&all_config.v_user, &cfg_custom_gui.user);
}
void group_remove() {
@ -275,7 +275,7 @@ void group_remove() {
if(gtk_tree_selection_get_selected(selection, &model, &iter)) {
gtk_list_store_remove(cfg_custom_gui.group.liststore, &iter);
}
template_remove(&all_config->v_group ,&cfg_custom_gui.group);
template_remove(&all_config.v_group ,&cfg_custom_gui.group);
}
void project_remove() {
@ -285,7 +285,7 @@ void project_remove() {
if(gtk_tree_selection_get_selected(selection, &model, &iter)) {
gtk_list_store_remove(cfg_custom_gui.project.liststore, &iter);
}
template_remove(&all_config->v_project , &cfg_custom_gui.project);
template_remove(&all_config.v_project , &cfg_custom_gui.project);
}
int tree_view_edit(config_all* _all_config, vector* vec_temp, hotebook* widgets) {
int index = wrapper_select_tree_view(widgets);
@ -314,48 +314,48 @@ void wrapper_all_save() {
int flag_mess_save = 0;
if (all_config->flag_load == 0) {
flag_mess_save = wrapper_template_save(all_config, CMD_ALL_SAVE, CMD_ALL_REMOVE);
if (all_config.flag_load == 0) {
flag_mess_save = wrapper_template_save(&all_config, CMD_ALL_SAVE, CMD_ALL_REMOVE);
}
else {
flag_mess_save = wrapper_template_save(all_config, CMD_ALL_SAVE, CMD_ALL_REMOVE);
flag_mess_save = wrapper_template_save(&all_config, CMD_ALL_SAVE, CMD_ALL_REMOVE);
}
if (flag_mess_save) {
yon_ubl_status_box_render(GLOBAL_LOCAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
all_config->flag_load=0;
all_config.flag_load=0;
}
else {
yon_ubl_status_box_render(MESS_NOTHING_SAVE, BACKGROUND_IMAGE_SUCCESS_TYPE);
}
}
void wrapper_global_save() {
if (wrapper_template_save(all_config, CMD_SAVE_GLOBAL, CMD_REMOVE_GLOBAL)) {
if (wrapper_template_save(&all_config, CMD_SAVE_GLOBAL, CMD_REMOVE_GLOBAL)) {
yon_ubl_status_box_render(GLOBAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
all_config->flag_load-=1;
all_config.flag_load-=1;
}
else {
yon_ubl_status_box_render(MESS_NOTHING_SAVE, BACKGROUND_IMAGE_SUCCESS_TYPE);
}
}
void wrapper_system_save() {
if (wrapper_template_save(all_config, CMD_SAVE_SYSTEM, CMD_REMOVE_SYSTEM)) {
if (wrapper_template_save(&all_config, CMD_SAVE_SYSTEM, CMD_REMOVE_SYSTEM)) {
yon_ubl_status_box_render(LOCAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
all_config->flag_load-=1;
all_config.flag_load-=1;
}
else {
yon_ubl_status_box_render(MESS_NOTHING_SAVE, BACKGROUND_IMAGE_SUCCESS_TYPE);
}
}
void load_system_cfg() {
all_config->flag_load = 0;
load_template_load_cfg(all_config, CMD_LOAD_SYSTEM);
all_config.flag_load = 0;
load_template_load_cfg(&all_config, CMD_LOAD_SYSTEM);
yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL, BACKGROUND_IMAGE_SUCCESS_TYPE);
entry_project_disk(0, 0);
}
void load_global_cfg() {
all_config->flag_load = 1;
load_template_load_cfg(all_config, CMD_LOAD_GLOBAL);
all_config.flag_load = 1;
load_template_load_cfg(&all_config, CMD_LOAD_GLOBAL);
yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
entry_project_disk(0, 0);
}
@ -422,7 +422,7 @@ void template_set_status_disk(GtkWidget* self,hotebook* widgets) {
int menu_id = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->cmbSetStatusDisk));
char* activ_text = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(widgets->comboBox));
activ_text = yon_char_divide_search(activ_text, " ", -1);
vector* v_disk_status = &all_config->v_disk_status;
vector* v_disk_status = &all_config.v_disk_status;
int flag = 0;
if (v_disk_status->vectorList.total> 0 && menu_id_disk >= 0 && menu_id >= 0) {
for (int i = 0; i < v_disk_status->pfVectorTotal(v_disk_status); i++) {
@ -430,7 +430,7 @@ void template_set_status_disk(GtkWidget* self,hotebook* widgets) {
if (strstr(_config->device, activ_text) && strstr(_config->device,widgets->name)) {
flag = 1;
_config->status = menu_id;
all_config->flag_set_data = 1;
all_config.flag_set_data = 1;
}
}
}
@ -439,13 +439,13 @@ void template_set_status_disk(GtkWidget* self,hotebook* widgets) {
disk_cfg->device = yon_char_unite("DISK_QUOTA[",widgets->name,":",activ_text, "]",NULL);
disk_cfg->status = menu_id;
v_disk_status->pfVectorAdd(v_disk_status, disk_cfg);
all_config->flag_set_data = 1;
all_config.flag_set_data = 1;
}
}
void get_status_disk(hotebook* widgets) {
int menu_id_disk = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->comboBox));
vector* v_disk_status = &all_config->v_disk_status;
vector* v_disk_status = &all_config.v_disk_status;
if (v_disk_status->vectorList.total> 0 && menu_id_disk>=0) {
char* activ_text = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(widgets->comboBox));
activ_text = yon_char_divide_search(activ_text, " ", -1);
@ -484,8 +484,12 @@ void main_visible_columns(GtkWidget *self) {
int main(int argc, char *argv[]){
all_config = malloc(sizeof(config_all));
all_config->flag_not_data = 0;
all_config.flag_not_data = 0;
vector_init(&all_config.v_user);
vector_init(&all_config.v_group);
vector_init(&all_config.v_project);
vector_init(&all_config.v_disk_status);
vector_init(&all_config.v_remove);
local=setlocale(LC_ALL, "");
bindtextdomain(LocaleName, yon_char_unite(LocalePath, "/", NULL));
//bind_textdomain_codeset(LocaleName, "UTF-8");

@ -7,10 +7,19 @@ void model_clear_cfg(config_u_g_p* _config) {
free(_config->device);
free(_config->UNIX_file);
free(_config->files);
model_free_vector_string(&_config->actors);
vectorFree(&_config->actors);
free(_config->loaded_keys);
}
void model_free_vector_string(vector* vec_str) {
if (vec_str->vectorList.total> 0) {
for (int i = 0; i < vec_str->vectorList.total; i++) {
vectorDelete(vec_str, i);
}
}
}
void model_tree_view_add(config_u_g_p* _config) {
model_null_str_writing(_config);
@ -61,6 +70,7 @@ char* format_actors(vector* vec_actors) {
}
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) {

@ -61,6 +61,7 @@ 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_project(config_all* all_config, hotebook* widget, char* str_fill , int flag_gui_add);
#endif

@ -104,6 +104,12 @@ int vectorFree(vector *v)
}
return status;
}
void vectorCopy(vector* v_to_copy, vector* v_from_copy) {
for (int i = 0; i < v_from_copy->vectorList.total; i++) {
vectorPushBack(v_to_copy, vectorGet(v_from_copy, i));
}
}
void vector_init(vector *v)
{
//init function pointers
@ -114,6 +120,7 @@ void vector_init(vector *v)
v->pfVectorGet = vectorGet;
v->pfVectorFree = vectorFree;
v->pfVectorDelete = vectorDelete;
v->pfVectorCopy = vectorCopy;
//initialize the capacity and allocate the memory
v->vectorList.capacity = VECTOR_INIT_CAPACITY;
v->vectorList.total = 0;

@ -26,6 +26,8 @@ struct sVector
void *(*pfVectorGet)(vector *, int);
int (*pfVectorDelete)(vector *, int);
int (*pfVectorFree)(vector *);
void (*pfVectorCopy)(vector *,vector *);
};
void vector_init(vector *v);
int vectorFree(vector *v);
@ -34,4 +36,5 @@ void *vectorGet(vector *v, int index);
int vectorSet(vector *v, int index, void *item);
int vectorPushBack(vector *v, void *item);
int vectorResize(vector *v, int capacity);
int vectorTotal(vector *v);
int vectorTotal(vector *v);
void vectorCopy(vector* v_to_copy, vector* v_from_copy);

@ -2,15 +2,26 @@
char* glade_path = NULL;
char* flag_u_g = NULL;
char* table_u_g_set_add_edit;
table_u_g* table_widgets;
vector* _actors;
void table_u_g_get_actors(vector* actors) {
_actors = actors;
}
table_u_g* get_widget_table_u_g() {
return table_widgets;
}
table_u_g *setup_table_u_g(){
/* Widgets getting | Получение виджетов */
table_widgets = malloc(sizeof(table_u_g));
device_disk_parsed();
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path);
table_widgets->Window = yon_gtk_builder_get_widget(builder,"tableUserGroupWindow");
table_widgets->btnCancel = yon_gtk_builder_get_widget(builder,"quotegroupSaveButton1");
table_widgets->btnSave = yon_gtk_builder_get_widget(builder,"quotegroupCancelButton1");
table_widgets->btnCancel = yon_gtk_builder_get_widget(builder,"quotegroupCancelButton1");
table_widgets->btnSave = yon_gtk_builder_get_widget(builder,"quotegroupSaveButton1");
table_widgets->treeViewCheckUsersGroups = yon_gtk_builder_get_widget(builder,"treeViewCheckUsersGroups");
table_widgets->checkColUserGroup = GTK_CELL_RENDERER_TOGGLE(gtk_builder_get_object(builder,"checkColUserGroup"));
table_widgets->liststoreUsersGroups = GTK_LIST_STORE(gtk_builder_get_object(builder, "liststoreUsersGroups"));
@ -23,6 +34,9 @@ table_u_g *setup_table_u_g(){
char** array_user = philos_list_user(&size);
table_u_g_fill_tree_view(array_user, size);
}
if (strcmp(table_u_g_set_add_edit, "edit")==0) {
set_actors(_actors);
}
table_u_g_event();
}
@ -34,8 +48,9 @@ void table_u_g_get_data() {
}
void table_u_g_set_flag(char* _flag_u_g) {
void table_u_g_set_flag(char* _flag_u_g, char* _table_u_g_set_add_edit) {
flag_u_g = _flag_u_g;
table_u_g_set_add_edit = _table_u_g_set_add_edit;
}
@ -68,15 +83,33 @@ void chk_toggled_user_group (
gchar* path,
gpointer user_data
) {
GtkTreeIter* iter;
GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(table_widgets->liststoreUsersGroups);
gtk_tree_model_get_iter_from_string(model,iter,path);
gtk_tree_model_get_iter_from_string(model,&iter,path);
gboolean flag;
gtk_tree_model_get(model,&iter,0, &flag,-1);
gtk_list_store_set(table_widgets->liststoreUsersGroups,&iter, 0,!flag,-1);
gtk_tree_view_set_model(GTK_TREE_VIEW(table_widgets->treeViewCheckUsersGroups), model);
}
void table_u_g_event() {
g_signal_connect(G_OBJECT(table_widgets->checkColUserGroup),"toggled",G_CALLBACK(chk_toggled_user_group),NULL);
g_signal_connect(G_OBJECT(table_widgets->btnCancel), "clicked",G_CALLBACK(table_u_g_on_hide_subwindow),NULL);
g_signal_connect(G_OBJECT(table_widgets->Window), "destroy", G_CALLBACK(table_u_g_destroy), NULL);
void get_actors_table(vector* actors) {
if (strcmp(table_u_g_set_add_edit, "edit")==0) {
model_free_vector_string(actors);
}
GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(table_widgets->liststoreUsersGroups);
int valid = 1;
for(gtk_tree_model_get_iter_first(GTK_TREE_MODEL(table_widgets->liststoreUsersGroups),&iter);valid==1;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(table_widgets->liststoreUsersGroups),&iter)){
int is_active=0;
char* user_group;
gtk_tree_model_get(model,&iter,0,&is_active,-1);
gtk_tree_model_get(model,&iter,1,&user_group,-1);
if (is_active){
actors->pfVectorAdd(actors, yon_char_new(user_group));
}
}
}
void table_u_g_destroy(GtkWidget *self) {
@ -96,4 +129,23 @@ table_u_g *table_u_g_get_widget_filters() {
return table_widgets;
}
void set_actors(vector* actors) {
GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(table_widgets->liststoreUsersGroups);
int valid = 1;
for(gtk_tree_model_get_iter_first(GTK_TREE_MODEL(table_widgets->liststoreUsersGroups),&iter);valid==1;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(table_widgets->liststoreUsersGroups),&iter)){
int is_active=0;
char* user_group;
gtk_tree_model_get(model,&iter,0,&is_active,-1);
gtk_tree_model_get(model,&iter,1,&user_group,-1);
if (actors->vectorList.total> 0) {
for (int i = 0; i < actors->vectorList.total; i++) {
char* str_actors = (char*)actors->pfVectorGet(actors, i);
if (strcmp(str_actors, user_group)==0){
gtk_list_store_set(table_widgets->liststoreUsersGroups,&iter, 0,1,-1);
}
}
}
}
gtk_tree_view_set_model(GTK_TREE_VIEW(table_widgets->treeViewCheckUsersGroups), model);
}

@ -28,7 +28,16 @@ table_u_g *table_u_g_get_widget_filters();
void table_u_g_destroy(GtkWidget *self);
void table_u_g_event();
void table_u_g_fill_tree_view(char** array, int size);
void table_u_g_set_flag(char* _flag_u_g);
void table_u_g_set_flag(char* _flag_u_g, char* _table_u_g_set_add_edit);
void table_u_g_set_glade_path(char* _glade_path);
void table_u_g_show(GtkWidget *self, char* glade_path);
void set_vector(vector* _vec_temp);
void set_vector(vector* _vec_temp);
void get_actors_table(vector* actors);
void table_u_g_get_actors(vector* actors);
void set_actors(vector* actors);
table_u_g* get_widget_table_u_g();
void chk_toggled_user_group (
GtkCellRendererToggle* self,
gchar* path,
gpointer user_data
);

@ -8,6 +8,7 @@ vector* vec_temp = NULL;
config_all* _all_config_temp = NULL;
int table_index = 0;
char* disk = NULL;
vector temp_vec_actors;
void set_disk(char* _disk) {
disk = yon_char_new(_disk);
@ -25,6 +26,8 @@ void set_vector(vector* _vec_temp) {
vec_temp = _vec_temp;
}
void temp_set_index(int _index) {
table_index = _index;
}
@ -45,6 +48,7 @@ temp_set_window *temp_setup_window_base(char* __glade_path) {
return temp_widgets;
}
temp_set_window *temp_setup_window_custom(temp_set_window* temp_widgets, GtkBuilder *builder) {
vector_init(&temp_vec_actors);
temp_widgets->lblSetUGP = yon_gtk_builder_get_widget(builder, "lblSetUGP");
temp_widgets->btnOpenUserGroup = yon_gtk_builder_get_widget(builder, "btnOpenUserGroup");
temp_widgets->btnReviewProject = yon_gtk_builder_get_widget(builder, "btnReviewProject");
@ -74,7 +78,7 @@ temp_set_window *temp_setup_window_custom(temp_set_window* temp_widgets, GtkBuil
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_flag(flag_temp_u_g_p,set_add_edit);
table_u_g_set_glade_path(_glade_path);
if (strcmp(flag_temp_u_g_p,"prjquota")==0) {
gtk_widget_hide(temp_widgets->lblSetUGP);
@ -180,6 +184,8 @@ void temp_on_destroy_subwindow(GtkWidget *self) {
}
gtk_widget_destroy(gtk_widget_get_toplevel(self));
temp_widgets = NULL;
model_free_vector_string(&temp_vec_actors);
vectorFree(&temp_vec_actors);
}
}
void event_toggled_all() {
@ -238,6 +244,7 @@ void btn_ok_file_manager(GtkWidget *self) {
void set_edit_gui_data_base(config_all* all_config, int index) {
config_u_g_p* _config = (config_u_g_p*)vec_temp->pfVectorGet(vec_temp, index);
if (_config && index >= 0) {
set_widget(temp_widgets->quotegroupSizeSoftLimitCheck,
temp_widgets->quotegroupSizeSoftLimitSpin,
@ -279,8 +286,9 @@ void set_edit_gui_data_base(config_all* all_config, int index) {
}
else {
gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetNameDevice), disk);
if (strstr(set_add_edit, "add")) {
}
if (strcmp(set_add_edit, "add")==0) {
//table_u_g_get_actors(&temp_vec_actors);
}
else {
gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetUGPData), format_actors(&_config->actors));
@ -346,10 +354,30 @@ void get_add_gui_data_base(config_all* all_config) {
config_u_g_p* _config = malloc(sizeof(config_u_g_p));
model_null_str_writing(_config);
get_temp_gui_data_base(_config);
_config->actors.pfVectorCopy(&_config->actors, &temp_vec_actors);
vec_temp->pfVectorAdd(vec_temp, _config);
}
void save(GtkWidget *self) {
if (strcmp(set_add_edit, "add")==0) {
get_actors_table(&temp_vec_actors);
table_u_g_on_hide_subwindow(self);
}
else {
// get_actors_table(_actors);
table_u_g_on_hide_subwindow(self);
}
}
void table_u_g_event() {
g_signal_connect(G_OBJECT(get_widget_table_u_g()->checkColUserGroup),"toggled",G_CALLBACK(chk_toggled_user_group),NULL);
g_signal_connect(G_OBJECT(get_widget_table_u_g()->btnCancel), "clicked",G_CALLBACK(table_u_g_on_hide_subwindow),NULL);
g_signal_connect(G_OBJECT(get_widget_table_u_g()->btnSave), "clicked",G_CALLBACK(save),NULL);
g_signal_connect(G_OBJECT(get_widget_table_u_g()->Window), "destroy", G_CALLBACK(table_u_g_destroy), NULL);
}
config_u_g_p* get_temp_gui_data_base(config_u_g_p* _config) {
set_widget_config(temp_widgets->quotegroupSizeSoftLimitCheck,
temp_widgets->quotegroupSizeSoftLimitSpin,
@ -400,6 +428,9 @@ config_u_g_p* get_temp_gui_data_base(config_u_g_p* _config) {
}
else {
_config->UNIX_file = yon_char_new(disk);
if (strcmp(set_add_edit, "add")==0) {
table_u_g_get_actors(&_config->actors);
}
}
return _config;
}
@ -451,4 +482,5 @@ void set_activ_project_id() {
gtk_widget_set_sensitive(temp_widgets->entryProjectId, !active);
gtk_widget_set_sensitive(temp_widgets->btnGenerateProject, !active);
}
}

@ -1725,7 +1725,7 @@ translated and supported by community.</property>
<child>
<object class="GtkCellRendererToggle" id="checkColUserGroup"/>
<attributes>
<attribute name="activatable">0</attribute>
<attribute name="active">0</attribute>
</attributes>
</child>
</object>

Loading…
Cancel
Save