You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
587 lines
24 KiB
587 lines
24 KiB
#include "view_temp_u_g_p.h"
|
|
|
|
temp_set_window *temp_widgets = NULL;
|
|
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;
|
|
char* disk = NULL;
|
|
|
|
vector* temp_vec_actors;
|
|
|
|
void set_disk(char* _disk) {
|
|
disk = yon_char_new(_disk);
|
|
}
|
|
|
|
void set_all_config(config_all* _all_config) {
|
|
_all_config_temp = _all_config;
|
|
}
|
|
|
|
temp_set_window* get_widget_temp() {
|
|
return temp_widgets;
|
|
}
|
|
|
|
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) {
|
|
temp_widgets = malloc(sizeof(temp_set_window));
|
|
GtkBuilder *builder = gtk_builder_new_from_resource(_glade_path);
|
|
temp_widgets->Window = yon_gtk_builder_get_widget(builder,"QuotasEditWindow");
|
|
temp_widgets->btnSaveTempSave = yon_gtk_builder_get_widget(builder,"quotegroupSaveButton");
|
|
temp_widgets->btnTempCancel = yon_gtk_builder_get_widget(builder,"quotegroupCancelButton");
|
|
temp_setup_window_custom(temp_widgets, builder);
|
|
temp_init_windows();
|
|
temp_localization(temp_widgets);
|
|
temp_event(temp_widgets);
|
|
}
|
|
return temp_widgets;
|
|
}
|
|
|
|
temp_set_window *temp_setup_window_custom(temp_set_window* temp_widgets, GtkBuilder *builder) {
|
|
temp_vec_actors = malloc(sizeof(vector));
|
|
vector_init(temp_vec_actors);
|
|
table_u_g_get_actors(temp_vec_actors);
|
|
temp_widgets->lblSetUGP = yon_gtk_builder_get_widget(builder, "lblSetUGP");
|
|
temp_widgets->btnOpenUserGroup = yon_gtk_builder_get_widget(builder, "btnOpenUserGroup");
|
|
temp_widgets->btnReviewProject = yon_gtk_builder_get_widget(builder, "btnReviewProject");
|
|
temp_widgets->btnGenerateProject = yon_gtk_builder_get_widget(builder, "btnGenerateProject");
|
|
temp_widgets->lblSetUGPData = yon_gtk_builder_get_widget(builder, "lblSetUGPData");
|
|
temp_widgets->entryCatalogProject = yon_gtk_builder_get_widget(builder, "entryCatalogProject");
|
|
temp_widgets->chbAuto = yon_gtk_builder_get_widget(builder, "chbAuto");
|
|
temp_widgets->entryProjectName = yon_gtk_builder_get_widget(builder, "entryProjectName");
|
|
temp_widgets->boxProjectAddEdit = yon_gtk_builder_get_widget(builder, "boxProjectAddEdit");
|
|
temp_widgets->boxProject = yon_gtk_builder_get_widget(builder, "boxProject");
|
|
temp_widgets->boxProjectAddEditboxProjectId = yon_gtk_builder_get_widget(builder, "boxProjectAddEditboxProjectId");
|
|
temp_widgets->lblOpenUserGroup = yon_gtk_builder_get_widget(builder, "lblOpenUserGroup");
|
|
temp_widgets->lblHeadQuotasEditWindow = yon_gtk_builder_get_widget(builder, "lblHeadQuotasEditWindow");
|
|
|
|
temp_widgets->quotegroupSizeSoftLimitCheck = yon_gtk_builder_get_widget(builder, "quotegroupSizeSoftLimitCheck");
|
|
temp_widgets->quotegroupSizeSoftLimitSpin = yon_gtk_builder_get_widget(builder, "quotegroupSizeSoftLimitSpin");
|
|
temp_widgets->quotegroupSizeSoftLimitCombo = yon_gtk_builder_get_widget(builder, "quotegroupSizeSoftLimitCombo");
|
|
temp_widgets->quotegroupSizeHardLimitCheck = yon_gtk_builder_get_widget(builder, "quotegroupSizeHardLimitCheck");
|
|
temp_widgets->quotegroupSizeHardLimitSpin = yon_gtk_builder_get_widget(builder, "quotegroupSizeHardLimitSpin");
|
|
temp_widgets->quotegroupSizeHardLimitCombo = yon_gtk_builder_get_widget(builder, "quotegroupSizeHardLimitCombo");
|
|
temp_widgets->quotegroupFilesSoftLimitCheck = yon_gtk_builder_get_widget(builder, "quotegroupFilesSoftLimitCheck");
|
|
temp_widgets->quotegroupFilesSoftLimitSpin = yon_gtk_builder_get_widget(builder, "quotegroupFilesSoftLimitSpin");
|
|
temp_widgets->quotegroupFilesHardLimitCheck = yon_gtk_builder_get_widget(builder, "quotegroupFilesHardLimitCheck");
|
|
temp_widgets->quotegroupFilesHardLimitSpin = yon_gtk_builder_get_widget(builder, "quotegroupFilesHardLimitSpin");
|
|
temp_widgets->entryProjectId = yon_gtk_builder_get_widget(builder, "entryProjectId");
|
|
temp_widgets->lblSetNameDevice = yon_gtk_builder_get_widget(builder, "lblSetNameDevice");
|
|
temp_widgets->lblCatalogProjectEdit = yon_gtk_builder_get_widget(builder, "lblCatalogProjectEdit");
|
|
temp_widgets->lblProjectIdValueEdit = yon_gtk_builder_get_widget(builder, "lblProjectIdValueEdit");
|
|
temp_widgets->boxTempDevice = yon_gtk_builder_get_widget(builder, "boxTempDevice");
|
|
temp_widgets->entryUser = yon_gtk_builder_get_widget(builder,"entryUser");
|
|
table_u_g_set_flag(flag_temp_u_g_p,set_add_edit);
|
|
table_u_g_set_glade_path(_glade_path);
|
|
if (strcmp(flag_temp_u_g_p,"prjquota")==0) {
|
|
gtk_widget_hide(temp_widgets->lblSetUGP);
|
|
gtk_widget_hide(temp_widgets->lblSetUGPData);
|
|
gtk_widget_hide(temp_widgets->btnOpenUserGroup);
|
|
gtk_widget_hide(temp_widgets->boxTempDevice);
|
|
gtk_widget_hide(temp_widgets->entryUser);
|
|
if (strcmp(set_add_edit, "add")==0) {
|
|
gtk_widget_hide(temp_widgets->lblCatalogProjectEdit);
|
|
gtk_widget_hide(temp_widgets->lblProjectIdValueEdit);
|
|
gtk_label_set_label(GTK_LABEL(temp_widgets->lblHeadQuotasEditWindow), _("Settings disk quotas - Addition"));
|
|
}
|
|
else {
|
|
gtk_widget_hide(temp_widgets->btnReviewProject);
|
|
gtk_widget_hide(temp_widgets->entryCatalogProject);
|
|
gtk_widget_hide(temp_widgets->chbAuto);
|
|
gtk_widget_hide(temp_widgets->entryProjectId);
|
|
gtk_widget_hide(temp_widgets->btnGenerateProject);
|
|
gtk_label_set_label(GTK_LABEL(temp_widgets->lblHeadQuotasEditWindow), _("Settings disk quotas - Editing"));
|
|
}
|
|
}
|
|
else {
|
|
gtk_widget_hide(temp_widgets->boxProjectAddEditboxProjectId);
|
|
if (strcmp(flag_temp_u_g_p, "usrquota")==0) {
|
|
gtk_label_set_label(GTK_LABEL(temp_widgets->lblOpenUserGroup), _("Users"));
|
|
gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetUGP), yon_char_unite(_("Users"),":",NULL));
|
|
}
|
|
else if (strcmp(flag_temp_u_g_p, "grpquota")==0) {
|
|
gtk_label_set_label(GTK_LABEL(temp_widgets->lblOpenUserGroup), _("Groups"));
|
|
gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetUGP), yon_char_unite(_("Groups"),":",NULL));
|
|
|
|
}
|
|
if (strcmp(set_add_edit, "add")==0) {
|
|
gtk_widget_hide(temp_widgets->boxProject);
|
|
gtk_widget_hide(temp_widgets->boxProjectAddEdit);
|
|
gtk_widget_hide(temp_widgets->lblSetUGPData);
|
|
gtk_label_set_label(GTK_LABEL(temp_widgets->lblHeadQuotasEditWindow), _("Settings disk quotas - Addition"));
|
|
|
|
}
|
|
else {
|
|
gtk_widget_hide(temp_widgets->boxProject);
|
|
gtk_widget_hide(temp_widgets->boxProjectAddEdit);
|
|
gtk_widget_hide(temp_widgets->btnOpenUserGroup);
|
|
gtk_widget_hide(temp_widgets->entryUser);
|
|
gtk_label_set_label(GTK_LABEL(temp_widgets->lblHeadQuotasEditWindow), _("Settings disk quotas - Editing"));
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
void set_temp_menu(char* _flag_temp_u_g_p, char* _set_add_edit) {
|
|
flag_temp_u_g_p = _flag_temp_u_g_p;
|
|
set_add_edit = _set_add_edit;
|
|
}
|
|
|
|
void temp_show(GtkWidget *self, char* _glade_path) {
|
|
if (temp_widgets != NULL) {
|
|
gtk_widget_show(temp_widgets->Window);
|
|
set_activ_project_id();
|
|
temp_init_windows();
|
|
event_toggled_all();
|
|
block_btn_save();
|
|
}
|
|
else {
|
|
temp_setup_window_base(_glade_path);
|
|
gtk_widget_show(temp_widgets->Window);
|
|
set_activ_project_id();
|
|
event_toggled_all();
|
|
block_btn_save();
|
|
}
|
|
}
|
|
|
|
void temp_localization(temp_set_window* temp_widgets) {
|
|
|
|
}
|
|
|
|
void temp_init_windows() {
|
|
}
|
|
|
|
void wrapper_table_u_g_show() {
|
|
table_u_g_get_actors(temp_vec_actors);
|
|
table_u_g_show(NULL, _glade_path);
|
|
}
|
|
|
|
void temp_event(temp_set_window* temp_widgets) {
|
|
g_signal_connect(G_OBJECT(temp_widgets->btnTempCancel),"clicked",G_CALLBACK(temp_destroy),temp_widgets->Window);
|
|
g_signal_connect(G_OBJECT(temp_widgets->Window), "destroy", G_CALLBACK(temp_destroy), temp_widgets->Window);
|
|
g_signal_connect(G_OBJECT(temp_widgets->quotegroupSizeSoftLimitCheck), "toggled", G_CALLBACK(event_toggled_all), NULL);
|
|
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->quotegroupSizeSoftLimitSpin), "changed", G_CALLBACK(block_btn_save), NULL);
|
|
g_signal_connect(G_OBJECT(temp_widgets->quotegroupSizeHardLimitSpin), "changed", G_CALLBACK(block_btn_save), NULL);
|
|
g_signal_connect(G_OBJECT(temp_widgets->quotegroupFilesSoftLimitSpin), "changed", G_CALLBACK(block_btn_save), NULL);
|
|
g_signal_connect(G_OBJECT(temp_widgets->quotegroupFilesHardLimitSpin), "changed", G_CALLBACK(block_btn_save), NULL);
|
|
g_signal_connect(G_OBJECT(temp_widgets->quotegroupSizeSoftLimitCombo), "changed", G_CALLBACK(block_btn_save), NULL);
|
|
g_signal_connect(G_OBJECT(temp_widgets->quotegroupSizeHardLimitCombo), "changed", G_CALLBACK(block_btn_save), NULL);
|
|
|
|
if (strstr(flag_temp_u_g_p,"prjquota")) {
|
|
g_signal_connect(G_OBJECT(temp_widgets->btnReviewProject),"clicked",G_CALLBACK(wrapper_show_file_manager),NULL);
|
|
g_signal_connect(G_OBJECT(temp_widgets->btnGenerateProject),"clicked",G_CALLBACK(generate_id),NULL);
|
|
g_signal_connect(G_OBJECT(temp_widgets->chbAuto),"toggled",G_CALLBACK(set_activ_project_id),NULL);
|
|
g_signal_connect(G_OBJECT(temp_widgets->entryCatalogProject), "changed", G_CALLBACK(block_btn_save), NULL);
|
|
g_signal_connect(G_OBJECT(temp_widgets->entryProjectId), "changed", G_CALLBACK(block_btn_save), NULL);
|
|
g_signal_connect(G_OBJECT(temp_widgets->entryProjectName), "changed", G_CALLBACK(block_btn_save), NULL);
|
|
}
|
|
else {
|
|
g_signal_connect(G_OBJECT(temp_widgets->btnOpenUserGroup),"clicked",G_CALLBACK(wrapper_table_u_g_show),NULL);
|
|
}
|
|
}
|
|
|
|
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,
|
|
temp_widgets->quotegroupSizeSoftLimitCombo);
|
|
philos_set_active_widgets(temp_widgets->quotegroupSizeHardLimitCheck,
|
|
temp_widgets->quotegroupSizeHardLimitSpin,
|
|
temp_widgets->quotegroupSizeHardLimitCombo
|
|
);
|
|
philos_set_active_widgets(temp_widgets->quotegroupFilesSoftLimitCheck,
|
|
temp_widgets->quotegroupFilesSoftLimitSpin,
|
|
NULL
|
|
);
|
|
philos_set_active_widgets(temp_widgets->quotegroupFilesHardLimitCheck,
|
|
temp_widgets->quotegroupFilesHardLimitSpin,
|
|
NULL);
|
|
block_btn_save();
|
|
}
|
|
|
|
void block_btn_save() {
|
|
if (wrapper_check_save()) {
|
|
gtk_widget_set_sensitive(temp_widgets->btnSaveTempSave, 1);
|
|
}
|
|
else {
|
|
gtk_widget_set_sensitive(temp_widgets->btnSaveTempSave, 0);
|
|
}
|
|
}
|
|
|
|
void wrapper_show_file_manager() {
|
|
GtkBuilder *builder = gtk_builder_new_from_resource(_glade_path);
|
|
show_file_manger(temp_widgets, builder);
|
|
gtk_widget_show(temp_widgets->wndChooseFileWallpaper);
|
|
gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(temp_widgets->wndChooseFileWallpaper),"/home/");
|
|
}
|
|
|
|
void temp_destroy(GtkWidget *self) {
|
|
if (self) {
|
|
gtk_widget_destroy(gtk_widget_get_toplevel(self));
|
|
model_free_vector_string(temp_vec_actors);
|
|
vectorFree(temp_vec_actors);
|
|
temp_vec_actors = NULL;
|
|
temp_widgets = NULL;
|
|
temp_vec_actors = NULL;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void show_file_manger(temp_set_window* temp_widgets, GtkBuilder *builder) {
|
|
temp_widgets->wndChooseFileWallpaper = yon_gtk_builder_get_widget(builder,"wndChooseFileWallpaper");
|
|
temp_widgets->btnFilemangerOk = yon_gtk_builder_get_widget(builder,"btnFilemangerOk");
|
|
temp_widgets->btnFilemangerExit = yon_gtk_builder_get_widget(builder,"btnFilemangerExit");
|
|
|
|
g_signal_connect(G_OBJECT(temp_widgets->btnFilemangerOk),"clicked",G_CALLBACK(btn_ok_file_manager), NULL);
|
|
g_signal_connect(G_OBJECT(temp_widgets->btnFilemangerExit),"clicked",G_CALLBACK(destroy_file_manager), NULL);
|
|
}
|
|
|
|
void destroy_file_manager(GtkWidget *self) {
|
|
gtk_widget_destroy(gtk_widget_get_toplevel(self));
|
|
temp_widgets->wndChooseFileWallpaper = NULL;
|
|
temp_widgets->btnFilemangerOk = NULL;
|
|
temp_widgets->btnFilemangerExit = NULL;
|
|
block_btn_save();
|
|
}
|
|
|
|
void btn_ok_file_manager(GtkWidget *self) {
|
|
char* path_project = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(temp_widgets->wndChooseFileWallpaper));
|
|
gtk_entry_set_text(GTK_ENTRY(temp_widgets->entryCatalogProject), path_project);
|
|
destroy_file_manager(self);
|
|
|
|
}
|
|
|
|
|
|
void set_edit_gui_data_base(config_all* all_config, int index) {
|
|
config_u_g_p* _config = (config_u_g_p*)vec_temp->pfVectorGet(vec_temp, index);
|
|
|
|
if (_config && index >= 0) {
|
|
set_widget(temp_widgets->quotegroupSizeSoftLimitCheck,
|
|
temp_widgets->quotegroupSizeSoftLimitSpin,
|
|
temp_widgets->quotegroupSizeSoftLimitCombo,
|
|
_config->soft_restriction_size,
|
|
_config->soft_restriction_size_pow
|
|
);
|
|
set_widget(temp_widgets->quotegroupSizeHardLimitCheck,
|
|
temp_widgets->quotegroupSizeHardLimitSpin,
|
|
temp_widgets->quotegroupSizeHardLimitCombo,
|
|
_config->severe_limitation_size,
|
|
_config->severe_limitation_size_pow
|
|
);
|
|
set_widget(temp_widgets->quotegroupFilesSoftLimitCheck,
|
|
temp_widgets->quotegroupFilesSoftLimitSpin,
|
|
NULL,
|
|
_config->soft_restriction_file,
|
|
0
|
|
);
|
|
set_widget(temp_widgets->quotegroupFilesHardLimitCheck,
|
|
temp_widgets->quotegroupFilesHardLimitSpin,
|
|
NULL,
|
|
_config->severe_limitation_file,
|
|
0
|
|
);
|
|
if (strstr(flag_temp_u_g_p,"prjquota")) {
|
|
if (strstr(set_add_edit, "add")) {
|
|
}
|
|
else {
|
|
char* id = fill_tree_view_id(_config->id);
|
|
char* actors = format_actors(&_config->actors);
|
|
gtk_label_set_label(GTK_LABEL(temp_widgets->lblProjectIdValueEdit), id);
|
|
gtk_label_set_label(GTK_LABEL(temp_widgets->lblCatalogProjectEdit), _config->UNIX_file);
|
|
if (strcmp(actors,"-")!=0) {
|
|
gtk_entry_set_text(GTK_ENTRY(temp_widgets->entryProjectName), actors);
|
|
}
|
|
|
|
}
|
|
}
|
|
else {
|
|
gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetNameDevice), disk);
|
|
if (strcmp(set_add_edit, "add")==0) {
|
|
//table_u_g_get_actors(&temp_vec_actors);
|
|
}
|
|
else {
|
|
gtk_label_set_label(GTK_LABEL(temp_widgets->lblSetUGPData), format_actors(&_config->actors));
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
void set_widget(GtkWidget* check, GtkWidget* spin, GtkWidget* combo, int value_spin, int pow_mem_size) {
|
|
if (value_spin>0) {
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check),1);
|
|
gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), value_spin);
|
|
if (combo) {
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(combo), pow_mem_size);
|
|
}
|
|
}
|
|
else {
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check),0);
|
|
gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), 0);
|
|
if (combo) {
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(combo), 0);
|
|
}
|
|
}
|
|
|
|
}
|
|
void get_edit_gui_data_base(config_all* all_config, int index) {
|
|
config_u_g_p* _config = (config_u_g_p*)vec_temp->pfVectorGet(vec_temp, index);
|
|
if (_config && index >= 0) {
|
|
get_temp_gui_data_base(_config);
|
|
vec_temp->pfVectorSet(vec_temp, index, _config);
|
|
}
|
|
|
|
}
|
|
void get_add_gui_data_base(config_all* all_config) {
|
|
config_u_g_p* _config = malloc(sizeof(config_u_g_p));
|
|
model_null_str_writing(_config);
|
|
get_temp_gui_data_base(_config);
|
|
if (temp_vec_actors->vectorList.total != 0) {
|
|
_config->actors.pfVectorCopy(&_config->actors, temp_vec_actors);
|
|
|
|
|
|
}
|
|
vec_temp->pfVectorAdd(vec_temp, _config);
|
|
|
|
|
|
}
|
|
|
|
void save(GtkWidget *self) {
|
|
if (strcmp(set_add_edit, "add")==0) {
|
|
temp_vec_actors = get_actors_table(temp_vec_actors);
|
|
gtk_entry_set_text(GTK_ENTRY(temp_widgets->entryUser), format_actors(temp_vec_actors));
|
|
table_u_g_on_hide_subwindow(self);
|
|
block_btn_save();
|
|
}
|
|
else {
|
|
// get_actors_table(_actors);
|
|
table_u_g_on_hide_subwindow(self);
|
|
block_btn_save();
|
|
|
|
}
|
|
}
|
|
|
|
int check_save() {
|
|
gboolean active1 = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(temp_widgets->quotegroupSizeSoftLimitCheck));
|
|
gboolean active2 = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(temp_widgets->quotegroupSizeHardLimitCheck));
|
|
gboolean active3 = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(temp_widgets->quotegroupFilesSoftLimitCheck));
|
|
gboolean active4 = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(temp_widgets->quotegroupFilesHardLimitCheck));
|
|
|
|
char* value1 = (char*)gtk_entry_get_text(GTK_ENTRY(temp_widgets->quotegroupSizeSoftLimitSpin));
|
|
char* value2 = (char*)gtk_entry_get_text(GTK_ENTRY(temp_widgets->quotegroupSizeHardLimitSpin));
|
|
char* value3 = (char*)gtk_entry_get_text(GTK_ENTRY(temp_widgets->quotegroupFilesSoftLimitSpin));
|
|
char* value4 = (char*)gtk_entry_get_text(GTK_ENTRY(temp_widgets->quotegroupFilesHardLimitSpin));
|
|
if (!active1 && !active2 && !active3 && !active4) {
|
|
return 0;
|
|
}
|
|
if (((!strcmp(value1, "0") || !strcmp(value1, "")) && active1)
|
|
|| ((!strcmp(value2, "0") || !strcmp(value2, "")) && active2)
|
|
|| ((!strcmp(value3, "0") || !strcmp(value3, "")) && active3)
|
|
|| ((!strcmp(value4, "0") || !strcmp(value4, "")) && active4)) {
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
int check_save_project() {
|
|
gboolean active1 = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(temp_widgets->chbAuto));
|
|
char* project_name = (char*)gtk_entry_get_text(GTK_ENTRY(temp_widgets->entryProjectName));
|
|
if (strcmp(set_add_edit, "add")==0) {
|
|
char* file_dir = (char*)gtk_entry_get_text(GTK_ENTRY(temp_widgets->entryCatalogProject));
|
|
char* project_id = (char*)gtk_entry_get_text(GTK_ENTRY(temp_widgets->entryProjectId));
|
|
if (!strlen(file_dir) && (!strlen(project_id) && !active1) && !strlen(project_name)) {
|
|
return 0;
|
|
}
|
|
else if (!strlen(project_id) && !active1) {
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
else {
|
|
if (strlen(project_name)<=1) {
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
int wrapper_check_save() {
|
|
if (strstr(flag_temp_u_g_p,"prjquota")) {
|
|
int flag_save_project = check_save_project();
|
|
int flag_save = check_save();
|
|
if (flag_save_project && flag_save) {
|
|
return 1;
|
|
}
|
|
return 0;
|
|
}
|
|
else {
|
|
if (strcmp(set_add_edit, "add")==0 && temp_vec_actors->vectorList.total != 0) {
|
|
if (check_save()) {
|
|
return 1;
|
|
}
|
|
return 0;
|
|
}
|
|
else {
|
|
if (check_save()) {
|
|
return 1;
|
|
}
|
|
return 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
void table_u_g_event() {
|
|
g_signal_connect(G_OBJECT(get_widget_table_u_g()->checkColUserGroup),"toggled",G_CALLBACK(chk_toggled_user_group),NULL);
|
|
g_signal_connect(G_OBJECT(get_widget_table_u_g()->btnCancel), "clicked",G_CALLBACK(table_u_g_on_hide_subwindow),NULL);
|
|
g_signal_connect(G_OBJECT(get_widget_table_u_g()->btnSave), "clicked",G_CALLBACK(save),NULL);
|
|
g_signal_connect(G_OBJECT(get_widget_table_u_g()->Window), "destroy", G_CALLBACK(table_u_g_destroy), NULL);
|
|
}
|
|
|
|
config_u_g_p* get_temp_gui_data_base(config_u_g_p* _config) {
|
|
set_widget_config(temp_widgets->quotegroupSizeSoftLimitCheck,
|
|
temp_widgets->quotegroupSizeSoftLimitSpin,
|
|
temp_widgets->quotegroupSizeSoftLimitCombo,
|
|
&_config->soft_restriction_size,
|
|
&_config->soft_restriction_size_pow
|
|
);
|
|
set_widget_config(temp_widgets->quotegroupSizeHardLimitCheck,
|
|
temp_widgets->quotegroupSizeHardLimitSpin,
|
|
temp_widgets->quotegroupSizeHardLimitCombo,
|
|
&_config->severe_limitation_size,
|
|
&_config->severe_limitation_size_pow
|
|
);
|
|
set_widget_config(temp_widgets->quotegroupFilesSoftLimitCheck,
|
|
temp_widgets->quotegroupFilesSoftLimitSpin,
|
|
NULL,
|
|
&_config->soft_restriction_file,
|
|
NULL
|
|
);
|
|
set_widget_config(temp_widgets->quotegroupFilesHardLimitCheck,
|
|
temp_widgets->quotegroupFilesHardLimitSpin,
|
|
NULL,
|
|
&_config->severe_limitation_file,
|
|
NULL
|
|
);
|
|
|
|
// _config->status_set= 0;
|
|
if (strstr(flag_temp_u_g_p,"prjquota")) {
|
|
char* actors = (char*)gtk_entry_get_text(GTK_ENTRY(temp_widgets->entryProjectName));
|
|
if (strlen(actors)>1) {
|
|
if (_config->actors.vectorList.total > 0) {
|
|
_config->actors.pfVectorSet(&_config->actors,0, yon_char_new(actors));
|
|
}
|
|
else {
|
|
_config->actors.pfVectorAdd(&_config->actors, yon_char_new(actors));
|
|
}
|
|
|
|
}
|
|
gboolean active = active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(temp_widgets->chbAuto));
|
|
if (active) {
|
|
_config->id = -1;
|
|
}
|
|
else {
|
|
char* id = (char*)gtk_entry_get_text(GTK_ENTRY(temp_widgets->entryProjectId));
|
|
if (strlen(id)) {
|
|
_config->id = atoi(id);
|
|
}
|
|
else {
|
|
_config->id = -1;
|
|
}
|
|
|
|
}
|
|
if (strcmp(set_add_edit, "add")==0) {
|
|
char* file_dir = (char*)gtk_entry_get_text(GTK_ENTRY(temp_widgets->entryCatalogProject));
|
|
_config->UNIX_file = yon_char_new(file_dir);
|
|
_config->type_arr = yon_char_new(flag_temp_u_g_p);
|
|
}
|
|
}
|
|
else {
|
|
if (strcmp(set_add_edit, "add")==0) {
|
|
table_u_g_get_actors(&_config->actors);
|
|
_config->UNIX_file = yon_char_new(disk);
|
|
_config->type_arr = yon_char_new(flag_temp_u_g_p);
|
|
}
|
|
}
|
|
return _config;
|
|
}
|
|
|
|
|
|
|
|
void set_widget_config(GtkWidget* check, GtkWidget* spin, GtkWidget* combo, size_t* value, int* mem_size) {
|
|
gboolean active = active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(check));
|
|
if (active) {
|
|
(*value) = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spin));
|
|
if (combo) {
|
|
if ((*value) != 0) {
|
|
(*mem_size) = gtk_combo_box_get_active(GTK_COMBO_BOX(combo));
|
|
}
|
|
else {
|
|
(*mem_size) = -3;
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
(*value) = 0;
|
|
if (combo) {
|
|
(*mem_size) = -3;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
void generate_id() {
|
|
int max_id = -1;
|
|
if (vec_temp->vectorList.total> 0) {
|
|
for (int index = 0; index < vec_temp->vectorList.total; index++) {
|
|
config_u_g_p* _config = (config_u_g_p*)vec_temp->pfVectorGet(vec_temp, index);
|
|
if (_config->id > max_id) {
|
|
max_id = _config->id;
|
|
}
|
|
}
|
|
}
|
|
max_id++;
|
|
gtk_entry_set_text(GTK_ENTRY(temp_widgets->entryProjectId), yon_char_from_int(max_id));
|
|
|
|
}
|
|
|
|
void set_activ_project_id() {
|
|
gboolean active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(temp_widgets->chbAuto));
|
|
if (active) {
|
|
gtk_entry_set_text(GTK_ENTRY(temp_widgets->entryProjectId), "");
|
|
}
|
|
gtk_widget_set_sensitive(temp_widgets->entryProjectId, !active);
|
|
gtk_widget_set_sensitive(temp_widgets->btnGenerateProject, !active);
|
|
block_btn_save();
|
|
}
|
|
|