|
|
|
@ -1,7 +1,12 @@
|
|
|
|
|
#include "view_filters.h"
|
|
|
|
|
char* flag_filters_u_g_p = NULL;
|
|
|
|
|
filters_window *filters_widgets = NULL;
|
|
|
|
|
gboolean flag_filters[10];
|
|
|
|
|
GtkTreeView* _tree_view = NULL;
|
|
|
|
|
const int len_user_group = 10;
|
|
|
|
|
const int len_project = 11;
|
|
|
|
|
gboolean flag_filters_user[10];
|
|
|
|
|
gboolean flag_filters_group[10];
|
|
|
|
|
gboolean flag_filters_project[11];
|
|
|
|
|
filters_window *filters_setup_window(char* glade_path){
|
|
|
|
|
if (filters_widgets == NULL) {
|
|
|
|
|
filters_widgets = malloc(sizeof(filters_window));
|
|
|
|
@ -20,7 +25,7 @@ filters_window *filters_setup_window(char* glade_path){
|
|
|
|
|
filters_widgets->chbFilterHardLimitFile = yon_gtk_builder_get_widget(builder,"chbFilterHardLimitFile");
|
|
|
|
|
filters_widgets->chbFilterHardLimitFileDelay = yon_gtk_builder_get_widget(builder,"chbFilterHardLimitFileDelay");
|
|
|
|
|
filters_widgets->chbProjectName = yon_gtk_builder_get_widget(builder,"chbProjectName");
|
|
|
|
|
if (strcmp(flag_filters_u_g_p,"project")==0) {
|
|
|
|
|
if (strcmp(flag_filters_u_g_p, "prjquota")==0) {
|
|
|
|
|
gtk_button_set_label(GTK_BUTTON(filters_widgets->chbFilterName), _("ID"));
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
@ -29,16 +34,95 @@ filters_window *filters_setup_window(char* glade_path){
|
|
|
|
|
|
|
|
|
|
filters_event(filters_widgets);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
filters_set_flag();
|
|
|
|
|
return filters_widgets;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
gboolean* filters_get_flag_user() {
|
|
|
|
|
flag_filters_user[0] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterName));
|
|
|
|
|
flag_filters_user[1] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterQuotas));
|
|
|
|
|
flag_filters_user[2] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterSize));
|
|
|
|
|
flag_filters_user[3] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterSoftLimitSize));
|
|
|
|
|
flag_filters_user[4] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitSize));
|
|
|
|
|
flag_filters_user[5] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterSoftLimitFile));
|
|
|
|
|
flag_filters_user[6] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterFiles));
|
|
|
|
|
flag_filters_user[7] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitFile));
|
|
|
|
|
flag_filters_user[8] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitSizeDelay));
|
|
|
|
|
flag_filters_user[9] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitFileDelay));
|
|
|
|
|
return flag_filters_user;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gboolean* filters_get_flag_group() {
|
|
|
|
|
flag_filters_group[0] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterName));
|
|
|
|
|
flag_filters_group[1] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterQuotas));
|
|
|
|
|
flag_filters_group[2] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterSize));
|
|
|
|
|
flag_filters_group[3] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterSoftLimitSize));
|
|
|
|
|
flag_filters_group[4] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitSize));
|
|
|
|
|
flag_filters_group[5] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterSoftLimitFile));
|
|
|
|
|
flag_filters_group[6] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterFiles));
|
|
|
|
|
flag_filters_group[7] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitFile));
|
|
|
|
|
flag_filters_group[8] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitSizeDelay));
|
|
|
|
|
flag_filters_group[9] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitFileDelay));
|
|
|
|
|
return flag_filters_group;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gboolean* filters_get_flag_project() {
|
|
|
|
|
flag_filters_project[0] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterName));
|
|
|
|
|
flag_filters_project[1] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterQuotas));
|
|
|
|
|
flag_filters_project[2] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterSize));
|
|
|
|
|
flag_filters_project[3] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterSoftLimitSize));
|
|
|
|
|
flag_filters_project[4] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitSize));
|
|
|
|
|
flag_filters_project[5] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterSoftLimitFile));
|
|
|
|
|
flag_filters_project[6] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterFiles));
|
|
|
|
|
flag_filters_project[7] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitFile));
|
|
|
|
|
flag_filters_project[8] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitSizeDelay));
|
|
|
|
|
flag_filters_project[9] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitFileDelay));
|
|
|
|
|
flag_filters_project[10] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbProjectName));
|
|
|
|
|
return flag_filters_project;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void filters_set_name(char* _flag_filters_u_g_p) {
|
|
|
|
|
flag_filters_u_g_p = _flag_filters_u_g_p;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void filters_get_tree_view(GtkWidget *tree_view) {
|
|
|
|
|
_tree_view = GTK_TREE_VIEW(tree_view);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void filters_tree_view_update() {
|
|
|
|
|
int n_end = len_user_group;
|
|
|
|
|
gboolean* array_flags = NULL;
|
|
|
|
|
if (strcmp(flag_filters_u_g_p, "prjquota")==0) {
|
|
|
|
|
n_end = len_project;
|
|
|
|
|
array_flags = filters_get_flag_project();
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
n_end = len_user_group;
|
|
|
|
|
if (strcmp(flag_filters_u_g_p, "usrquota")==0) {
|
|
|
|
|
array_flags = filters_get_flag_user();
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
array_flags = filters_get_flag_group();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
for (int i = 0; i < n_end; i++) {
|
|
|
|
|
GtkTreeViewColumn* column = gtk_tree_view_get_column(_tree_view, i);
|
|
|
|
|
gtk_tree_view_column_set_visible(column, array_flags[i]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
void filters_save(GtkWidget *self) {
|
|
|
|
|
filters_tree_view_update();
|
|
|
|
|
filters_on_hide_subwindow(self);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void filters_event(filters_window *widgets) {
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->btnFiltersCancel), "clicked",G_CALLBACK(filters_on_hide_subwindow),NULL);
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->btnFiltersSave), "clicked",G_CALLBACK(filters_save),widgets->Window);
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->btnFiltersCancel), "clicked",G_CALLBACK(filters_on_hide_subwindow),widgets->Window);
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->Window), "destroy", G_CALLBACK(filters_destroy), NULL);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -69,51 +153,41 @@ void filters_show(GtkWidget *self, char* glade_path) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
gboolean* filters_get_flag() {
|
|
|
|
|
flag_filters[0] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterName));
|
|
|
|
|
flag_filters[1] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterSoftLimitFile));
|
|
|
|
|
flag_filters[2] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterFiles));
|
|
|
|
|
flag_filters[3] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitSizeDelay));
|
|
|
|
|
flag_filters[4] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitSize));
|
|
|
|
|
flag_filters[5] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterQuotas));
|
|
|
|
|
flag_filters[6] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterSoftLimitSize));
|
|
|
|
|
flag_filters[7] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterSize));
|
|
|
|
|
flag_filters[8] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitFile));
|
|
|
|
|
flag_filters[9] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitFileDelay));
|
|
|
|
|
if (strcmp(flag_filters_u_g_p,"project")==0) {
|
|
|
|
|
flag_filters[10] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbProjectName));
|
|
|
|
|
}
|
|
|
|
|
return flag_filters;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void filters_init_flag() {
|
|
|
|
|
flag_filters[0] = 1;
|
|
|
|
|
flag_filters[1] = 1;
|
|
|
|
|
flag_filters[2] = 1;
|
|
|
|
|
flag_filters[3] = 1;
|
|
|
|
|
flag_filters[4] = 1;
|
|
|
|
|
flag_filters[5] = 1;
|
|
|
|
|
flag_filters[6] = 1;
|
|
|
|
|
flag_filters[7] = 1;
|
|
|
|
|
flag_filters[8] = 1;
|
|
|
|
|
flag_filters[9] = 1;
|
|
|
|
|
if (strcmp(flag_filters_u_g_p,"project")==0) {
|
|
|
|
|
flag_filters[10] = 1;
|
|
|
|
|
for (int i=0; i<len_user_group;i++) {
|
|
|
|
|
flag_filters_user[i] = 1;
|
|
|
|
|
flag_filters_group[i] = 1;
|
|
|
|
|
flag_filters_project[i] = 1;
|
|
|
|
|
}
|
|
|
|
|
flag_filters_project[10] = 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void filters_set_flag() {
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterName),flag_filters[0] );
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterSoftLimitFile), flag_filters[1]);
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterFiles), flag_filters[2]);
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitSizeDelay), flag_filters[3]);
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitSize), flag_filters[4]);
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterQuotas), flag_filters[5]);
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterSoftLimitSize), flag_filters[6]);
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterSize), flag_filters[7]);
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitFile), flag_filters[8]);
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitFileDelay), flag_filters[9]);
|
|
|
|
|
if (strcmp(flag_filters_u_g_p,"project")==0) {
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbProjectName), flag_filters[10]);
|
|
|
|
|
gboolean* array_flags = NULL;
|
|
|
|
|
if (strcmp(flag_filters_u_g_p, "prjquota")==0) {
|
|
|
|
|
array_flags = flag_filters_project;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
if (strcmp(flag_filters_u_g_p, "usrquota")==0) {
|
|
|
|
|
array_flags = flag_filters_user;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
array_flags = flag_filters_group;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterName),array_flags[0] );
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterQuotas), array_flags[1]);
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterSize), array_flags[2]);
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterSoftLimitSize), array_flags[3]);
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitSize), array_flags[4]);
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterSoftLimitFile), array_flags[5]);
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterFiles), array_flags[6]);
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitFile), array_flags[7]);
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitSizeDelay), array_flags[8]);
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitFileDelay), array_flags[9]);
|
|
|
|
|
if (strcmp(flag_filters_u_g_p,"prjquota")==0) {
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbProjectName), array_flags[10]);
|
|
|
|
|
}
|
|
|
|
|
}
|