diff --git a/source/view/filters.c b/source/view/filters.c
index 990f704..446388a 100644
--- a/source/view/filters.c
+++ b/source/view/filters.c
@@ -1,26 +1,34 @@
#include "filters.h"
-filters_window *filters_widgets;
+filters_window *filters_widgets = NULL;
filters_window *filters_setup_window(char* glade_path){
- filters_widgets = malloc(sizeof(filters_window));
- GtkBuilder *builder = gtk_builder_new_from_file(glade_path);
- filters_widgets->Window = yon_gtk_builder_get_widget(builder,"wndFilters");
- filters_widgets->chbFilterTypeQouota = yon_gtk_builder_get_widget(builder,"chbFilterTypeQouota");
- filters_widgets->chbQuotaVolume = yon_gtk_builder_get_widget(builder,"chbQuotaVolume");
- filters_widgets->chbSoftLimit = yon_gtk_builder_get_widget(builder,"chbSoftLimit");
- filters_widgets->chbHardLimit = yon_gtk_builder_get_widget(builder,"chbHardLimit");
- filters_widgets->chbSwapFileLimit = yon_gtk_builder_get_widget(builder,"chbSwapFileLimit");
- filters_widgets->chbIOLimitWrite = yon_gtk_builder_get_widget(builder,"chbIOLimitWrite");
- filters_widgets->chbCPULimit = yon_gtk_builder_get_widget(builder,"chbCPULimit");
- filters_widgets->chbIOLimitRead = yon_gtk_builder_get_widget(builder,"chbIOLimitRead");
- filters_widgets->btnFiltersCancel = yon_gtk_builder_get_widget(builder,"btnFiltersCancel");
- filters_widgets->btnFiltersSave = yon_gtk_builder_get_widget(builder,"btnFiltersSave");
+ if (filters_widgets == NULL) {
+ filters_widgets = malloc(sizeof(filters_window));
+ GtkBuilder *builder = gtk_builder_new_from_file(glade_path);
+ filters_widgets->Window = yon_gtk_builder_get_widget(builder,"wndFilters");
+ filters_widgets->chbFilterTypeQouota = yon_gtk_builder_get_widget(builder,"chbFilterTypeQouota");
+ filters_widgets->chbQuotaVolume = yon_gtk_builder_get_widget(builder,"chbQuotaVolume");
+ filters_widgets->chbSoftLimit = yon_gtk_builder_get_widget(builder,"chbSoftLimit");
+ filters_widgets->chbHardLimit = yon_gtk_builder_get_widget(builder,"chbHardLimit");
+ filters_widgets->chbSwapFileLimit = yon_gtk_builder_get_widget(builder,"chbSwapFileLimit");
+ filters_widgets->chbIOLimitWrite = yon_gtk_builder_get_widget(builder,"chbIOLimitWrite");
+ filters_widgets->chbCPULimit = yon_gtk_builder_get_widget(builder,"chbCPULimit");
+ filters_widgets->chbIOLimitRead = yon_gtk_builder_get_widget(builder,"chbIOLimitRead");
+ filters_widgets->btnFiltersCancel = yon_gtk_builder_get_widget(builder,"btnFiltersCancel");
+ filters_widgets->btnFiltersSave = yon_gtk_builder_get_widget(builder,"btnFiltersSave");
+ filters_event(filters_widgets);
+ }
return filters_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->Window), "destroy", G_CALLBACK(filters_destroy), NULL);
+}
+
+void filters_destroy(GtkWidget *self) {
+ filters_widgets = NULL;
}
void filters_localization(filters_window *widgets) {
@@ -29,6 +37,7 @@ void filters_localization(filters_window *widgets) {
void filters_on_hide_subwindow(GtkWidget *self) {
gtk_widget_destroy(gtk_widget_get_toplevel(self));
+ filters_widgets = NULL;
}
filters_window *get_widget_filters() {
@@ -36,5 +45,11 @@ filters_window *get_widget_filters() {
}
void filters_show(GtkWidget *self) {
- gtk_widget_show_all(filters_widgets->Window);
+ if (filters_widgets != NULL) {
+ gtk_widget_show_all(filters_widgets->Window);
+ }
+ else {
+
+ }
+
}
\ No newline at end of file
diff --git a/source/view/filters.h b/source/view/filters.h
index 8f6a9ef..9794374 100644
--- a/source/view/filters.h
+++ b/source/view/filters.h
@@ -34,4 +34,5 @@ void filters_localization(filters_window *widgets);
void filters_on_hide_subwindow(GtkWidget *self);
filters_window *get_widget_filters();
void filters_show(GtkWidget *self);
+void filters_destroy(GtkWidget *self);
#endif
\ No newline at end of file
diff --git a/source/view/ubl-settings-resourcequota.c b/source/view/ubl-settings-resourcequota.c
index a090090..2d0680d 100644
--- a/source/view/ubl-settings-resourcequota.c
+++ b/source/view/ubl-settings-resourcequota.c
@@ -1,7 +1,7 @@
#include "ubl-settings-resourcequota.h"
config main_config;
-
+main_window *widgets;
/**on_close_subwindow(GtkWidget *self)
* [EN]
* Closes window in which [self] is contained.
@@ -116,9 +116,12 @@ void config_init(){
main_window *setup_window(){
/* Widgets getting | Получение виджетов */
- main_window *widgets = malloc(sizeof(main_window));
+ widgets = malloc(sizeof(main_window));
GtkBuilder *builder = gtk_builder_new_from_file(glade_path);
widgets->Window = yon_gtk_builder_get_widget(builder,"MainWindow");
+
+ widgets->notebookMain = yon_gtk_builder_get_widget(builder,"notebookMain");
+
widgets->btnEdit = yon_gtk_builder_get_widget(builder,"btnEdit");
widgets->btnAdd = yon_gtk_builder_get_widget(builder,"btnAdd");
widgets->btnInfo = yon_gtk_builder_get_widget(builder,"btnInfo");
@@ -157,7 +160,7 @@ main_window *setup_window(){
}
void info_show(GtkWidget *self) {
-
+ gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->notebookMain), 3);
}
void event_all(main_window *widgets) {
diff --git a/source/view/ubl-settings-resourcequota.h b/source/view/ubl-settings-resourcequota.h
index 29b6178..b4280ef 100644
--- a/source/view/ubl-settings-resourcequota.h
+++ b/source/view/ubl-settings-resourcequota.h
@@ -56,6 +56,7 @@ typedef struct {
typedef struct {
GtkWidget *Window;
GtkWidget *btnShowFilters;
+ GtkWidget *notebookMain;
GtkWidget *btnEdit;
GtkWidget *btnInfo;
GtkWidget *btnAdd;
diff --git a/source/view/view_add.c b/source/view/view_add.c
index f82aa5a..2c92ec3 100644
--- a/source/view/view_add.c
+++ b/source/view/view_add.c
@@ -1,18 +1,26 @@
#include "view_add.h"
-add_window *add_widgets;
-
-add_window *add_setup_window(char* glade_path){
- add_widgets = malloc(sizeof(add_window));
- GtkBuilder *builder = gtk_builder_new_from_file(glade_path);
- add_widgets->Window = yon_gtk_builder_get_widget(builder,"wndQuotasAdding");
- add_widgets->btnSaveAddSave = yon_gtk_builder_get_widget(builder,"btnSaveAddSave");
- add_widgets->btnAddCancel = yon_gtk_builder_get_widget(builder,"btnAddCancel");
+add_window *add_widgets = NULL;
+
+add_window *add_setup_window(char* glade_path) {
+ if (add_widgets == NULL) {
+ add_widgets = malloc(sizeof(add_window));
+ GtkBuilder *builder = gtk_builder_new_from_file(glade_path);
+ add_widgets->Window = yon_gtk_builder_get_widget(builder,"wndQuotasAdding");
+ add_widgets->btnSaveAddSave = yon_gtk_builder_get_widget(builder,"btnSaveAddSave");
+ add_widgets->btnAddCancel = yon_gtk_builder_get_widget(builder,"btnAddCancel");
+ add_event(add_widgets);
+ }
return add_widgets;
}
void add_event(add_window *widgets) {
- g_signal_connect(G_OBJECT(widgets->btnSaveAddSave),"clicked",G_CALLBACK(add_on_hide_subwindow),NULL);
+ g_signal_connect(G_OBJECT(widgets->btnAddCancel),"clicked",G_CALLBACK(add_on_hide_subwindow),NULL);
+ g_signal_connect(G_OBJECT(widgets->Window), "destroy", G_CALLBACK(add_destroy), NULL);
+}
+
+void add_destroy(GtkWidget *self) {
+ add_widgets = NULL;
}
void add_localization(add_window *widgets) {
@@ -21,6 +29,8 @@ void add_localization(add_window *widgets) {
void add_on_hide_subwindow(GtkWidget *self) {
gtk_widget_destroy(gtk_widget_get_toplevel(self));
+ add_widgets = NULL;
+
}
add_window *get_widget_add() {
@@ -28,5 +38,11 @@ add_window *get_widget_add() {
}
void add_show(GtkWidget *self) {
- gtk_widget_show_all(add_widgets->Window);
+ if (add_widgets != NULL) {
+ gtk_widget_show_all(add_widgets->Window);
+ }
+ else {
+
+ }
+
}
\ No newline at end of file
diff --git a/source/view/view_add.h b/source/view/view_add.h
index e15e58c..fb4de5e 100644
--- a/source/view/view_add.h
+++ b/source/view/view_add.h
@@ -26,4 +26,5 @@ void add_localization(add_window *widgets);
void add_on_hide_subwindow(GtkWidget *self);
add_window *get_widget_add();
void add_show(GtkWidget *self);
+void add_destroy(GtkWidget *self);
#endif
\ No newline at end of file
diff --git a/source/view/view_edit.c b/source/view/view_edit.c
index 6a68369..edbc652 100644
--- a/source/view/view_edit.c
+++ b/source/view/view_edit.c
@@ -1,18 +1,26 @@
#include "view_edit.h"
-edit_window *edit_widgets;
+edit_window *edit_widgets = NULL;
edit_window *edit_setup_window(char* glade_path){
- edit_widgets = malloc(sizeof(edit_window));
- GtkBuilder *builder = gtk_builder_new_from_file(glade_path);
- edit_widgets->Window = yon_gtk_builder_get_widget(builder,"wndQuotasEdit");
- edit_widgets->btnEditCancel = yon_gtk_builder_get_widget(builder,"btnEditCancel");
- edit_widgets->btnSaveEditSave = yon_gtk_builder_get_widget(builder,"btnSaveEditSave");
+ if (edit_widgets == NULL) {
+ edit_widgets = malloc(sizeof(edit_window));
+ GtkBuilder *builder = gtk_builder_new_from_file(glade_path);
+ edit_widgets->Window = yon_gtk_builder_get_widget(builder,"wndQuotasEdit");
+ edit_widgets->btnEditCancel = yon_gtk_builder_get_widget(builder,"btnEditCancel");
+ edit_widgets->btnSaveEditSave = yon_gtk_builder_get_widget(builder,"btnSaveEditSave");
+ edit_event(edit_widgets);
+ }
return edit_widgets;
}
void edit_event(edit_window *widgets) {
g_signal_connect(G_OBJECT(widgets->btnEditCancel),"clicked",G_CALLBACK(edit_on_hide_subwindow),NULL);
+ g_signal_connect(G_OBJECT(widgets->Window), "destroy", G_CALLBACK(edit_destroy), NULL);
+}
+
+void edit_destroy(GtkWidget *self) {
+ edit_widgets = NULL;
}
void edit_localization(edit_window *widgets) {
@@ -21,6 +29,7 @@ void edit_localization(edit_window *widgets) {
void edit_on_hide_subwindow(GtkWidget *self) {
gtk_widget_destroy(gtk_widget_get_toplevel(self));
+ edit_widgets = NULL;
}
edit_window *get_widget_edit() {
@@ -28,5 +37,11 @@ edit_window *get_widget_edit() {
}
void edit_show(GtkWidget *self) {
- gtk_widget_show_all(edit_widgets->Window);
+ if (edit_widgets != NULL) {
+ gtk_widget_show_all(edit_widgets->Window);
+ }
+ else {
+
+ }
+
}
\ No newline at end of file
diff --git a/source/view/view_edit.h b/source/view/view_edit.h
index 2e1add2..024b08c 100644
--- a/source/view/view_edit.h
+++ b/source/view/view_edit.h
@@ -26,4 +26,5 @@ void edit_localization(edit_window *widgets);
void edit_on_hide_subwindow(GtkWidget *self);
edit_window *get_widget_edit();
void edit_show(GtkWidget *self);
+void edit_destroy(GtkWidget *self);
#endif
\ No newline at end of file
diff --git a/ubl-settings-resourcequota.glade b/ubl-settings-resourcequota.glade
index 90edad8..a8d9205 100644
--- a/ubl-settings-resourcequota.glade
+++ b/ubl-settings-resourcequota.glade
@@ -618,7 +618,7 @@ translated and supported by community.
True
vertical
-