Сделал фильтры для все окон

pull/24/head
Igor Belitskiy 2 years ago
parent 9fb0e73b34
commit 2df3a1064f

@ -4,18 +4,20 @@ main_window cfg_main_gui;
custom_window cfg_custom_gui;
config_settings_gui main_config;
config_all all_config;
int index_selected = 0;
int index_selected = -1;
void wrapper_filters_user_show() {
filters_get_tree_view(cfg_custom_gui.user.tree_view);
filters_set_name("usrquota");
filters_show(NULL, glade_path);
}
void wrapper_filters_group_show() {
filters_get_tree_view(cfg_custom_gui.group.tree_view);
filters_set_name("grpquota");
filters_show(NULL, glade_path);
}
void wrapper_filters_project_show() {
filters_get_tree_view(cfg_custom_gui.project.tree_view);
filters_set_name("prjquota");
filters_show(NULL, glade_path);
}
@ -122,7 +124,26 @@ void unlock_tree_view(hotebook* widgets,void (*f)()) {
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->tree_view), G_CALLBACK(f), NULL);
}
void entry_user_disk(GtkWidget *self,int* flag_update) {
void block_button_add_edit_del(hotebook* obj_note) {
int menu_id = gtk_combo_box_get_active(GTK_COMBO_BOX(obj_note->comboBox));
int flag_block = 0;
if (menu_id == -1) {
flag_block = 0;
}
else {
flag_block = 1;
}
gtk_widget_set_sensitive(obj_note->btnAdd, flag_block);
gtk_widget_set_sensitive(obj_note->btnEdit, flag_block);
gtk_widget_set_sensitive(obj_note->btnDel, flag_block);
if (index_selected!=-1 || flag_block == 0) {
gtk_widget_set_sensitive(obj_note->boxSpins, flag_block);
}
}
void entry_user_disk(GtkWidget *self, int* flag_update) {
block_button_add_edit_del(&cfg_custom_gui.user);
if (flag_update) {
all_config.flag_set_data = 1;
all_config.flag_save = 3;
@ -139,6 +160,7 @@ void entry_user_disk(GtkWidget *self,int* flag_update) {
wrapper_fill_tree_view_generate(&all_config, &cfg_custom_gui);
}
void entry_groups_disk(GtkWidget *self,int* flag_update) {
block_button_add_edit_del(&cfg_custom_gui.group);
if (flag_update) {
all_config.flag_set_data = 1;
all_config.flag_save = 3;
@ -154,7 +176,7 @@ void entry_groups_disk(GtkWidget *self,int* flag_update) {
}
wrapper_fill_tree_view_generate(&all_config, &cfg_custom_gui);
}
void entry_project_disk(GtkWidget *self,int* flag_update) {
void entry_project_disk(GtkWidget *self,int* flag_update) {
if (flag_update) {
all_config.flag_set_data = 1;
all_config.flag_save = 3;
@ -307,6 +329,7 @@ int wrapper_select_tree_view(hotebook* widgets) {
char* str_iter = gtk_tree_model_get_string_from_iter(model, &iter);
index = atoi(str_iter);
index_selected = index;
gtk_widget_set_sensitive(widgets->boxSpins, 1);
}
else {
}
@ -580,6 +603,8 @@ int main(int argc, char *argv[]){
filters_set_name("prjquota");
filters_init_flag();
control_event(widgets, &cfg_custom_gui);
block_button_add_edit_del(&cfg_custom_gui.user);
block_button_add_edit_del(&cfg_custom_gui.group);
yon_ubl_header_setup_resource(widgets->HeadOverlay,widgets->HeadBox,widgets->HeadImage,banner_path);
yon_ubl_status_box_setup(widgets->StatusIcon,widgets->StatusBox,widgets->StatusLabel);

@ -96,6 +96,7 @@ typedef struct {
GtkWidget* spinMinutesFile;
GtkWidget* cmbSetStatusDisk;
GtkWidget* lblSetNameDevice;
GtkWidget* boxSpins;
} hotebook;
typedef struct {
int weeks;

@ -207,6 +207,10 @@ custom_window *setup_window_custom(custom_window* custom_widgets, GtkBuilder *bu
custom_widgets->group.name = yon_char_new("grpquota");
custom_widgets->project.name = yon_char_new("grpquota");
custom_widgets->user.boxSpins = yon_gtk_builder_get_widget(builder,"boxGeneralUsersEnableCheck");
custom_widgets->group.boxSpins = yon_gtk_builder_get_widget(builder,"boxGeneralGroupEnableCheck");
custom_widgets->project.boxSpins = yon_gtk_builder_get_widget(builder,"boxGeneralProjectEnableCheck");
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");

@ -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]);
}
}

@ -41,9 +41,9 @@ void filters_on_hide_subwindow(GtkWidget *self);
filters_window *get_widget_filters();
void filters_show(GtkWidget *self, char* glade_path);
void filters_destroy(GtkWidget *self);
int* filters_get_flag();
void filters_init_flag();
void filters_set_flag();
void filters_set_name(char* _flag_u_g_p);
void filters_show(GtkWidget *self, char* glade_path);
void filters_set_flag();
void filters_get_tree_view(GtkWidget *tree_view);
#endif

@ -3280,7 +3280,7 @@ limitation
</packing>
</child>
<child>
<object class="GtkBox" id="boxGeneralUsersEnableCheck2">
<object class="GtkBox" id="boxGeneralGroupEnableCheck">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
@ -4134,7 +4134,7 @@ limitation
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox" id="boxGeneralUsersEnableCheck1">
<object class="GtkBox" id="boxGeneralProjectEnableCheck">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
@ -5409,8 +5409,8 @@ limitation
</packing>
</child>
<child>
<object class="GtkCheckButton" id="chbFilterHardLimitSizeDelay">
<property name="label" translatable="yes">Hard limit (size) delay</property>
<object class="GtkCheckButton" id="chbFilterSoftLimitFile">
<property name="label" translatable="yes">Soft limit (files)</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
@ -5420,7 +5420,7 @@ limitation
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">6</property>
<property name="position">8</property>
</packing>
</child>
<child>
@ -5435,12 +5435,12 @@ limitation
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">7</property>
<property name="position">9</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="chbFilterSoftLimitFile">
<property name="label" translatable="yes">Soft limit (files)</property>
<object class="GtkCheckButton" id="chbFilterHardLimitFile">
<property name="label" translatable="yes">Hard limit (files)</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
@ -5450,12 +5450,12 @@ limitation
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">8</property>
<property name="position">10</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="chbFilterHardLimitFile">
<property name="label" translatable="yes">Hard limit (files)</property>
<object class="GtkCheckButton" id="chbFilterHardLimitSizeDelay">
<property name="label" translatable="yes">Hard limit (size) delay</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
@ -5465,7 +5465,7 @@ limitation
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">9</property>
<property name="position">12</property>
</packing>
</child>
<child>
@ -5480,7 +5480,7 @@ limitation
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">10</property>
<property name="position">13</property>
</packing>
</child>
</object>

Loading…
Cancel
Save