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.
ubl-settings-diskquota/source/view_temp_u_g_p.c

369 lines
16 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;
temp_set_window *get_widget_temp() {
return temp_widgets;
}
void set_vector(vector* _vec_temp) {
vec_temp = _vec_temp;
}
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_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->btnGenerateProject = yon_gtk_builder_get_widget(builder, "btnGenerateProject");
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");
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) {
gtk_widget_hide(temp_widgets->lblSetUGP);
gtk_widget_hide(temp_widgets->lblSetUGPData);
gtk_widget_hide(temp_widgets->btnOpenUserGroup);
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, "user")==0) {
gtk_label_set_label(GTK_LABEL(temp_widgets->lblOpenUserGroup), _("Users"));
}
else if (strcmp(flag_temp_u_g_p, "group")==0) {
gtk_label_set_label(GTK_LABEL(temp_widgets->lblOpenUserGroup), _("Groups"));
}
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_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);
temp_init_windows();
event_toggled_all();
}
else {
temp_setup_window_base(_glade_path);
gtk_widget_show(temp_widgets->Window);
event_toggled_all();
}
}
void temp_localization(temp_set_window* temp_widgets) {
}
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->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->btnSaveTempSave),"clicked",G_CALLBACK(temp_on_destroy_subwindow),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 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);
}
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) {
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");
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;
}
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 (strcmp(flag_temp_u_g_p,"project") == 0) {
if (strcmp(set_add_edit, "add")==0) {
}
else {
gtk_entry_set_text(GTK_ENTRY(temp_widgets->entryProjectId), fill_tree_view_id(_config->id));
gtk_label_set_label(GTK_LABEL(temp_widgets->lblCatalogProjectEdit), _config->UNIX_file);
gtk_label_set_label(GTK_LABEL(temp_widgets->lblProjectIdValueEdit), format_actors(&_config->actors));
}
}
else {
}
}
}
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 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) {
_config = 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));
if (_config) {
_config = get_temp_gui_data_base(_config);
vec_temp->pfVectorAdd(vec_temp, _config);
}
}
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
);
if (strcmp(flag_temp_u_g_p,"project") == 0) {
}
else {
}
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;
}
}
}