Исправил окно редактирования

pull/24/head
Igor Belitskiy 2 years ago
parent a35b15be33
commit b4a9815b9d

@ -4,6 +4,7 @@ main_window cfg_main_gui;
custom_window cfg_custom_gui;
config_settings_gui main_config;
config_all* all_config;
int index_selected = 0;
void wrapper_filters_user_show() {
filters_set_name("user");
@ -21,145 +22,100 @@ void wrapper_filters_project_show() {
void wrapper_add_user_show() {
set_temp_menu("user", "add");
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);
}
void wrapper_edit_user_show() {
int index = wrapper_select_tree_view(&cfg_custom_gui.user);
set_temp_menu("user", "edit");
temp_set_index(index_selected);
set_all_config(all_config);
temp_show(NULL, glade_path);
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);
}
void wrapper_add_group_show() {
set_temp_menu("group", "add");
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);
}
void wrapper_edit_group_show() {
int index = wrapper_select_tree_view(&cfg_custom_gui.group);
set_temp_menu("group", "edit");
temp_set_index(index_selected);
set_all_config(all_config);
set_vector(&all_config->v_group);
temp_show(NULL, glade_path);
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("project", "add");
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);
}
void wrapper_edit_project_show() {
int index = wrapper_select_tree_view(&cfg_custom_gui.project);
set_temp_menu("project", "edit");
temp_set_index(index_selected);
set_all_config(all_config);
temp_show(NULL, glade_path);
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);
}
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) {
g_object_ref(widget->liststore);
gtk_list_store_clear(widget->liststore);
}
int flag_searhc = 0;
for (int i = 0; i < all_config->v_project.pfVectorTotal(&all_config->v_project); i++) {
config_u_g_p* _config = (config_u_g_p*)all_config->v_project.pfVectorGet(&all_config->v_project, i);
if (strcmp(_config->type_arr, str_fill) == 0) {
GtkTreeIter iter;
flag_searhc++;
gtk_list_store_append(widget->liststore,&iter);
char* deferring_size = wrapper_str_time(_config->deferring_size);
char* deferring_file = wrapper_str_time(_config->deferring_file);
gtk_list_store_set(widget->liststore,&iter,
0,fill_tree_view_id(_config->id),
1,format_actors(&_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->severe_limitation_size,_config->severe_limitation_size_pow),
6,yon_char_from_int(_config->soft_restriction_file),
7,_config->files,
8,yon_char_from_int(_config->severe_limitation_file),
9,deferring_size,
10,deferring_file,
-1);
}
}
if (flag_gui_add != 0) {
gtk_tree_view_set_model(GTK_TREE_VIEW(widget->spinWeeksFile), model);
}
return flag_searhc;
}
int fill_tree_view_user_group(config_all* all_config, char* disk, hotebook* widget,char* str_fill ,int flag_gui_add) {
GtkTreeModel *model = GTK_TREE_MODEL(widget->liststore);
if (flag_gui_add == 0) {
g_object_ref(widget->liststore);
gtk_list_store_clear(widget->liststore);
}
int flag_searhc = 0;
vector* vec_temp = NULL;
if (strcmp(str_fill, "usrquota")==0) {
vec_temp = &all_config->v_user;
}
else {
vec_temp = &all_config->v_group;
}
for (int i = 0; i < vec_temp->pfVectorTotal(vec_temp); i++) {
config_u_g_p* _config = (config_u_g_p*)vec_temp->pfVectorGet(vec_temp, i);
if (strcmp(_config->type_arr, str_fill) == 0 && strstr(_config->UNIX_file, disk)) {
GtkTreeIter iter;
flag_searhc++;
gtk_list_store_append(widget->liststore,&iter);
char* deferring_size = wrapper_str_time(_config->deferring_size);
char* deferring_file = wrapper_str_time(_config->deferring_file);
gtk_list_store_set(widget->liststore,&iter,
0,format_actors(&_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->severe_limitation_size,_config->severe_limitation_size_pow),
5,yon_char_from_int(_config->soft_restriction_file),
6,_config->files,
7,yon_char_from_int(_config->severe_limitation_file),
8,deferring_size,
9,deferring_file,
-1);
}
}
if (flag_gui_add != 0) {
gtk_tree_view_set_model(GTK_TREE_VIEW(widget->tree_view), model);
}
return flag_searhc;
}
void entry_user_disk() {
void entry_user_disk(GtkWidget *self,int* flag_update) {
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);
if (find == 0) {
if (find >= 0) {
g_object_ref(cfg_custom_gui.user.liststore);
gtk_list_store_clear(cfg_custom_gui.user.liststore);
}
if (flag_update) {
temp_on_destroy_subwindow(self);
}
}
void entry_groups_disk() {
void entry_groups_disk(GtkWidget *self,int* flag_update) {
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);
if (find == 0) {
if (find >= 0) {
g_object_ref(cfg_custom_gui.group.liststore);
gtk_list_store_clear(cfg_custom_gui.group.liststore);
}
if (flag_update) {
temp_on_destroy_subwindow(self);
}
}
void entry_project_disk() {
void entry_project_disk(GtkWidget *self,int* flag_update) {
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);
gtk_list_store_clear(cfg_custom_gui.project.liststore);
}
if (flag_update) {
temp_on_destroy_subwindow(self);
}
}
void tree_view_select_user(GtkWidget* self) {
@ -203,6 +159,7 @@ int wrapper_select_tree_view(hotebook* widgets) {
if(gtk_tree_selection_get_selected(selection, &model, &iter)) {
char* str_iter = gtk_tree_model_get_string_from_iter(model, &iter);
index = atoi(str_iter);
index_selected = index;
return index;
}
else {
@ -254,14 +211,14 @@ void load_system_cfg() {
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();
entry_project_disk(0, 0);
}
void load_global_cfg() {
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();
entry_project_disk(0, 0);
}
void control_event(main_window* _config_main_gui, custom_window* _config_custom_gui) {
@ -405,7 +362,7 @@ int main(int argc, char *argv[]){
else {
load_system_cfg();
yon_ubl_status_box_render(TITLE_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
}
}
yon_ubl_setup_sockets(widgets->PlugBox,widgets->LeftBox,widgets->RightBox,main_config.socket_id,main_config.load_socket_id,main_config.save_socket_id);
yon_window_config_setup(GTK_WINDOW(widgets->Window));
yon_window_config_load(config_path);

@ -4,7 +4,6 @@
char *local;
int main(int argc, char *argv[]);
void fill_tree_view_u_g_p(custom_window* _config_gui,char* str_fill ,GtkListStore* list, config_all* all_config, int flag_gui_add);
void load_global_cfg();
void load_system_cfg();
void control_event(main_window* _config_main_gui, custom_window* _config_custom_gui);
@ -13,9 +12,9 @@ void wrapper_global_save();
void wrapper_system_save();
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);
void entry_user_disk();
void entry_groups_disk();
void entry_project_disk();
void entry_user_disk(GtkWidget *self,int* flag_update);
void entry_groups_disk(GtkWidget *self,int* flag_update);
void entry_project_disk(GtkWidget *self,int* flag_update);
void wrapper_add_user_show();
void wrapper_edit_user_show();
void wrapper_add_group_show();

@ -175,19 +175,5 @@ void load_free_vector(config_all* _all_config, vector* vec_config) {
}
char* wrapper_str_time(size_t seconds) {
me_time t;
if (seconds!=-1) {
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,
yon_char_from_int(t.minutes), MINUTES, NULL);
}
else {
t.str_time = yon_char_new("-");
}
return t.str_time;
}

@ -11,6 +11,6 @@ void load_pars_keys_p(config_u_g_p* _config, char* str_key, int index);
void load_pars_values(config_u_g_p* _config, char* str_value, int index);
void load_free_vector(config_all* _all_config,vector* vec_config);
void load_pars_values_status(disk_status* _config, char* key, char* value);
char* wrapper_str_time(size_t seconds);
#endif

@ -61,3 +61,99 @@ char* format_actors(vector* vec_actors) {
}
return str_all;
}
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) {
g_object_ref(widget->liststore);
gtk_list_store_clear(widget->liststore);
}
int flag_searhc = 0;
for (int i = 0; i < all_config->v_project.pfVectorTotal(&all_config->v_project); i++) {
config_u_g_p* _config = (config_u_g_p*)all_config->v_project.pfVectorGet(&all_config->v_project, i);
if (strcmp(_config->type_arr, str_fill) == 0) {
GtkTreeIter iter;
flag_searhc++;
gtk_list_store_append(widget->liststore,&iter);
char* deferring_size = wrapper_str_time(_config->deferring_size);
char* deferring_file = wrapper_str_time(_config->deferring_file);
gtk_list_store_set(widget->liststore,&iter,
0,fill_tree_view_id(_config->id),
1,format_actors(&_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->severe_limitation_size,_config->severe_limitation_size_pow),
6,yon_char_from_int(_config->soft_restriction_file),
7,_config->files,
8,yon_char_from_int(_config->severe_limitation_file),
9,deferring_size,
10,deferring_file,
-1);
}
}
if (flag_gui_add != 0) {
gtk_tree_view_set_model(GTK_TREE_VIEW(widget->spinWeeksFile), model);
}
return flag_searhc;
}
int fill_tree_view_user_group(config_all* all_config, char* disk, hotebook* widget,char* str_fill ,int flag_gui_add) {
GtkTreeModel *model = GTK_TREE_MODEL(widget->liststore);
if (flag_gui_add == 0) {
g_object_ref(widget->liststore);
gtk_list_store_clear(widget->liststore);
}
int flag_searhc = 0;
vector* vec_temp = NULL;
if (strcmp(str_fill, "usrquota")==0) {
vec_temp = &all_config->v_user;
}
else {
vec_temp = &all_config->v_group;
}
for (int i = 0; i < vec_temp->pfVectorTotal(vec_temp); i++) {
config_u_g_p* _config = (config_u_g_p*)vec_temp->pfVectorGet(vec_temp, i);
if (strcmp(_config->type_arr, str_fill) == 0 && strstr(_config->UNIX_file, disk)) {
GtkTreeIter iter;
flag_searhc++;
gtk_list_store_append(widget->liststore,&iter);
char* deferring_size = wrapper_str_time(_config->deferring_size);
char* deferring_file = wrapper_str_time(_config->deferring_file);
gtk_list_store_set(widget->liststore,&iter,
0,format_actors(&_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->severe_limitation_size,_config->severe_limitation_size_pow),
5,yon_char_from_int(_config->soft_restriction_file),
6,_config->files,
7,yon_char_from_int(_config->severe_limitation_file),
8,deferring_size,
9,deferring_file,
-1);
}
}
if (flag_gui_add != 0) {
gtk_tree_view_set_model(GTK_TREE_VIEW(widget->tree_view), model);
}
return flag_searhc;
}
char* wrapper_str_time(size_t seconds) {
me_time t;
if (seconds!=-1) {
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,
yon_char_from_int(t.minutes), MINUTES, NULL);
}
else {
t.str_time = yon_char_new("-");
}
return t.str_time;
}

@ -64,9 +64,11 @@ typedef struct{
int flag_load;
} config_gui;
char* wrapper_str_time(size_t seconds);
void model_null_str_writing(config_u_g_p* _config);
void model_clear_cfg(config_u_g_p* _config);
void model_array_size_memory();
char* format_actors(vector* vec_actors);
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

@ -189,7 +189,7 @@ main_window *setup_window(main_window* widgets, custom_window* custom_widgets){
}
int tree_view_edit(config_all* _all_config, vector* vec_temp, hotebook* widgets) {
int index = wrapper_select_tree_view(widgets);
if (index < 0) {
if (index >= 0) {
config_u_g_p* _config = (config_u_g_p*)vec_temp->pfVectorGet(vec_temp, index);
set_time_spin(widgets,_config->deferring_file, _config->deferring_size);
}

@ -5,9 +5,14 @@ char* flag_temp_u_g_p;
char* set_add_edit;
char* _glade_path = NULL;
vector* vec_temp = NULL;
config_all* _all_config_temp = NULL;
int table_index = 0;
void set_all_config(config_all* _all_config) {
_all_config_temp = _all_config;
}
temp_set_window *get_widget_temp() {
temp_set_window* get_widget_temp() {
return temp_widgets;
}
@ -15,6 +20,10 @@ void set_vector(vector* _vec_temp) {
vec_temp = _vec_temp;
}
void temp_set_index(int _index) {
table_index = _index;
}
temp_set_window *temp_setup_window_base(char* __glade_path) {
_glade_path = __glade_path;
if (temp_widgets == NULL) {
@ -139,7 +148,7 @@ void temp_event(temp_set_window* temp_widgets) {
g_signal_connect(G_OBJECT(temp_widgets->quotegroupSizeHardLimitCheck), "toggled", G_CALLBACK(event_toggled_all), NULL);
g_signal_connect(G_OBJECT(temp_widgets->quotegroupFilesSoftLimitCheck), "toggled", G_CALLBACK(event_toggled_all), NULL);
g_signal_connect(G_OBJECT(temp_widgets->quotegroupFilesHardLimitCheck), "toggled", G_CALLBACK(event_toggled_all), NULL);
g_signal_connect(G_OBJECT(temp_widgets->btnSaveTempSave),"clicked",G_CALLBACK(temp_on_destroy_subwindow),NULL);
@ -150,7 +159,18 @@ void temp_event(temp_set_window* temp_widgets) {
g_signal_connect(G_OBJECT(temp_widgets->btnOpenUserGroup),"clicked",G_CALLBACK(table_u_g_show),_glade_path);
}
}
void temp_on_destroy_subwindow(GtkWidget *self) {
if (self) {
if (strcmp(set_add_edit, "add")==0) {
get_add_gui_data_base(_all_config_temp);
}
else {
get_edit_gui_data_base(_all_config_temp, table_index);
}
gtk_widget_destroy(gtk_widget_get_toplevel(self));
temp_widgets = NULL;
}
}
void event_toggled_all() {
philos_set_active_widgets(temp_widgets->quotegroupSizeSoftLimitCheck,
temp_widgets->quotegroupSizeSoftLimitSpin,
@ -179,11 +199,7 @@ void temp_destroy(GtkWidget *self) {
temp_widgets = NULL;
}
void temp_on_destroy_subwindow(GtkWidget *self) {
gtk_widget_destroy(gtk_widget_get_toplevel(self));
temp_widgets = NULL;
}
void show_file_manger(temp_set_window* temp_widgets, GtkBuilder *builder) {
temp_widgets->wndChooseFileWallpaper = yon_gtk_builder_get_widget(builder,"wndChooseFileWallpaper");

@ -14,7 +14,8 @@
#include "view_check_user_table.h"
void temp_set_index(int _index);
temp_set_window* get_widget_temp();
temp_set_window *temp_setup_window_base(char* _glade_path);
void temp_on_destroy_subwindow(GtkWidget *self);
void temp_destroy(GtkWidget *self);
@ -29,6 +30,7 @@ void show_file_manger(temp_set_window* temp_widgets, GtkBuilder *builder);
temp_set_window *temp_setup_window_custom(temp_set_window* temp_widgets, GtkBuilder *builder);
void wrapper_show_file_manager();
void event_toggled_all();
void set_all_config(config_all* _all_config);
void set_widget_config(GtkWidget* check, GtkWidget* spin, GtkWidget* combo, size_t* value, int* mem_size);
void set_edit_gui_data_base(config_all* all_config, int index);
config_u_g_p* get_temp_gui_data_base(config_u_g_p* _config);

Binary file not shown.

@ -942,6 +942,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="active">0</property>
<property name="active-id">0</property>
<items>
<item translatable="yes">KB</item>
<item translatable="yes">MB</item>
@ -1027,6 +1029,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="active">0</property>
<property name="active-id">0</property>
<items>
<item translatable="yes">KB</item>
<item translatable="yes">MB</item>

Loading…
Cancel
Save