Добавил фильтры для treeView

pull/2/head
Igor Belitskiy 2 years ago
parent 1b2fed48e5
commit 29834fc9bf

@ -1,7 +1,7 @@
#include "filters.h" #include "filters.h"
filters_window *filters_widgets = NULL; filters_window *filters_widgets = NULL;
gboolean flag_filters[8];
filters_window *filters_setup_window(char* glade_path){ filters_window *filters_setup_window(char* glade_path){
if (filters_widgets == NULL) { if (filters_widgets == NULL) {
filters_widgets = malloc(sizeof(filters_window)); filters_widgets = malloc(sizeof(filters_window));
@ -19,11 +19,12 @@ filters_window *filters_setup_window(char* glade_path){
filters_widgets->btnFiltersSave = yon_gtk_builder_get_widget(builder,"btnFiltersSave"); filters_widgets->btnFiltersSave = yon_gtk_builder_get_widget(builder,"btnFiltersSave");
filters_event(filters_widgets); filters_event(filters_widgets);
} }
filters_set_flag();
return filters_widgets; return filters_widgets;
} }
void filters_event(filters_window *widgets) { 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->btnFiltersCancel), "clicked",G_CALLBACK(filters_on_hide_subwindow),NULL);
g_signal_connect(G_OBJECT(widgets->Window), "destroy", G_CALLBACK(filters_destroy), NULL); g_signal_connect(G_OBJECT(widgets->Window), "destroy", G_CALLBACK(filters_destroy), NULL);
} }
@ -52,5 +53,38 @@ void filters_show(GtkWidget *self, char* glade_path) {
filters_setup_window(glade_path); filters_setup_window(glade_path);
gtk_widget_show_all(filters_widgets->Window); gtk_widget_show_all(filters_widgets->Window);
} }
}
gboolean* filters_get_flag() {
flag_filters[0] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterTypeQouota));
flag_filters[1] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbQuotaVolume));
flag_filters[2] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbSoftLimit));
flag_filters[3] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbHardLimit));
flag_filters[4] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbSwapFileLimit));
flag_filters[5] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbCPULimit));
flag_filters[6] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbIOLimitWrite));
flag_filters[7] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbIOLimitRead));
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;
}
void filters_set_flag() {
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterTypeQouota),flag_filters[0] );
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbQuotaVolume), flag_filters[1]);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbSoftLimit), flag_filters[2]);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbHardLimit), flag_filters[3]);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbSwapFileLimit), flag_filters[4]);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbCPULimit), flag_filters[5]);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbIOLimitWrite), flag_filters[6]);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbIOLimitRead), flag_filters[7]);
} }

@ -12,6 +12,7 @@
#include <getopt.h> #include <getopt.h>
#include <libintl.h> #include <libintl.h>
// Переменные // Переменные
typedef struct { typedef struct {
GtkWidget* Window; GtkWidget* Window;
@ -35,4 +36,7 @@ void filters_on_hide_subwindow(GtkWidget *self);
filters_window *get_widget_filters(); filters_window *get_widget_filters();
void filters_show(GtkWidget *self, char* glade_path); void filters_show(GtkWidget *self, char* glade_path);
void filters_destroy(GtkWidget *self); void filters_destroy(GtkWidget *self);
int* filters_get_flag();
void filters_init_flag();
void filters_set_flag();
#endif #endif

@ -120,6 +120,16 @@ main_window *setup_window(){
GtkBuilder *builder = gtk_builder_new_from_file(glade_path); GtkBuilder *builder = gtk_builder_new_from_file(glade_path);
widgets->Window = yon_gtk_builder_get_widget(builder,"MainWindow"); widgets->Window = yon_gtk_builder_get_widget(builder,"MainWindow");
widgets->treeViewMain = yon_gtk_builder_get_widget(builder,"treeViewMain");
widgets->tvc0 = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder,"tvc0"));
widgets->tvc1 = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder,"tvc1"));
widgets->tvc2 = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder,"tvc2"));
widgets->tvc3 = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder,"tvc3"));
widgets->tvc4 = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder,"tvc4"));
widgets->tvc5 = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder,"tvc5"));
widgets->tvc6 = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder,"tvc6"));
widgets->tvc7 = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder,"tvc7"));
widgets->btnSaveCfg = yon_gtk_builder_get_widget(builder,"btnSaveCfg"); widgets->btnSaveCfg = yon_gtk_builder_get_widget(builder,"btnSaveCfg");
widgets->notebookMain = yon_gtk_builder_get_widget(builder,"notebookMain"); widgets->notebookMain = yon_gtk_builder_get_widget(builder,"notebookMain");
@ -174,15 +184,25 @@ main_window *setup_window(){
return widgets; return widgets;
} }
void main_visible_columns(GtkWidget *self) {
gboolean *flags_filters = filters_get_flag();
gtk_tree_view_column_set_visible(widgets->tvc0, flags_filters[0]);
gtk_tree_view_column_set_visible(widgets->tvc1, flags_filters[1]);
gtk_tree_view_column_set_visible(widgets->tvc2, flags_filters[2]);
gtk_tree_view_column_set_visible(widgets->tvc3, flags_filters[3]);
gtk_tree_view_column_set_visible(widgets->tvc4, flags_filters[4]);
gtk_tree_view_column_set_visible(widgets->tvc5, flags_filters[5]);
gtk_tree_view_column_set_visible(widgets->tvc6, flags_filters[6]);
gtk_tree_view_column_set_visible(widgets->tvc7, flags_filters[7]);
filters_on_hide_subwindow(self);
}
void info_show(GtkWidget *self) { void info_show(GtkWidget *self) {
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->notebookMain), 3); gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->notebookMain), 3);
} }
void event_all(main_window *widgets) { void event_all(main_window *widgets) {
g_signal_connect(G_OBJECT(widgets->btnShowFilters),"clicked",G_CALLBACK(filters_show), glade_path);
g_signal_connect(G_OBJECT(widgets->btnAdd),"clicked",G_CALLBACK(add_show), glade_path);
g_signal_connect(G_OBJECT(widgets->btnEdit),"clicked",G_CALLBACK(edit_show), glade_path);
g_signal_connect(G_OBJECT(widgets->btnInfo),"clicked",G_CALLBACK(info_show), glade_path);
} }
void main_event(main_window *widgets) { void main_event(main_window *widgets) {
@ -191,6 +211,27 @@ void main_event(main_window *widgets) {
g_signal_connect(G_OBJECT(widgets->DocumentationMenuItem),"activate",G_CALLBACK(on_open_documentation_confirmation),WIKI_LINK); g_signal_connect(G_OBJECT(widgets->DocumentationMenuItem),"activate",G_CALLBACK(on_open_documentation_confirmation),WIKI_LINK);
g_signal_connect(G_OBJECT(widgets->AboutMenuItem),"activate",G_CALLBACK(on_about),NULL); g_signal_connect(G_OBJECT(widgets->AboutMenuItem),"activate",G_CALLBACK(on_about),NULL);
g_signal_connect(G_OBJECT(widgets->btnShowFilters),"clicked",G_CALLBACK(wrapper_filters_show), NULL);
g_signal_connect(G_OBJECT(widgets->btnAdd),"clicked",G_CALLBACK(add_show), glade_path);
g_signal_connect(G_OBJECT(widgets->btnEdit),"clicked",G_CALLBACK(edit_show), glade_path);
g_signal_connect(G_OBJECT(widgets->btnInfo),"clicked",G_CALLBACK(info_show), glade_path);
/*
g_signal_connect(G_OBJECT(widgets->LoadGlobalMenuItem),"activate",G_CALLBACK(),NULL);
g_signal_connect(G_OBJECT(widgets->LoadLocalMenuItem),"activate",G_CALLBACK(),NULL);
g_signal_connect(G_OBJECT(widgets->SaveMenuItem),"activate",G_CALLBACK(),NULL);
g_signal_connect(G_OBJECT(widgets->SaveGlobalMenuItem),"activate",G_CALLBACK(),NULL);
g_signal_connect(G_OBJECT(widgets->SaveLocalMenuItem),"activate",G_CALLBACK(),NULL);
*/
}
void wrapper_filters_show(GtkWidget *self) {
filters_show(self, glade_path);
g_signal_connect(G_OBJECT(get_widget_filters()->btnFiltersSave),"clicked",G_CALLBACK(main_visible_columns), NULL);
}
void main_localization(main_window *widgets) {
/* Localisation | Локализация */ /* Localisation | Локализация */
gtk_label_set_text(GTK_LABEL(widgets->HatLabel),TITLE_LABEL); gtk_label_set_text(GTK_LABEL(widgets->HatLabel),TITLE_LABEL);
gtk_label_set_text(GTK_LABEL(widgets->SaveLabel),SAVE_LABEL); gtk_label_set_text(GTK_LABEL(widgets->SaveLabel),SAVE_LABEL);
@ -278,11 +319,14 @@ int main(int argc, char *argv[]){
main_window *widgets = setup_window(); main_window *widgets = setup_window();
filters_init_flag();
filters_setup_window(glade_path); filters_setup_window(glade_path);
add_setup_window(glade_path); add_setup_window(glade_path);
edit_setup_window(glade_path); edit_setup_window(glade_path);
main_localization(widgets);
event_all(widgets); event_all(widgets);
main_event(widgets); main_event(widgets);
yon_ubl_header_setup(widgets->HeadOverlay,widgets->HeadBox,widgets->HeadImage,banner_path); yon_ubl_header_setup(widgets->HeadOverlay,widgets->HeadBox,widgets->HeadImage,banner_path);
if (yon_ubl_status_box_setup(widgets->StatusIcon,widgets->StatusBox,widgets->StatusLabel)) if (yon_ubl_status_box_setup(widgets->StatusIcon,widgets->StatusBox,widgets->StatusLabel))

@ -56,6 +56,16 @@ typedef struct {
typedef struct { typedef struct {
GtkWidget *Window; GtkWidget *Window;
GtkTreeViewColumn *tvc0;
GtkTreeViewColumn *tvc1;
GtkTreeViewColumn *tvc2;
GtkTreeViewColumn *tvc3;
GtkTreeViewColumn *tvc4;
GtkTreeViewColumn *tvc5;
GtkTreeViewColumn *tvc6;
GtkTreeViewColumn *tvc7;
GtkWidget *treeViewMain;
GtkWidget *btnSaveCfg; GtkWidget *btnSaveCfg;
GtkWidget *btnShowFilters; GtkWidget *btnShowFilters;
GtkWidget *notebookMain; GtkWidget *notebookMain;
@ -109,4 +119,7 @@ void config_init();
void event_all(); void event_all();
void main_event(main_window *widgets); void main_event(main_window *widgets);
void event_all(main_window *widgets); void event_all(main_window *widgets);
void info_show(GtkWidget *self); void info_show(GtkWidget *self);
void main_localization(main_window *widgets);
void main_visible_columns();
void wrapper_filters_show(GtkWidget *self);

@ -636,7 +636,7 @@ translated and supported by community.</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<child> <child>
<object class="GtkTreeView"> <object class="GtkTreeView" id="treeViewMain">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="model">liststore</property> <property name="model">liststore</property>
@ -645,7 +645,7 @@ translated and supported by community.</property>
<object class="GtkTreeSelection"/> <object class="GtkTreeSelection"/>
</child> </child>
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn" id="tvc0">
<property name="title" translatable="yes">Type quota</property> <property name="title" translatable="yes">Type quota</property>
<property name="expand">True</property> <property name="expand">True</property>
<child> <child>
@ -657,7 +657,7 @@ translated and supported by community.</property>
</object> </object>
</child> </child>
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn" id="tvc1">
<property name="title" translatable="yes">Quota <property name="title" translatable="yes">Quota
volume</property> volume</property>
<property name="expand">True</property> <property name="expand">True</property>
@ -670,7 +670,7 @@ volume</property>
</object> </object>
</child> </child>
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn" id="tvc2">
<property name="title" translatable="yes">Soft RAM limit, <property name="title" translatable="yes">Soft RAM limit,
(volume)</property> (volume)</property>
<property name="expand">True</property> <property name="expand">True</property>
@ -683,7 +683,7 @@ volume</property>
</object> </object>
</child> </child>
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn" id="tvc3">
<property name="title" translatable="yes">Hard RAM limit, <property name="title" translatable="yes">Hard RAM limit,
(volume)</property> (volume)</property>
<property name="expand">True</property> <property name="expand">True</property>
@ -696,7 +696,7 @@ volume</property>
</object> </object>
</child> </child>
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn" id="tvc4">
<property name="title" translatable="yes">Swap file <property name="title" translatable="yes">Swap file
limit limit
(volume)</property> (volume)</property>
@ -710,7 +710,7 @@ limit
</object> </object>
</child> </child>
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn" id="tvc5">
<property name="title" translatable="yes">CPU limit <property name="title" translatable="yes">CPU limit
(%)</property> (%)</property>
<property name="expand">True</property> <property name="expand">True</property>
@ -723,7 +723,7 @@ limit
</object> </object>
</child> </child>
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn" id="tvc6">
<property name="title" translatable="yes">I/O <property name="title" translatable="yes">I/O
limit limit
(read)</property> (read)</property>
@ -737,7 +737,7 @@ limit
</object> </object>
</child> </child>
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn" id="tvc7">
<property name="title" translatable="yes">I/O <property name="title" translatable="yes">I/O
limit limit
(write)</property> (write)</property>

Loading…
Cancel
Save