Исправлен парсер

pull/24/head
Igor Belitskiy 2 years ago
parent fb36e889ad
commit c35006753c

@ -105,7 +105,7 @@ uninstall:
install: check uninstall
@echo "Install ..."
#################################################### УДАЛИТЬ ПЕРЕД КОММИТОМ ################################################################################
@gcc source/ubl-cmake.h compile/resources.c compile/ubl-cmake.h source/view_filters.c source/model/vector.c source/model/vector.h source/view_filters.h source/view_temp_u_g_p.c source/view_temp_u_g_p.h source/controler.h source/controler.c source/model/philos_utils.h source/model/philos_utils.c source/model/my_device.h source/model/save.h source/model/save.c source/model/my_device.c source/model/model.h source/model/load.h source/model/load.c source/model/model.c source/ubl-settings-diskquota.c source/ubl-settings-diskquota.h source/ubl-strings.h source/model/ubl-utils.c source/model/ubl-utils.h -o ubl-settings-diskquota `pkg-config --cflags --libs gtk+-3.0 vte-2.91 webkit2gtk-4.0 webkit2gtk-web-extension-4.0` -g
@gcc source/ubl-cmake.h compile/resources.c compile/ubl-cmake.h source/view_check_user_table.c source/view_check_user_table.h source/view_filters.c source/model/vector.c source/model/vector.h source/view_filters.h source/view_temp_u_g_p.c source/view_temp_u_g_p.h source/controler.h source/controler.c source/model/philos_utils.h source/model/philos_utils.c source/model/my_device.h source/model/save.h source/model/save.c source/model/my_device.c source/model/model.h source/model/load.h source/model/load.c source/model/model.c source/ubl-settings-diskquota.c source/ubl-settings-diskquota.h source/ubl-strings.h source/model/ubl-utils.c source/model/ubl-utils.h -o ubl-settings-diskquota `pkg-config --cflags --libs gtk+-3.0 vte-2.91 webkit2gtk-4.0 webkit2gtk-web-extension-4.0` -g
#################################################### УДАЛИТЬ ПЕРЕД КОММИТОМ ################################################################################
@for FILE_PO in $(wildcard *.po); do \
LANG=$${FILE_PO##*_};LANG=$${LANG%.*}; \

@ -72,6 +72,8 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissin
set(SOURCE_FILES
controler.h
controler.c
view_check_user_table.c
view_check_user_table.h
model/model.h
model/model.c
model/save.h

@ -6,57 +6,172 @@ config_settings_gui main_config;
config_all* all_config;
void fill_tree_view_u_g_p(custom_window* _config_gui,char* str_fill ,GtkListStore* list, config_all* all_config, int flag_gui_add) {
int fill_tree_view_project(config_all* all_config, char* disk, GtkWidget* tree_view, char* str_fill ,GtkListStore* list, int flag_gui_add) {
GtkTreeModel *model = GTK_TREE_MODEL(list);
if (flag_gui_add == 0) {
g_object_ref(list);
gtk_list_store_clear(list);
}
int flag_searhc = 0;
for (int i = 0; i < all_config->v_u_g_p.pfVectorTotal(&all_config->v_u_g_p); i++) {
GtkTreeIter iter;
config_u_g_p* _config = (config_u_g_p*)all_config->v_u_g_p.pfVectorGet(&all_config->v_u_g_p, i);
if (strcmp(_config->type_arr, str_fill) == 0) {
if (strcmp(_config->type_arr, "prjquota") != 0) {
gtk_list_store_append(list,&iter);
char* deferring_size = wrapper_str_time(_config->deferring_size);
char* deferring_file = wrapper_str_time(_config->deferring_file);
gtk_list_store_set(list,&iter,
0,_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->soft_restriction_file,_config->soft_restriction_file_pow),
5,philos_format_cfg_str_size_memory("", _config->severe_limitation_size,_config->severe_limitation_size_pow),
6,_config->files,
7,philos_format_cfg_str_size_memory("", _config->severe_limitation_file, _config->severe_limitation_file_pow),
8,deferring_size,
9,deferring_file,
-1);
}
else {
gtk_list_store_append(list,&iter);
char* deferring_size = wrapper_str_time(_config->deferring_size);
char* deferring_file = wrapper_str_time(_config->deferring_file);
gtk_list_store_set(list,&iter,
0,yon_char_from_int(_config->id),
1,_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->soft_restriction_file,_config->soft_restriction_file_pow),
6,philos_format_cfg_str_size_memory("", _config->severe_limitation_size,_config->severe_limitation_size_pow),
7,_config->files,
8,philos_format_cfg_str_size_memory("", _config->severe_limitation_file, _config->severe_limitation_file_pow),
9,deferring_size,
10,deferring_file,
-1);
}
}
}
if (strcmp(_config->type_arr, str_fill) == 0 && strstr(_config->UNIX_file, disk)) {
GtkTreeIter iter;
flag_searhc++;
gtk_list_store_append(list,&iter);
char* deferring_size = wrapper_str_time(_config->deferring_size);
char* deferring_file = wrapper_str_time(_config->deferring_file);
gtk_list_store_set(list,&iter,
0,fill_tree_view_id(_config->id),
1,_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->soft_restriction_file,_config->soft_restriction_file_pow),
6,philos_format_cfg_str_size_memory("", _config->severe_limitation_size,_config->severe_limitation_size_pow),
7,_config->files,
8,philos_format_cfg_str_size_memory("", _config->severe_limitation_file, _config->severe_limitation_file_pow),
9,deferring_size,
10,deferring_file,
-1);
}
}
if (flag_gui_add != 0) {
gtk_tree_view_set_model(GTK_TREE_VIEW(_config_gui->treeViewMain), model);
gtk_tree_view_set_model(GTK_TREE_VIEW(tree_view), model);
}
return flag_searhc;
}
int fill_tree_view_user_group(config_all* all_config, char* disk, GtkWidget* tree_view,char* str_fill ,GtkListStore* list, int flag_gui_add) {
GtkTreeModel *model = GTK_TREE_MODEL(list);
if (flag_gui_add == 0) {
g_object_ref(list);
gtk_list_store_clear(list);
}
int flag_searhc = 0;
for (int i = 0; i < all_config->v_u_g_p.pfVectorTotal(&all_config->v_u_g_p); i++) {
config_u_g_p* _config = (config_u_g_p*)all_config->v_u_g_p.pfVectorGet(&all_config->v_u_g_p, i);
if (strcmp(_config->type_arr, str_fill) == 0 && strstr(_config->UNIX_file, disk)) {
GtkTreeIter iter;
flag_searhc++;
gtk_list_store_append(list,&iter);
char* deferring_size = wrapper_str_time(_config->deferring_size);
char* deferring_file = wrapper_str_time(_config->deferring_file);
gtk_list_store_set(list,&iter,
0,_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->soft_restriction_file,_config->soft_restriction_file_pow),
5,philos_format_cfg_str_size_memory("", _config->severe_limitation_size,_config->severe_limitation_size_pow),
6,_config->files,
7,philos_format_cfg_str_size_memory("", _config->severe_limitation_file, _config->severe_limitation_file_pow),
8,deferring_size,
9,deferring_file,
-1);
}
}
if (flag_gui_add != 0) {
gtk_tree_view_set_model(GTK_TREE_VIEW(tree_view), model);
}
return flag_searhc;
}
void entry_user_disk() {
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.tree_view,"usrquota", cfg_custom_gui.user.liststore, 0);
if (find == 0) {
g_object_ref(cfg_custom_gui.user.liststore);
gtk_list_store_clear(cfg_custom_gui.user.liststore);
}
}
void entry_groups_disk() {
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.tree_view,"grpquota", cfg_custom_gui.group.liststore, 0);
if (find == 0) {
g_object_ref(cfg_custom_gui.group.liststore);
gtk_list_store_clear(cfg_custom_gui.group.liststore);
}
}
void entry_project_disk() {
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_project(all_config, activ_text, cfg_custom_gui.project.tree_view,"prjquota", cfg_custom_gui.project.liststore, 0);
if (find == 0) {
g_object_ref(cfg_custom_gui.project.liststore);
gtk_list_store_clear(cfg_custom_gui.project.liststore);
}
}
void set_time_spin(hotebook* widgets, size_t seconds_file, size_t seconds_size) {
me_time t_file = time_convert(seconds_file);
me_time t_size = time_convert(seconds_size);
if (seconds_file!=-1) {
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinWeeksFile), t_file.weeks);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinDaysFile), t_file.days);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinHoursFile), t_file.hours);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinMinutesFile), t_file.minutes);
}
else {
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinWeeksFile), 0);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinDaysFile), 0);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinHoursFile), 0);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinMinutesFile), 0);
}
if (seconds_size!=-1) {
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinWeeksSize), t_size.weeks);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinDaysSize), t_size.days);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinHoursSize), t_size.hours);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinMinutesSize), t_size.minutes);
}
else {
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinWeeksSize), 0);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinDaysSize), 0);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinHoursSize), 0);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinMinutesSize), 0);
}
}
void tree_view_select(hotebook* widgets) {
tree_view_edit(all_config, widgets);
GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(widgets->liststore);
GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->tree_view));
if(gtk_tree_selection_get_selected(selection, &model, &iter)) {
gtk_widget_set_sensitive(widgets->btnAdd,1);
gtk_widget_set_sensitive(widgets->btnDel,1);
gtk_widget_set_sensitive(widgets->btnEdit,1);
}
else {
if (main_config.lock_save_global == 0 || main_config.lock_save_local == 0) {
gtk_widget_set_sensitive(widgets->btnAdd,1);
}
gtk_widget_set_sensitive(widgets->btnDel,0);
gtk_widget_set_sensitive(widgets->btnEdit,0);
}
}
int tree_view_edit(config_all* _all_config, hotebook* widgets) {
int index = 0;
GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(widgets->liststore);
GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->tree_view));
if(gtk_tree_selection_get_selected(selection, &model, &iter)) {
all_config->flag_set_data = 1;
all_config->flag_save = 2;
char* str_iter = gtk_tree_model_get_string_from_iter(model, &iter);
index = atoi(str_iter);
_all_config->v_u_g_p;
config_u_g_p* _config = (config_u_g_p*)_all_config->v_u_g_p.pfVectorGet(&_all_config->v_u_g_p, index);
set_time_spin(widgets,_config->deferring_file, _config->deferring_size);
return 1;
}
else {
return 0;
}
}
@ -103,17 +218,11 @@ void wrapper_system_save() {
void load_system_cfg() {
all_config->flag_load = 0;
load_template_load_cfg(all_config, CMD_LOAD_SYSTEM);
fill_tree_view_u_g_p(&cfg_custom_gui,"usrquota", cfg_custom_gui.liststoreUser, all_config, 0);
fill_tree_view_u_g_p(&cfg_custom_gui,"grpquota", cfg_custom_gui.liststoreGroups, all_config, 0);
fill_tree_view_u_g_p(&cfg_custom_gui,"prjquota", cfg_custom_gui.liststoreProject, all_config, 0);
yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL, BACKGROUND_IMAGE_SUCCESS_TYPE);
}
void load_global_cfg() {
all_config->flag_load = 1;
fill_tree_view_u_g_p(&cfg_custom_gui,"usrquota", cfg_custom_gui.liststoreUser, all_config, 0);
fill_tree_view_u_g_p(&cfg_custom_gui,"grpquota", cfg_custom_gui.liststoreGroups, all_config, 0);
fill_tree_view_u_g_p(&cfg_custom_gui,"prjquota", cfg_custom_gui.liststoreProject, all_config, 0);
load_template_load_cfg(all_config, CMD_LOAD_GLOBAL);
yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
}
@ -124,17 +233,23 @@ void control_event(main_window* _config_main_gui, custom_window* _config_custom_
g_signal_connect(G_OBJECT(_config_main_gui->SaveGlobalMenuItem), "activate", G_CALLBACK(wrapper_global_save), NULL);
g_signal_connect(G_OBJECT(_config_main_gui->SaveLocalMenuItem), "activate", G_CALLBACK(wrapper_system_save), NULL);
g_signal_connect(G_OBJECT(_config_main_gui->SaveMenuItem), "activate", G_CALLBACK(wrapper_all_save), NULL);
g_signal_connect(G_OBJECT(_config_custom_gui->btnAddUsers),"clicked",G_CALLBACK(wrapper_add_user_show), glade_path);
g_signal_connect(G_OBJECT(_config_custom_gui->btnEditUsers),"clicked",G_CALLBACK(wrapper_edit_user_show), glade_path);
g_signal_connect(G_OBJECT(_config_custom_gui->btnAddGroups),"clicked",G_CALLBACK(wrapper_add_group_show), glade_path);
g_signal_connect(G_OBJECT(_config_custom_gui->btnEditGroups),"clicked",G_CALLBACK(wrapper_edit_group_show), glade_path);
g_signal_connect(G_OBJECT(_config_custom_gui->btnAddProject),"clicked",G_CALLBACK(wrapper_add_project_show), glade_path);
g_signal_connect(G_OBJECT(_config_custom_gui->btnEditProject),"clicked",G_CALLBACK(wrapper_edit_project_show), glade_path);
g_signal_connect(G_OBJECT(_config_custom_gui->user.btnAdd),"clicked",G_CALLBACK(wrapper_add_user_show), glade_path);
g_signal_connect(G_OBJECT(_config_custom_gui->user.btnEdit),"clicked",G_CALLBACK(wrapper_edit_user_show), glade_path);
g_signal_connect(G_OBJECT(_config_custom_gui->group.btnAdd),"clicked",G_CALLBACK(wrapper_add_group_show), glade_path);
g_signal_connect(G_OBJECT(_config_custom_gui->group.btnEdit),"clicked",G_CALLBACK(wrapper_edit_group_show), glade_path);
g_signal_connect(G_OBJECT(_config_custom_gui->project.btnAdd),"clicked",G_CALLBACK(wrapper_add_project_show), glade_path);
g_signal_connect(G_OBJECT(_config_custom_gui->user.btnEdit),"clicked",G_CALLBACK(wrapper_edit_project_show), glade_path);
g_signal_connect(G_OBJECT(_config_custom_gui->btnFilterUsers),"clicked",G_CALLBACK(wrapper_filters_user_show), glade_path);
g_signal_connect(G_OBJECT(_config_custom_gui->btnFilterGroups),"clicked",G_CALLBACK(wrapper_filters_group_show), glade_path);
g_signal_connect(G_OBJECT(_config_custom_gui->btnFilterProject),"clicked",G_CALLBACK(wrapper_filters_project_show), glade_path);
g_signal_connect(G_OBJECT(_config_custom_gui->user.btnFilter),"clicked",G_CALLBACK(wrapper_filters_user_show), glade_path);
g_signal_connect(G_OBJECT(_config_custom_gui->group.btnFilter),"clicked",G_CALLBACK(wrapper_filters_group_show), glade_path);
g_signal_connect(G_OBJECT(_config_custom_gui->project.btnFilter),"clicked",G_CALLBACK(wrapper_filters_project_show), glade_path);
g_signal_connect(G_OBJECT(_config_custom_gui->user.comboBox),"changed",G_CALLBACK(entry_user_disk), NULL);
g_signal_connect(G_OBJECT(_config_custom_gui->group.comboBox),"changed",G_CALLBACK(entry_groups_disk), NULL);
g_signal_connect(G_OBJECT(_config_custom_gui->project.comboBox),"changed",G_CALLBACK(entry_project_disk), NULL);
g_signal_connect(G_OBJECT(_config_custom_gui->user.tree_view), "cursor-changed", G_CALLBACK(tree_view_select), &_config_custom_gui->user);
g_signal_connect(G_OBJECT(_config_custom_gui->group.tree_view), "cursor-changed", G_CALLBACK(tree_view_select), &_config_custom_gui->group);
g_signal_connect(G_OBJECT(_config_custom_gui->project.tree_view), "cursor-changed", G_CALLBACK(tree_view_select), &_config_custom_gui->project);
}
/*

@ -11,3 +11,10 @@ void control_event(main_window* _config_main_gui, custom_window* _config_custom_
void wrapper_all_save();
void wrapper_global_save();
void wrapper_system_save();
int fill_tree_view_user_group(config_all* all_config, char* disk, GtkWidget* tree_view,char* str_fill ,GtkListStore* list, int flag_gui_add);
int fill_tree_view_project(config_all* all_config, char* disk, GtkWidget* tree_view, char* str_fill ,GtkListStore* list, int flag_gui_add);
void entry_user_disk();
void entry_groups_disk();
void entry_project_disk();
int tree_view_edit(config_all* _all_config, hotebook* widgets);
void set_time_spin(hotebook* widgets, size_t seconds_file, size_t seconds_size);

@ -46,14 +46,14 @@ void load_pars_keys_u_g(config_u_g_p* _config, char* str_key, int index) {
}
if (yon_char_find_count(str_key, ":") || yon_char_find_count(str_key, ",")) {
int size_point = 0;
char** arr_keys = philos_str_split(str_key, &size_point, ":");
char** arr_keys = philos_str_split(yon_char_new(str_key), &size_point, ":");
_config->type_arr = yon_char_new(arr_keys[0]);
int size_users = 0;
if (yon_char_find_count(str_key, ":") == 2) {
if (yon_char_find_count(str_key, ",")) {
int size_comma = 0;
char** arr_user = philos_str_split(arr_keys[1], &size_comma, ",");
_config->UNIX_file = yon_char_new(arr_keys[0]);
char** arr_user = philos_str_split(arr_keys[size_point-1], &size_comma, ",");
_config->UNIX_file = yon_char_new(arr_keys[1]);
for (int i = 1; i < size_comma; i++) {
_config->actors = yon_char_new(arr_user[i]);
@ -70,23 +70,25 @@ void load_pars_keys_u_g(config_u_g_p* _config, char* str_key, int index) {
}
void load_pars_keys_p(config_u_g_p* _config, char* str_key, int index) {
puts(str_key);
if (strstr(str_key, "prjquota")) {
if (yon_char_find_count(str_key, ":") || yon_char_find_count(str_key, ",")) {
int size_point = 0;
char** arr_keys = philos_str_split(str_key, &size_point, ":");
char** arr_keys = philos_str_split(yon_char_new(str_key), &size_point, ":");
_config->type_arr = yon_char_new(arr_keys[0]);
int size_users = 0;
if (yon_char_find_count(str_key, ":") == 2) {
_config->UNIX_file = yon_char_new(arr_keys[1]);
int size_comma = 0;
if (yon_char_find_count(str_key, ",")) {
char** arr_user = philos_str_split(arr_keys[size_point], &size_comma, ",");
char** arr_user = philos_str_split(arr_keys[size_point-1], &size_comma, ",");
if (strstr(str_key, "AUTO")) {
_config->id = -1;
}
else {
_config->id = atoi(arr_user[0]);
}
_config->actors = yon_char_new(arr_keys[size_comma-1]);
}
else {
if (strstr(str_key, "AUTO")) {
@ -159,7 +161,7 @@ void load_free_vector(config_all* _all_config) {
char* wrapper_str_time(size_t seconds) {
me_time t;
if (seconds!=-1) {
t = str_time(seconds);
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,

@ -200,7 +200,6 @@ unsigned short philos_read_uid_min_max(char* filename, char* search) {
}
config_str philos_list_user(int* size) {
char* str_uid_min = "UID_MIN";
char* str_uid_max = "UID_MAX";
@ -811,9 +810,8 @@ void philos_set_size_memory_integer(char* str_find, size_t* array_data) {
}
}
me_time str_time(size_t seconds) {
me_time time_convert(size_t seconds) {
me_time t;
printf("%d\n", seconds);
if (seconds != -1) {
double weeks = seconds / (7*24*60*60);
double days = seconds / (24*60*60) - 7*weeks;
@ -855,4 +853,14 @@ me_time str_time(size_t seconds) {
return t;
}
}
char* fill_tree_view_id(int id) {
if (id < 0) {
return yon_char_new("AUTO");
}
else {
return yon_char_from_int(id);
}
}

@ -77,9 +77,9 @@ void philos_free_string_array(char ***array, int size);
void philos_free_string_array_n3(char ****array, int size);
void philos_free_int_array(int **array, int size);
void philos_free_int_array_n2(int ***array, int size);
config_str philos_list_group(int* size);
unsigned short philos_read_uid_min_max(char* filename, char* search);
config_str philos_list_user(int* size);
config_str philos_list_group(int* size);
char* philos_str_size_pow_byte(GtkWidget *combo_box_text);
char* philos_str_remove(char *str, const char *sub);
void philos_split_size_memory(char* str_value, int* size, char* pow_memory);
@ -123,5 +123,7 @@ int find_null_array(temp_config* _config);
void init_device_disk(temp_config* _config);
char** philos_char_parsed_append(char** parsed, int *size, char *string);
void philos_set_size_memory_integer(char* str_find, size_t* array_data);
me_time str_time(size_t seconds);
me_time time_convert(size_t seconds);
char* fill_tree_view_id(int id);
#endif

@ -23,7 +23,7 @@
#define DesktopPath "/usr/share/applications/"
#define for_dictionaries(obj, obj1) for (obj = obj1->first; obj != NULL; obj = obj->next)
#define for_iter(TreeIter,TreeModel) int _yon_valid =2; for(gtk_tree_model_get_iter_first(TreeModel,TreeIter); _yon_valid ==1;_yon_valid=gtk_tree_model_iter_next(TreeModel,TreeIter))
#define new(type) malloc(sizeof(type))
#define new_arr(type,size) malloc(sizeof(type)*size)

@ -189,28 +189,68 @@ main_window *setup_window(main_window* widgets, custom_window* custom_widgets){
}
custom_window *setup_window_custom(custom_window* custom_widgets, GtkBuilder *builder) {
custom_widgets->usersDeviceCombo = yon_gtk_builder_get_widget(builder,"usersDeviceCombo");
custom_widgets->groupsDeviceCombo = yon_gtk_builder_get_widget(builder,"groupsDeviceCombo");
custom_widgets->ProjectDeviceCombo = yon_gtk_builder_get_widget(builder,"ProjectDeviceCombo");
device_fill_disk(custom_widgets->usersDeviceCombo);
device_fill_disk(custom_widgets->groupsDeviceCombo);
device_fill_disk(custom_widgets->ProjectDeviceCombo);
custom_widgets->btnAddUsers = yon_gtk_builder_get_widget(builder,"btnAddUsers");
custom_widgets->btnEditUsers = yon_gtk_builder_get_widget(builder,"btnEditUsers");
custom_widgets->btnDelUsers = yon_gtk_builder_get_widget(builder,"btnDelUsers");
custom_widgets->btnFilterUsers = yon_gtk_builder_get_widget(builder,"btnFilterUsers");
custom_widgets->btnAddGroups = yon_gtk_builder_get_widget(builder,"btnAddGroups");
custom_widgets->btnEditGroups = yon_gtk_builder_get_widget(builder,"btnEditGroups");
custom_widgets->btnDelGroups = yon_gtk_builder_get_widget(builder,"btnDelGroups");
custom_widgets->btnFilterGroups = yon_gtk_builder_get_widget(builder,"btnFilterGroups");
custom_widgets->btnAddProject = yon_gtk_builder_get_widget(builder,"btnAddProject");
custom_widgets->btnEditProject = yon_gtk_builder_get_widget(builder,"btnEditProject");
custom_widgets->btnDelProject = yon_gtk_builder_get_widget(builder,"btnDelProject");
custom_widgets->btnFilterProject = yon_gtk_builder_get_widget(builder,"btnFilterProject");
custom_widgets->liststoreUser = GTK_LIST_STORE(gtk_builder_get_object(builder, "liststoreUser"));
custom_widgets->liststoreGroups = GTK_LIST_STORE(gtk_builder_get_object(builder, "liststoreGroups"));
custom_widgets->liststoreProject = GTK_LIST_STORE(gtk_builder_get_object(builder, "liststoreProject"));
custom_widgets->user.comboBox = yon_gtk_builder_get_widget(builder,"usersDeviceCombo");
custom_widgets->group.comboBox = yon_gtk_builder_get_widget(builder,"groupsDeviceCombo");
custom_widgets->project.comboBox = yon_gtk_builder_get_widget(builder,"ProjectDeviceCombo");
device_fill_disk(custom_widgets->user.comboBox);
device_fill_disk(custom_widgets->group.comboBox);
device_fill_disk(custom_widgets->project.comboBox);
custom_widgets->user.btnAdd = yon_gtk_builder_get_widget(builder,"btnAddUsers");
custom_widgets->user.btnEdit = yon_gtk_builder_get_widget(builder,"btnEditUsers");
custom_widgets->user.btnDel = yon_gtk_builder_get_widget(builder,"btnDelUsers");
custom_widgets->user.btnFilter = yon_gtk_builder_get_widget(builder,"btnFilterUsers");
custom_widgets->group.btnAdd = yon_gtk_builder_get_widget(builder,"btnAddGroups");
custom_widgets->group.btnEdit = yon_gtk_builder_get_widget(builder,"btnEditGroups");
custom_widgets->group.btnDel = yon_gtk_builder_get_widget(builder,"btnDelGroups");
custom_widgets->group.btnFilter = yon_gtk_builder_get_widget(builder,"btnFilterGroups");
custom_widgets->project.btnAdd = yon_gtk_builder_get_widget(builder,"btnAddProject");
custom_widgets->project.btnEdit = yon_gtk_builder_get_widget(builder,"btnEditProject");
custom_widgets->project.btnDel = yon_gtk_builder_get_widget(builder,"btnDelProject");
custom_widgets->project.btnFilter = yon_gtk_builder_get_widget(builder,"btnFilterProject");
custom_widgets->user.tree_view = yon_gtk_builder_get_widget(builder,"usersQuotasTree");
custom_widgets->group.tree_view = yon_gtk_builder_get_widget(builder,"groupsQuotasTree");
custom_widgets->project.tree_view = yon_gtk_builder_get_widget(builder,"ProjectQuotasTree");
custom_widgets->user.liststore = GTK_LIST_STORE(gtk_builder_get_object(builder, "liststoreUser"));
custom_widgets->group.liststore = GTK_LIST_STORE(gtk_builder_get_object(builder, "liststoreGroups"));
custom_widgets->project.liststore = GTK_LIST_STORE(gtk_builder_get_object(builder, "liststoreProject"));
custom_widgets->liststoreGeneral = GTK_LIST_STORE(gtk_builder_get_object(builder, "liststoreGeneral"));
custom_widgets->user.spinWeeksSize = yon_gtk_builder_get_widget(builder,"generalUsersSizWeeksSpin");
custom_widgets->group.spinWeeksSize = yon_gtk_builder_get_widget(builder,"generalGroupsSizeWeeksSpi");
custom_widgets->project.spinWeeksSize = yon_gtk_builder_get_widget(builder,"generalProjectSizWeeksSpin");
custom_widgets->user.spinDaysSize = yon_gtk_builder_get_widget(builder,"generalUsersSizeDaySpin");
custom_widgets->group.spinDaysSize = yon_gtk_builder_get_widget(builder,"generalGroupsSizeDaySpin");
custom_widgets->project.spinDaysSize = yon_gtk_builder_get_widget(builder,"generalProjectSizeDaySpin");
custom_widgets->user.spinHoursSize = yon_gtk_builder_get_widget(builder,"generalUsersSizeHourSpin");
custom_widgets->group.spinHoursSize = yon_gtk_builder_get_widget(builder,"generalGroupsSizeHourSpin");
custom_widgets->project.spinHoursSize = yon_gtk_builder_get_widget(builder,"generalProjectSizeHourSpin");
custom_widgets->user.spinMinutesSize = yon_gtk_builder_get_widget(builder,"generalUsersSizeMinuteSpin");
custom_widgets->group.spinMinutesSize = yon_gtk_builder_get_widget(builder,"generalGroupsSizeMinuteSpin");
custom_widgets->project.spinMinutesSize = yon_gtk_builder_get_widget(builder,"generalProjectSizeMinuteSpin");
custom_widgets->user.spinWeeksFile = yon_gtk_builder_get_widget(builder,"generalUsersFileWeeksSpin");
custom_widgets->group.spinWeeksFile = yon_gtk_builder_get_widget(builder,"generalGroupsFileWeeksSpin");
custom_widgets->project.spinWeeksFile = yon_gtk_builder_get_widget(builder,"generalProjectFileWeeksSpin");
custom_widgets->user.spinDaysFile = yon_gtk_builder_get_widget(builder,"generalUsersFilesDaySpin");
custom_widgets->group.spinDaysFile = yon_gtk_builder_get_widget(builder,"generalGroupsFilesDaySpin");
custom_widgets->project.spinDaysFile = yon_gtk_builder_get_widget(builder,"generalProjectFilesDaySpin");
custom_widgets->user.spinHoursFile = yon_gtk_builder_get_widget(builder,"generalUsersFilesHoursSpin");
custom_widgets->group.spinHoursFile = yon_gtk_builder_get_widget(builder,"generalGroupsFilesHourSpin");
custom_widgets->project.spinHoursFile = yon_gtk_builder_get_widget(builder,"generalProjectFilesHoursSpin");
custom_widgets->user.spinMinutesFile = yon_gtk_builder_get_widget(builder,"generalUsersFilesMinutesSpin");
custom_widgets->group.spinMinutesFile = yon_gtk_builder_get_widget(builder,"generalGroupsFilesMinuteSpin");
custom_widgets->project.spinMinutesFile = yon_gtk_builder_get_widget(builder,"generalProjectFilesMinutesSpin");
return custom_widgets;
}
void wrapper_filters_user_show() {

@ -83,31 +83,31 @@ typedef struct {
GtkWidget *AboutMenuItem;
// Custom
} main_window;
typedef struct {
GtkListStore *liststore;
GtkWidget* tree_view;
GtkWidget* btnAdd;
GtkWidget* btnEdit;
GtkWidget* btnDel;
GtkWidget* btnFilter;
GtkWidget* comboBox;
GtkWidget* spinWeeksSize;
GtkWidget* spinDaysSize;
GtkWidget* spinHoursSize;
GtkWidget* spinMinutesSize;
GtkWidget* spinWeeksFile;
GtkWidget* spinDaysFile;
GtkWidget* spinHoursFile;
GtkWidget* spinMinutesFile;
} hotebook;
typedef struct {
GtkWidget *treeViewMain;
GtkListStore *liststoreUser;
GtkListStore *liststoreGroups;
GtkListStore *liststoreProject;
GtkListStore *liststoreGeneral;
GtkWidget* usersDeviceCombo;
GtkWidget* groupsDeviceCombo;
GtkWidget* ProjectDeviceCombo;
GtkWidget* btnAddUsers;
GtkWidget* btnEditUsers;
GtkWidget* btnDelUsers;
GtkWidget* btnFilterUsers;
GtkWidget* btnAddGroups;
GtkWidget* btnEditGroups;
GtkWidget* btnDelGroups;
GtkWidget* btnFilterGroups;
GtkWidget* btnAddProject;
GtkWidget* btnEditProject;
GtkWidget* btnDelProject;
GtkWidget* btnFilterProject;
hotebook user;
hotebook group;
hotebook project;
}
custom_window;

@ -0,0 +1,86 @@
#include "view_check_user_table.h"
char* glade_path = NULL;
char* flag_u_g = NULL;
table_u_g* 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->treeViewCheckUsersGroups = yon_gtk_builder_get_widget(builder,"treeViewCheckUsersGroups");
table_widgets->liststoreUsersGroups = GTK_LIST_STORE(gtk_builder_get_object(builder, "liststoreUsersGroups"));
int size = 0;
if (strcmp(flag_u_g, "group")==0) {
char** array_user = philos_list_group(&size);
table_u_g_fill_tree_view(array_user, size);
}
else if (strcmp(flag_u_g, "user") == 0) {
char** array_groups = philos_list_user(&size);
table_u_g_fill_tree_view(array_groups, size);
}
table_u_g_event();
}
void table_u_g_set_glade_path(char* _glade_path) {
glade_path = _glade_path;
}
void table_u_g_get_data() {
}
void table_u_g_set_flag(char* _flag_u_g) {
flag_u_g = _flag_u_g;
}
void table_u_g_fill_tree_view(char** array, int size) {
GtkTreeModel *model = GTK_TREE_MODEL(table_widgets->liststoreUsersGroups);
g_object_ref(table_widgets->liststoreUsersGroups);
gtk_list_store_clear(table_widgets->liststoreUsersGroups);
for (int i=0; i<size; i++){
GtkTreeIter iter;
gtk_list_store_append(table_widgets->liststoreUsersGroups,&iter);
gtk_list_store_set(table_widgets->liststoreUsersGroups,&iter,
0,0,
1,array[i],
-1);
}
gtk_tree_view_set_model(GTK_TREE_VIEW(table_widgets->treeViewCheckUsersGroups), model);
}
void table_u_g_show(GtkWidget *self, char* glade_path) {
if (table_widgets != NULL) {
gtk_widget_show(table_widgets->Window);
}
else {
setup_table_u_g(glade_path);
gtk_widget_show(table_widgets->Window);
}
}
void table_u_g_event() {
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 table_u_g_destroy(GtkWidget *self) {
table_widgets = NULL;
}
void table_u_g_localization(table_u_g *widgets) {
}
void table_u_g_on_hide_subwindow(GtkWidget *self) {
gtk_widget_destroy(gtk_widget_get_toplevel(self));
table_widgets = NULL;
}
table_u_g *table_u_g_get_widget_filters() {
return table_widgets;
}

@ -0,0 +1,32 @@
#include <gtk/gtk.h>
#include <gtk/gtkx.h>
#include "model/ubl-utils.h"
#include <locale.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <libintl.h>
#include <getopt.h>
#include <libintl.h>
#include "ubl-cmake.h"
#include "model/model.h"
#include "model/load.h"
#include "ubl-strings.h"
typedef struct {
GtkWidget* btnCancel;
GtkWidget* Window;
GtkWidget* btnSave;
GtkWidget* treeViewCheckUsersGroups;
GtkListStore* liststoreUsersGroups;
} table_u_g;
void table_u_g_table_u_g_event(table_u_g *widgets);
void table_u_g_on_hide_subwindow(GtkWidget *self);
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_glade_path(char* _glade_path);
void table_u_g_show(GtkWidget *self, char* glade_path);

@ -39,7 +39,8 @@ temp_set_window *temp_setup_window_custom(temp_set_window* temp_widgets, GtkBuil
temp_widgets->boxProject = yon_gtk_builder_get_widget(builder, "boxProject");
temp_widgets->lblOpenUserGroup = yon_gtk_builder_get_widget(builder, "lblOpenUserGroup");
temp_widgets->lblHeadQuotasEditWindow = yon_gtk_builder_get_widget(builder, "lblHeadQuotasEditWindow");
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(set_add_edit, "add")==0) {
gtk_widget_hide(temp_widgets->btnOpenUserGroup);
@ -57,10 +58,10 @@ temp_set_window *temp_setup_window_custom(temp_set_window* temp_widgets, GtkBuil
}
}
else {
if (strcmp(flag_temp_u_g_p,"user")==0) {
if (strcmp(flag_temp_u_g_p, "user")==0) {
gtk_label_set_label(GTK_LABEL(temp_widgets->lblOpenUserGroup), _("Users"));
}
else if (strcmp(flag_temp_u_g_p,"group")==0) {
else if (strcmp(flag_temp_u_g_p, "group")==0) {
gtk_label_set_label(GTK_LABEL(temp_widgets->lblOpenUserGroup), _("Groups"));
}
@ -108,9 +109,15 @@ void temp_init_windows() {
void temp_event(temp_set_window* temp_widgets) {
g_signal_connect(G_OBJECT(temp_widgets->btnTempCancel),"clicked",G_CALLBACK(temp_on_destroy_subwindow),NULL);
g_signal_connect(G_OBJECT(temp_widgets->Window), "destroy", G_CALLBACK(temp_destroy), NULL);
g_signal_connect(G_OBJECT(temp_widgets->btnOpenUserGroup),"clicked",G_CALLBACK(wrapper_show_file_manager),NULL);
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);
}
else {
g_signal_connect(G_OBJECT(temp_widgets->btnOpenUserGroup),"clicked",G_CALLBACK(table_u_g_show),_glade_path);
}
}
void wrapper_show_file_manager() {
GtkBuilder *builder = gtk_builder_new_from_resource(_glade_path);
show_file_manger(temp_widgets, builder);

@ -11,6 +11,7 @@
#include "ubl-cmake.h"
#include "model/model.h"
#include "model/load.h"
#include "view_check_user_table.h"

Binary file not shown.

@ -1589,90 +1589,219 @@ translated and supported by community.</property>
</child>
</object>
<object class="GtkListStore" id="liststoreGeneral"/>
<object class="GtkWindow" id="QuotasEditWindow1">
<object class="GtkListStore" id="liststoreGroups">
<columns>
<!-- column-name gchararray1 -->
<column type="gchararray"/>
<!-- column-name gchararray2 -->
<column type="gchararray"/>
<!-- column-name gchararray3 -->
<column type="gchararray"/>
<!-- column-name gchararray4 -->
<column type="gchararray"/>
<!-- column-name gchararray5 -->
<column type="gchararray"/>
<!-- column-name gchararray6 -->
<column type="gchararray"/>
<!-- column-name gchararray7 -->
<column type="gchararray"/>
<!-- column-name gchararray8 -->
<column type="gchararray"/>
<!-- column-name gchararray9 -->
<column type="gchararray"/>
<!-- column-name gchararray10 -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkListStore" id="liststoreProject">
<columns>
<!-- column-name gchararray1 -->
<column type="gchararray"/>
<!-- column-name gchararray2 -->
<column type="gchararray"/>
<!-- column-name gchararray3 -->
<column type="gchararray"/>
<!-- column-name gchararray4 -->
<column type="gchararray"/>
<!-- column-name gchararray5 -->
<column type="gchararray"/>
<!-- column-name gchararray6 -->
<column type="gchararray"/>
<!-- column-name gchararray7 -->
<column type="gchararray"/>
<!-- column-name gchararray8 -->
<column type="gchararray"/>
<!-- column-name gchararray9 -->
<column type="gchararray"/>
<!-- column-name gchararray10 -->
<column type="gchararray"/>
<!-- column-name gchararray11 -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkListStore" id="liststoreUser">
<columns>
<!-- column-name gchararray1 -->
<column type="gchararray"/>
<!-- column-name gchararray2 -->
<column type="gchararray"/>
<!-- column-name gchararray3 -->
<column type="gchararray"/>
<!-- column-name gchararray4 -->
<column type="gchararray"/>
<!-- column-name gchararray5 -->
<column type="gchararray"/>
<!-- column-name gchararray6 -->
<column type="gchararray"/>
<!-- column-name gchararray7 -->
<column type="gchararray"/>
<!-- column-name gchararray8 -->
<column type="gchararray"/>
<!-- column-name gchararray9 -->
<column type="gchararray"/>
<!-- column-name gchararray10 -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkListStore" id="liststoreUsersGroups">
<columns>
<!-- column-name gboolean1 -->
<column type="gboolean"/>
<!-- column-name gchararray1 -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkWindow" id="tableUserGroupWindow">
<property name="can-focus">False</property>
<property name="valign">start</property>
<property name="resizable">False</property>
<property name="default-width">250</property>
<property name="default-height">400</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkScrolledWindow">
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="shadow-type">in</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkViewport">
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkTreeView" id="treeViewCheckUsers">
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="model">liststoreGeneral</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child>
<object class="GtkTreeViewColumn">
<child>
<object class="GtkCellRendererToggle"/>
</child>
</object>
</child>
<property name="hscrollbar-policy">external</property>
<property name="vscrollbar-policy">always</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">User</property>
<object class="GtkViewport">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkCellRendererText"/>
<object class="GtkTreeView" id="treeViewCheckUsersGroups">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="model">liststoreUsersGroups</property>
<property name="search-column">0</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child>
<object class="GtkTreeViewColumn">
<child>
<object class="GtkCellRendererToggle"/>
<attributes>
<attribute name="activatable">0</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">User</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">1</attribute>
</attributes>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="homogeneous">True</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">end</property>
<property name="spacing">5</property>
<property name="orientation">vertical</property>
<property name="homogeneous">True</property>
<child>
<object class="GtkButton" id="quotegroupCancelButton1">
<property name="label">gtk-cancel</property>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="use-stock">True</property>
<property name="can-focus">False</property>
<property name="halign">end</property>
<property name="spacing">5</property>
<property name="homogeneous">True</property>
<child>
<object class="GtkButton" id="quotegroupCancelButton1">
<property name="label">gtk-cancel</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="use-stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="quotegroupSaveButton1">
<property name="label">gtk-save</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="use-stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
@ -1680,38 +1809,18 @@ translated and supported by community.</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="quotegroupSaveButton1">
<property name="label">gtk-save</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="use-stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
<property name="position">1</property>
</packing>
</child>
</object>
@ -1743,80 +1852,6 @@ translated and supported by community.</property>
</object>
</child>
</object>
<object class="GtkListStore" id="liststoreGroups">
<columns>
<!-- column-name gchararray1 -->
<column type="gchararray"/>
<!-- column-name gchararray2 -->
<column type="gchararray"/>
<!-- column-name gchararray3 -->
<column type="gchararray"/>
<!-- column-name gchararray4 -->
<column type="gchararray"/>
<!-- column-name gchararray5 -->
<column type="gchararray"/>
<!-- column-name gchararray6 -->
<column type="gchararray"/>
<!-- column-name gchararray7 -->
<column type="gchararray"/>
<!-- column-name gchararray8 -->
<column type="gchararray"/>
<!-- column-name gchararray9 -->
<column type="gchararray"/>
<!-- column-name gchararray10 -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkListStore" id="liststoreProject">
<columns>
<!-- column-name gchararray1 -->
<column type="gchararray"/>
<!-- column-name gchararray2 -->
<column type="gchararray"/>
<!-- column-name gchararray3 -->
<column type="gchararray"/>
<!-- column-name gchararray4 -->
<column type="gchararray"/>
<!-- column-name gchararray5 -->
<column type="gchararray"/>
<!-- column-name gchararray6 -->
<column type="gchararray"/>
<!-- column-name gchararray7 -->
<column type="gchararray"/>
<!-- column-name gchararray8 -->
<column type="gchararray"/>
<!-- column-name gchararray9 -->
<column type="gchararray"/>
<!-- column-name gchararray10 -->
<column type="gchararray"/>
<!-- column-name gchararray11 -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkListStore" id="liststoreUser">
<columns>
<!-- column-name gchararray1 -->
<column type="gchararray"/>
<!-- column-name gchararray2 -->
<column type="gchararray"/>
<!-- column-name gchararray3 -->
<column type="gchararray"/>
<!-- column-name gchararray4 -->
<column type="gchararray"/>
<!-- column-name gchararray5 -->
<column type="gchararray"/>
<!-- column-name gchararray6 -->
<column type="gchararray"/>
<!-- column-name gchararray7 -->
<column type="gchararray"/>
<!-- column-name gchararray8 -->
<column type="gchararray"/>
<!-- column-name gchararray9 -->
<column type="gchararray"/>
<!-- column-name gchararray10 -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkMenu" id="menu1">
<property name="visible">True</property>
<property name="can-focus">False</property>

Loading…
Cancel
Save