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

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

@ -1,7 +1,7 @@
#include "filters.h"
filters_window *filters_widgets = NULL;
gboolean flag_filters[8];
filters_window *filters_setup_window(char* glade_path){
if (filters_widgets == NULL) {
filters_widgets = malloc(sizeof(filters_window));
@ -19,6 +19,7 @@ filters_window *filters_setup_window(char* glade_path){
filters_widgets->btnFiltersSave = yon_gtk_builder_get_widget(builder,"btnFiltersSave");
filters_event(filters_widgets);
}
filters_set_flag();
return filters_widgets;
}
@ -52,5 +53,38 @@ void filters_show(GtkWidget *self, char* glade_path) {
filters_setup_window(glade_path);
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 <libintl.h>
// Переменные
typedef struct {
GtkWidget* Window;
@ -35,4 +36,7 @@ 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();
#endif

@ -120,6 +120,16 @@ main_window *setup_window(){
GtkBuilder *builder = gtk_builder_new_from_file(glade_path);
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->notebookMain = yon_gtk_builder_get_widget(builder,"notebookMain");
@ -174,15 +184,25 @@ main_window *setup_window(){
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) {
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->notebookMain), 3);
}
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) {
@ -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->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 | Локализация */
gtk_label_set_text(GTK_LABEL(widgets->HatLabel),TITLE_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();
filters_init_flag();
filters_setup_window(glade_path);
add_setup_window(glade_path);
edit_setup_window(glade_path);
main_localization(widgets);
event_all(widgets);
main_event(widgets);
yon_ubl_header_setup(widgets->HeadOverlay,widgets->HeadBox,widgets->HeadImage,banner_path);
if (yon_ubl_status_box_setup(widgets->StatusIcon,widgets->StatusBox,widgets->StatusLabel))

@ -56,6 +56,16 @@ typedef struct {
typedef struct {
GtkWidget *Window;
GtkTreeViewColumn *tvc0;
GtkTreeViewColumn *tvc1;
GtkTreeViewColumn *tvc2;
GtkTreeViewColumn *tvc3;
GtkTreeViewColumn *tvc4;
GtkTreeViewColumn *tvc5;
GtkTreeViewColumn *tvc6;
GtkTreeViewColumn *tvc7;
GtkWidget *treeViewMain;
GtkWidget *btnSaveCfg;
GtkWidget *btnShowFilters;
GtkWidget *notebookMain;
@ -110,3 +120,6 @@ void event_all();
void main_event(main_window *widgets);
void event_all(main_window *widgets);
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="can-focus">False</property>
<child>
<object class="GtkTreeView">
<object class="GtkTreeView" id="treeViewMain">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="model">liststore</property>
@ -645,7 +645,7 @@ translated and supported by community.</property>
<object class="GtkTreeSelection"/>
</child>
<child>
<object class="GtkTreeViewColumn">
<object class="GtkTreeViewColumn" id="tvc0">
<property name="title" translatable="yes">Type quota</property>
<property name="expand">True</property>
<child>
@ -657,7 +657,7 @@ translated and supported by community.</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<object class="GtkTreeViewColumn" id="tvc1">
<property name="title" translatable="yes">Quota
volume</property>
<property name="expand">True</property>
@ -670,7 +670,7 @@ volume</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<object class="GtkTreeViewColumn" id="tvc2">
<property name="title" translatable="yes">Soft RAM limit,
(volume)</property>
<property name="expand">True</property>
@ -683,7 +683,7 @@ volume</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<object class="GtkTreeViewColumn" id="tvc3">
<property name="title" translatable="yes">Hard RAM limit,
(volume)</property>
<property name="expand">True</property>
@ -696,7 +696,7 @@ volume</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<object class="GtkTreeViewColumn" id="tvc4">
<property name="title" translatable="yes">Swap file
limit
(volume)</property>
@ -710,7 +710,7 @@ limit
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<object class="GtkTreeViewColumn" id="tvc5">
<property name="title" translatable="yes">CPU limit
(%)</property>
<property name="expand">True</property>
@ -723,7 +723,7 @@ limit
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<object class="GtkTreeViewColumn" id="tvc6">
<property name="title" translatable="yes">I/O
limit
(read)</property>
@ -737,7 +737,7 @@ limit
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<object class="GtkTreeViewColumn" id="tvc7">
<property name="title" translatable="yes">I/O
limit
(write)</property>

Loading…
Cancel
Save