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

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

@ -3,7 +3,7 @@
main_window cfg_main_gui; main_window cfg_main_gui;
custom_window cfg_custom_gui; custom_window cfg_custom_gui;
config_settings_gui main_config; config_settings_gui main_config;
config_all* all_config; config_all all_config;
int index_selected = 0; int index_selected = 0;
void wrapper_filters_user_show() { void wrapper_filters_user_show() {
@ -22,11 +22,11 @@ void wrapper_filters_project_show() {
void wrapper_add_user_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)); 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_disk(activ_text);
set_temp_menu("usrquota", "add"); set_temp_menu("usrquota", "add");
set_all_config(all_config); set_all_config(&all_config);
set_vector(&all_config->v_user); set_vector(&all_config.v_user);
temp_show(NULL, glade_path); temp_show(NULL, glade_path);
int i = 0; int i = 0;
g_signal_connect(G_OBJECT(get_widget_temp()->btnSaveTempSave),"clicked",G_CALLBACK(entry_user_disk),&i); 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_disk(activ_text);
set_temp_menu("usrquota", "edit"); set_temp_menu("usrquota", "edit");
temp_set_index(index); temp_set_index(index);
set_all_config(all_config); set_all_config(&all_config);
temp_show(NULL, glade_path); temp_show(NULL, glade_path);
set_vector(&all_config->v_user); set_vector(&all_config.v_user);
set_edit_gui_data_base(all_config, index); set_edit_gui_data_base(&all_config, index);
int i = 0; int i = 0;
g_signal_connect(G_OBJECT(get_widget_temp()->btnSaveTempSave),"clicked",G_CALLBACK(entry_user_disk),&i); 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); activ_text = yon_char_divide_search(activ_text, " ", -1);
set_disk(activ_text); set_disk(activ_text);
set_temp_menu("grpquota", "add"); set_temp_menu("grpquota", "add");
set_all_config(all_config); set_all_config(&all_config);
set_vector(&all_config->v_group); set_vector(&all_config.v_group);
temp_show(NULL, glade_path); temp_show(NULL, glade_path);
int i = 0; int i = 0;
g_signal_connect(G_OBJECT(get_widget_temp()->btnSaveTempSave),"clicked",G_CALLBACK(entry_groups_disk),&i); 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_disk(activ_text);
set_temp_menu("grpquota", "edit"); set_temp_menu("grpquota", "edit");
temp_set_index(index); temp_set_index(index);
set_all_config(all_config); set_all_config(&all_config);
set_vector(&all_config->v_group); set_vector(&all_config.v_group);
temp_show(NULL, glade_path); temp_show(NULL, glade_path);
set_edit_gui_data_base(all_config, index); set_edit_gui_data_base(&all_config, index);
int i = 0; int i = 0;
g_signal_connect(G_OBJECT(get_widget_temp()->btnSaveTempSave),"clicked",G_CALLBACK(entry_groups_disk),&i); g_signal_connect(G_OBJECT(get_widget_temp()->btnSaveTempSave),"clicked",G_CALLBACK(entry_groups_disk),&i);
} }
void wrapper_add_project_show() { void wrapper_add_project_show() {
set_temp_menu("prjquota", "add"); set_temp_menu("prjquota", "add");
set_all_config(all_config); set_all_config(&all_config);
set_vector(&all_config->v_project); set_vector(&all_config.v_project);
temp_show(NULL, glade_path); temp_show(NULL, glade_path);
int i = 0; int i = 0;
g_signal_connect(G_OBJECT(get_widget_temp()->btnSaveTempSave),"clicked",G_CALLBACK(entry_project_disk),&i); 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); int index = wrapper_select_tree_view(&cfg_custom_gui.project);
set_temp_menu("prjquota", "edit"); set_temp_menu("prjquota", "edit");
temp_set_index(index); temp_set_index(index);
set_all_config(all_config); set_all_config(&all_config);
temp_show(NULL, glade_path); temp_show(NULL, glade_path);
set_vector(&all_config->v_project); set_vector(&all_config.v_project);
set_edit_gui_data_base(all_config, index); set_edit_gui_data_base(&all_config, index);
int i = 0; int i = 0;
g_signal_connect(G_OBJECT(get_widget_temp()->btnSaveTempSave),"clicked",G_CALLBACK(entry_project_disk),&i); 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) { void entry_user_disk(GtkWidget *self,int* flag_update) {
if (flag_update) { if (flag_update) {
all_config->flag_set_data = 1; all_config.flag_set_data = 1;
all_config->flag_save = 3; all_config.flag_save = 3;
temp_on_destroy_subwindow(self); temp_on_destroy_subwindow(self);
} }
get_status_disk(&cfg_custom_gui.user); 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)); 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);
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) { if (find == 0) {
g_object_ref(cfg_custom_gui.user.liststore); g_object_ref(cfg_custom_gui.user.liststore);
gtk_list_store_clear(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) { void entry_groups_disk(GtkWidget *self,int* flag_update) {
if (flag_update) { if (flag_update) {
all_config->flag_set_data = 1; all_config.flag_set_data = 1;
all_config->flag_save = 3; all_config.flag_save = 3;
temp_on_destroy_subwindow(self); temp_on_destroy_subwindow(self);
} }
get_status_disk(&cfg_custom_gui.group); 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)); 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); 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) { if (find == 0) {
g_object_ref(cfg_custom_gui.group.liststore); g_object_ref(cfg_custom_gui.group.liststore);
gtk_list_store_clear(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) { void entry_project_disk(GtkWidget *self,int* flag_update) {
if (flag_update) { if (flag_update) {
all_config->flag_set_data = 1; all_config.flag_set_data = 1;
all_config->flag_save = 3; all_config.flag_save = 3;
temp_on_destroy_subwindow(self); 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) { if (find == 0) {
g_object_ref(cfg_custom_gui.project.liststore); g_object_ref(cfg_custom_gui.project.liststore);
gtk_list_store_clear(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) { void tree_view_select_user(GtkWidget* self) {
block_tree_view(&cfg_custom_gui.user,tree_view_select_user); block_tree_view(&cfg_custom_gui.user,tree_view_select_user);
block_spin_time(&cfg_custom_gui.user, wrapper_get_spin_time_gui_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_spin_time(&cfg_custom_gui.user, wrapper_get_spin_time_gui_user);
unlock_tree_view(&cfg_custom_gui.user,tree_view_select_user); unlock_tree_view(&cfg_custom_gui.user,tree_view_select_user);
} }
void tree_view_select_group(GtkWidget* sel) { void tree_view_select_group(GtkWidget* sel) {
block_tree_view(&cfg_custom_gui.group,tree_view_select_group); block_tree_view(&cfg_custom_gui.group,tree_view_select_group);
block_spin_time(&cfg_custom_gui.group, wrapper_get_spin_time_gui_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_spin_time(&cfg_custom_gui.group, wrapper_get_spin_time_gui_group);
unlock_tree_view(&cfg_custom_gui.group,tree_view_select_group); unlock_tree_view(&cfg_custom_gui.group,tree_view_select_group);
} }
void tree_view_select_project(GtkWidget* self) { void tree_view_select_project(GtkWidget* self) {
block_tree_view(&cfg_custom_gui.project,tree_view_select_project); block_tree_view(&cfg_custom_gui.project,tree_view_select_project);
block_spin_time(&cfg_custom_gui.project, wrapper_get_spin_time_gui_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_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); 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) { void tree_view_select(GtkWidget* self, vector* vec_temp, hotebook* widgets) {
if (self) {} if (self) {}
if (vec_temp->vectorList.total > 0) { if (vec_temp->vectorList.total > 0) {
tree_view_edit(all_config, vec_temp, widgets); tree_view_edit(&all_config, vec_temp, widgets);
GtkTreeIter iter; GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(widgets->liststore); GtkTreeModel *model = GTK_TREE_MODEL(widgets->liststore);
GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->tree_view)); 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() { 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); entry_user_disk(0, 0);
} }
void wrapper_get_spin_time_gui_group() { 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); entry_groups_disk(0, 0);
} }
void wrapper_get_spin_time_gui_project() { 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); entry_project_disk(0, 0);
} }
@ -251,10 +251,10 @@ void template_remove(vector* vec_temp, hotebook* widgets) {
if (index!=-1) { if (index!=-1) {
config_u_g_p* _config = (config_u_g_p*)vec_temp->pfVectorGet(vec_temp, index); config_u_g_p* _config = (config_u_g_p*)vec_temp->pfVectorGet(vec_temp, index);
char* load_key = yon_char_new(_config->loaded_keys); 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); model_clear_cfg(_config);
vec_temp->pfVectorDelete(vec_temp, index); 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)) { if(gtk_tree_selection_get_selected(selection, &model, &iter)) {
gtk_list_store_remove(cfg_custom_gui.user.liststore, &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() { void group_remove() {
@ -275,7 +275,7 @@ void group_remove() {
if(gtk_tree_selection_get_selected(selection, &model, &iter)) { if(gtk_tree_selection_get_selected(selection, &model, &iter)) {
gtk_list_store_remove(cfg_custom_gui.group.liststore, &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() { void project_remove() {
@ -285,7 +285,7 @@ void project_remove() {
if(gtk_tree_selection_get_selected(selection, &model, &iter)) { if(gtk_tree_selection_get_selected(selection, &model, &iter)) {
gtk_list_store_remove(cfg_custom_gui.project.liststore, &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 tree_view_edit(config_all* _all_config, vector* vec_temp, hotebook* widgets) {
int index = wrapper_select_tree_view(widgets); int index = wrapper_select_tree_view(widgets);
@ -314,48 +314,48 @@ void wrapper_all_save() {
int flag_mess_save = 0; int flag_mess_save = 0;
if (all_config->flag_load == 0) { if (all_config.flag_load == 0) {
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);
} }
else { 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) { if (flag_mess_save) {
yon_ubl_status_box_render(GLOBAL_LOCAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); 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 { else {
yon_ubl_status_box_render(MESS_NOTHING_SAVE, BACKGROUND_IMAGE_SUCCESS_TYPE); yon_ubl_status_box_render(MESS_NOTHING_SAVE, BACKGROUND_IMAGE_SUCCESS_TYPE);
} }
} }
void wrapper_global_save() { 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); yon_ubl_status_box_render(GLOBAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
all_config->flag_load-=1; all_config.flag_load-=1;
} }
else { else {
yon_ubl_status_box_render(MESS_NOTHING_SAVE, BACKGROUND_IMAGE_SUCCESS_TYPE); yon_ubl_status_box_render(MESS_NOTHING_SAVE, BACKGROUND_IMAGE_SUCCESS_TYPE);
} }
} }
void wrapper_system_save() { 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); yon_ubl_status_box_render(LOCAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
all_config->flag_load-=1; all_config.flag_load-=1;
} }
else { else {
yon_ubl_status_box_render(MESS_NOTHING_SAVE, BACKGROUND_IMAGE_SUCCESS_TYPE); yon_ubl_status_box_render(MESS_NOTHING_SAVE, BACKGROUND_IMAGE_SUCCESS_TYPE);
} }
} }
void load_system_cfg() { void load_system_cfg() {
all_config->flag_load = 0; all_config.flag_load = 0;
load_template_load_cfg(all_config, CMD_LOAD_SYSTEM); load_template_load_cfg(&all_config, CMD_LOAD_SYSTEM);
yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL, BACKGROUND_IMAGE_SUCCESS_TYPE); yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL, BACKGROUND_IMAGE_SUCCESS_TYPE);
entry_project_disk(0, 0); entry_project_disk(0, 0);
} }
void load_global_cfg() { void load_global_cfg() {
all_config->flag_load = 1; all_config.flag_load = 1;
load_template_load_cfg(all_config, CMD_LOAD_GLOBAL); load_template_load_cfg(&all_config, CMD_LOAD_GLOBAL);
yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
entry_project_disk(0, 0); 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)); 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)); 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); 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; int flag = 0;
if (v_disk_status->vectorList.total> 0 && menu_id_disk >= 0 && menu_id >= 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++) { 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)) { if (strstr(_config->device, activ_text) && strstr(_config->device,widgets->name)) {
flag = 1; flag = 1;
_config->status = menu_id; _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->device = yon_char_unite("DISK_QUOTA[",widgets->name,":",activ_text, "]",NULL);
disk_cfg->status = menu_id; disk_cfg->status = menu_id;
v_disk_status->pfVectorAdd(v_disk_status, disk_cfg); 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) { void get_status_disk(hotebook* widgets) {
int menu_id_disk = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->comboBox)); 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) { 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)); 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); 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[]){ 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, ""); local=setlocale(LC_ALL, "");
bindtextdomain(LocaleName, yon_char_unite(LocalePath, "/", NULL)); bindtextdomain(LocaleName, yon_char_unite(LocalePath, "/", NULL));
//bind_textdomain_codeset(LocaleName, "UTF-8"); //bind_textdomain_codeset(LocaleName, "UTF-8");

@ -7,10 +7,19 @@ void model_clear_cfg(config_u_g_p* _config) {
free(_config->device); free(_config->device);
free(_config->UNIX_file); free(_config->UNIX_file);
free(_config->files); free(_config->files);
model_free_vector_string(&_config->actors);
vectorFree(&_config->actors); vectorFree(&_config->actors);
free(_config->loaded_keys); 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) { void model_tree_view_add(config_u_g_p* _config) {
model_null_str_writing(_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) { 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); GtkTreeModel *model = GTK_TREE_MODEL(widget->liststore);
if (flag_gui_add == 0) { 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_clear_cfg(config_u_g_p* _config);
void model_array_size_memory(); void model_array_size_memory();
char* format_actors(vector* vec_actors); 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, 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); int fill_tree_view_project(config_all* all_config, hotebook* widget, char* str_fill , int flag_gui_add);
#endif #endif

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

@ -26,6 +26,8 @@ struct sVector
void *(*pfVectorGet)(vector *, int); void *(*pfVectorGet)(vector *, int);
int (*pfVectorDelete)(vector *, int); int (*pfVectorDelete)(vector *, int);
int (*pfVectorFree)(vector *); int (*pfVectorFree)(vector *);
void (*pfVectorCopy)(vector *,vector *);
}; };
void vector_init(vector *v); void vector_init(vector *v);
int vectorFree(vector *v); int vectorFree(vector *v);
@ -35,3 +37,4 @@ int vectorSet(vector *v, int index, void *item);
int vectorPushBack(vector *v, void *item); int vectorPushBack(vector *v, void *item);
int vectorResize(vector *v, int capacity); 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* glade_path = NULL;
char* flag_u_g = NULL; char* flag_u_g = NULL;
char* table_u_g_set_add_edit;
table_u_g* table_widgets; 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(){ table_u_g *setup_table_u_g(){
/* Widgets getting | Получение виджетов */ /* Widgets getting | Получение виджетов */
table_widgets = malloc(sizeof(table_u_g)); table_widgets = malloc(sizeof(table_u_g));
device_disk_parsed(); device_disk_parsed();
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path); GtkBuilder *builder = gtk_builder_new_from_resource(glade_path);
table_widgets->Window = yon_gtk_builder_get_widget(builder,"tableUserGroupWindow"); table_widgets->Window = yon_gtk_builder_get_widget(builder,"tableUserGroupWindow");
table_widgets->btnCancel = yon_gtk_builder_get_widget(builder,"quotegroupSaveButton1"); table_widgets->btnCancel = yon_gtk_builder_get_widget(builder,"quotegroupCancelButton1");
table_widgets->btnSave = 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->treeViewCheckUsersGroups = yon_gtk_builder_get_widget(builder,"treeViewCheckUsersGroups");
table_widgets->checkColUserGroup = GTK_CELL_RENDERER_TOGGLE(gtk_builder_get_object(builder,"checkColUserGroup")); 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")); 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); char** array_user = philos_list_user(&size);
table_u_g_fill_tree_view(array_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(); 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; 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, gchar* path,
gpointer user_data gpointer user_data
) { ) {
GtkTreeIter* iter; GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(table_widgets->liststoreUsersGroups); 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) { void table_u_g_destroy(GtkWidget *self) {
@ -96,4 +129,23 @@ table_u_g *table_u_g_get_widget_filters() {
return table_widgets; 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_destroy(GtkWidget *self);
void table_u_g_event(); void table_u_g_event();
void table_u_g_fill_tree_view(char** array, int size); 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_set_glade_path(char* _glade_path);
void table_u_g_show(GtkWidget *self, 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; config_all* _all_config_temp = NULL;
int table_index = 0; int table_index = 0;
char* disk = NULL; char* disk = NULL;
vector temp_vec_actors;
void set_disk(char* _disk) { void set_disk(char* _disk) {
disk = yon_char_new(_disk); disk = yon_char_new(_disk);
@ -25,6 +26,8 @@ void set_vector(vector* _vec_temp) {
vec_temp = _vec_temp; vec_temp = _vec_temp;
} }
void temp_set_index(int _index) { void temp_set_index(int _index) {
table_index = _index; table_index = _index;
} }
@ -45,6 +48,7 @@ temp_set_window *temp_setup_window_base(char* __glade_path) {
return temp_widgets; return temp_widgets;
} }
temp_set_window *temp_setup_window_custom(temp_set_window* temp_widgets, GtkBuilder *builder) { 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->lblSetUGP = yon_gtk_builder_get_widget(builder, "lblSetUGP");
temp_widgets->btnOpenUserGroup = yon_gtk_builder_get_widget(builder, "btnOpenUserGroup"); temp_widgets->btnOpenUserGroup = yon_gtk_builder_get_widget(builder, "btnOpenUserGroup");
temp_widgets->btnReviewProject = yon_gtk_builder_get_widget(builder, "btnReviewProject"); 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->lblCatalogProjectEdit = yon_gtk_builder_get_widget(builder, "lblCatalogProjectEdit");
temp_widgets->lblProjectIdValueEdit = yon_gtk_builder_get_widget(builder, "lblProjectIdValueEdit"); temp_widgets->lblProjectIdValueEdit = yon_gtk_builder_get_widget(builder, "lblProjectIdValueEdit");
temp_widgets->boxTempDevice = yon_gtk_builder_get_widget(builder, "boxTempDevice"); 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); table_u_g_set_glade_path(_glade_path);
if (strcmp(flag_temp_u_g_p,"prjquota")==0) { if (strcmp(flag_temp_u_g_p,"prjquota")==0) {
gtk_widget_hide(temp_widgets->lblSetUGP); 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)); gtk_widget_destroy(gtk_widget_get_toplevel(self));
temp_widgets = NULL; temp_widgets = NULL;
model_free_vector_string(&temp_vec_actors);
vectorFree(&temp_vec_actors);
} }
} }
void event_toggled_all() { 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) { 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); config_u_g_p* _config = (config_u_g_p*)vec_temp->pfVectorGet(vec_temp, index);
if (_config && index >= 0) { if (_config && index >= 0) {
set_widget(temp_widgets->quotegroupSizeSoftLimitCheck, set_widget(temp_widgets->quotegroupSizeSoftLimitCheck,
temp_widgets->quotegroupSizeSoftLimitSpin, temp_widgets->quotegroupSizeSoftLimitSpin,
@ -279,7 +286,8 @@ void set_edit_gui_data_base(config_all* all_config, int index) {
} }
else { else {
gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetNameDevice), disk); 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 { else {
gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetUGPData), format_actors(&_config->actors)); 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)); config_u_g_p* _config = malloc(sizeof(config_u_g_p));
model_null_str_writing(_config); model_null_str_writing(_config);
get_temp_gui_data_base(_config); get_temp_gui_data_base(_config);
_config->actors.pfVectorCopy(&_config->actors, &temp_vec_actors);
vec_temp->pfVectorAdd(vec_temp, _config); 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) { config_u_g_p* get_temp_gui_data_base(config_u_g_p* _config) {
set_widget_config(temp_widgets->quotegroupSizeSoftLimitCheck, set_widget_config(temp_widgets->quotegroupSizeSoftLimitCheck,
temp_widgets->quotegroupSizeSoftLimitSpin, temp_widgets->quotegroupSizeSoftLimitSpin,
@ -400,6 +428,9 @@ config_u_g_p* get_temp_gui_data_base(config_u_g_p* _config) {
} }
else { else {
_config->UNIX_file = yon_char_new(disk); _config->UNIX_file = yon_char_new(disk);
if (strcmp(set_add_edit, "add")==0) {
table_u_g_get_actors(&_config->actors);
}
} }
return _config; return _config;
} }
@ -452,3 +483,4 @@ void set_activ_project_id() {
gtk_widget_set_sensitive(temp_widgets->btnGenerateProject, !active); gtk_widget_set_sensitive(temp_widgets->btnGenerateProject, !active);
} }

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

Loading…
Cancel
Save