diff --git a/source/ubl-settings-diskquota.cc b/source/ubl-settings-diskquota.cc index b6034c5..ba1d46b 100755 --- a/source/ubl-settings-diskquota.cc +++ b/source/ubl-settings-diskquota.cc @@ -47,17 +47,6 @@ void MainWindow::settings() { ,quotegroupFilesHarLimitLabel); obj_quotas_sys.set_map_gui(map_gui_cfg); obj_quotas_ubconfig.set_map_gui(map_gui_cfg); - chbFilterName->set_active(true); - chbFilterQuotas->set_active(true); - chbFilterSize->set_active(true); - chbFilterSoftLimitSize->set_active(true); - chbFilterHardLimitSize->set_active(true); - chbFilterHardLimitSizeDelay->set_active(true); - chbFilterFiles->set_active(true); - chbFilterSoftLimitFile->set_active(true); - chbFilterHardLimitFile->set_active(true); - chbFilterHardLimitFileDelay->set_active(true); - #ifdef WEBKIT_FOUND one = WEBKIT_WEB_VIEW( webkit_web_view_new() ); three = Glib::wrap(GTK_WIDGET(one)); @@ -228,16 +217,6 @@ void MainWindow::lacalization() { groupsDeviceLabel->set_label(str_device); usersDeviceLabel->set_label(str_device); headLabel->set_label(str_lb_head); - chbFilterName->set_label(str_name); - chbFilterQuotas->set_label(str_quotas); - chbFilterSize->set_label(str_size); - chbFilterSoftLimitSize->set_label(str_soft_limit_size); - chbFilterHardLimitSize->set_label(str_hard_limit_size); - chbFilterHardLimitSizeDelay->set_label(str_deferring_hard_limit_size); - chbFilterFiles->set_label(str_files); - chbFilterSoftLimitFile->set_label(str_soft_restriction_files); - chbFilterHardLimitFile->set_label(str_severe_limitation_files); - chbFilterHardLimitFileDelay->set_label(str_deferring_limit_files); quotegroupSizeFrameLabel->set_text(str_size); quotegroupFilesFrameLabel->set_text(str_files); quotegroupSizeCurrentlyLabel->set_text(str_currently_using); @@ -253,7 +232,6 @@ void MainWindow::lacalization() { btnSaveLocalGlob->set_label(save_all); btnSaveGlob->set_label(save_global); btnSaveLocal->set_label(save_local); - lblFiltersHead->set_label(str_filters); ProjectTabLabel->set_label(str_projects); usersProjectLabel->set_text(str_device); lblhelpHeader->set_text(read_documentation_web); @@ -385,21 +363,10 @@ void MainWindow::get_builder() { builder->get_widget("lblLoad", lblLoad); builder->get_widget("lblSave", lblSave); builder->get_widget("btnSettings", btnSettings); - builder->get_widget("btnSettings", btnSettings); builder->get_widget("groupsDeviceLabel", groupsDeviceLabel); builder->get_widget("usersDeviceLabel", usersDeviceLabel); builder->get_widget("headLabel", headLabel); - builder->get_widget("wndFilters", wndFilters); - builder->get_widget("chbFilterName", chbFilterName); - builder->get_widget("chbFilterQuotas", chbFilterQuotas); - builder->get_widget("chbFilterSize", chbFilterSize); - builder->get_widget("chbFilterSoftLimitSize", chbFilterSoftLimitSize); - builder->get_widget("chbFilterHardLimitSize", chbFilterHardLimitSize); - builder->get_widget("chbFilterHardLimitSizeDelay", chbFilterHardLimitSizeDelay); - builder->get_widget("chbFilterFiles", chbFilterFiles); - builder->get_widget("chbFilterSoftLimitFile", chbFilterSoftLimitFile); - builder->get_widget("chbFilterHardLimitFile", chbFilterHardLimitFile); - builder->get_widget("chbFilterHardLimitFileDelay", chbFilterHardLimitFileDelay); + builder->get_widget("btnLoadGlob", btnLoadGlob); builder->get_widget("btnLoadLocal", btnLoadLocal); builder->get_widget("btnSynopsis", btnSynopsis); @@ -422,7 +389,6 @@ void MainWindow::get_builder() { builder->get_widget("QuotasEditWindow", QuotasEditWindow); builder->get_widget("headerAboutTopic", headerAboutTopic); builder->get_widget("lblHeadQuotasEditWindow", lblHeadQuotasEditWindow); - builder->get_widget("lblFiltersHead", lblFiltersHead); builder->get_widget("usersDeviceCombo", usersDeviceCombo); builder->get_widget("GroupsTabLabel", GroupsTabLabel); builder->get_widget("generalTabLabel", generalTabLabel); @@ -549,18 +515,6 @@ void MainWindow::event() { btnAddGroups->signal_clicked().connect( sigc::bind, struct tv_g_u_p> (sigc::mem_fun( *this, &MainWindow::set_add_tv_g_u_p), row, list_store_groups, obj_tv_g_u_p)); - - chbFilterName->signal_toggled().connect(sigc::mem_fun( *this, - &MainWindow::del_columns)); - btnEditGroups->signal_clicked().connect( - sigc::bind*, const Gtk::TreeModel::iterator*, bool&> (sigc::mem_fun( *this, - &MainWindow::edit_tree_view_G), &list_store_groups, &iter_groups, flag_validate_del_groups)); - btnEditUsers->signal_clicked().connect( - sigc::bind*, const Gtk::TreeModel::iterator*, bool&> (sigc::mem_fun( *this, - &MainWindow::edit_tree_view_U), &list_store_users, &iter_users, flag_validate_del_users)); - btnEditProject->signal_clicked().connect( - sigc::bind*, const Gtk::TreeModel::iterator*, bool&> (sigc::mem_fun( *this, - &MainWindow::edit_tree_view_P), &list_store_project, &iter_project, flag_validate_del_project)); } @@ -637,7 +591,6 @@ void MainWindow::mode_switch_quota() { } void MainWindow::filters_show() { - wndFilters->show_all(); } void MainWindow::set_data_cfg() { diff --git a/source/ubl-settings-diskquota.h b/source/ubl-settings-diskquota.h index 5856c81..3b34e49 100644 --- a/source/ubl-settings-diskquota.h +++ b/source/ubl-settings-diskquota.h @@ -260,18 +260,7 @@ class MainWindow : public Gtk::ApplicationWindow { Gtk::Label *groupsDeviceLabel; Gtk::Label *usersDeviceLabel; Gtk::Label *headLabel; - Gtk::Window *wndFilters; - Gtk::CheckButton *chbFilterName; - Gtk::CheckButton *chbFilterQuotas; - Gtk::CheckButton *chbFilterSize; - Gtk::CheckButton *chbFilterSoftLimitSize; - Gtk::CheckButton *chbFilterHardLimitSize; - Gtk::CheckButton *chbFilterHardLimitSizeDelay; - Gtk::CheckButton *filtersHardSizeActivationFilterCheckbox; - Gtk::CheckButton *chbFilterFiles; - Gtk::CheckButton *chbFilterSoftLimitFile; - Gtk::CheckButton *chbFilterHardLimitFile; - Gtk::CheckButton *chbFilterHardLimitFileDelay; + Gtk::TreeView *groupsQuotasTree; Gtk::TreeView *usersQuotasTree; Gtk::TreeView *ProjectQuotasTree; @@ -289,7 +278,6 @@ class MainWindow : public Gtk::ApplicationWindow { Gtk::Window *QuotasEditWindow; Gtk::Label *headerAboutTopic; Gtk::Label *lblHeadQuotasEditWindow; - Gtk::Label *lblFiltersHead; Gtk::ComboBoxText *usersDeviceCombo; Gtk::ComboBoxText *groupsDeviceCombo; Gtk::ComboBoxText *generalDeviceCombo; diff --git a/source/view_filters.cc b/source/view_filters.cc new file mode 100644 index 0000000..8d87019 --- /dev/null +++ b/source/view_filters.cc @@ -0,0 +1,125 @@ +#include "view_filters.h" + +view_filters::view_filters(/* args */){ + builder = Gtk::Builder::create_from_file(path_glade); + this->settings(); +} + +view_filters::~view_filters() +{ +} + +void view_filters::settings() { + this->get_builder(); + this->lacalization(); + this->set_map_flag(chbFilterName); + this->set_map_flag(chbFilterQuotas); + this->set_map_flag(chbFilterSize); + this->set_map_flag(chbFilterSoftLimitSize); + this->set_map_flag(chbFilterHardLimitSize); + this->set_map_flag(chbFilterHardLimitSizeDelay); + this->set_map_flag(chbFilterFiles); + this->set_map_flag(chbFilterSoftLimitFile); + this->set_map_flag(chbFilterHardLimitFile); + this->set_map_flag(chbFilterHardLimitFileDelay); + this->event(); +} + +void view_filters::set_path_glade(string path_glade) { + this->path_glade = path_glade; +} + +void view_filters::get_builder() { + builder->get_widget("wndFilters", wndFilters); + builder->get_widget("chbFilterName", chbFilterName); + builder->get_widget("chbFilterQuotas", chbFilterQuotas); + builder->get_widget("chbFilterSize", chbFilterSize); + builder->get_widget("chbFilterSoftLimitSize", chbFilterSoftLimitSize); + builder->get_widget("chbFilterHardLimitSize", chbFilterHardLimitSize); + builder->get_widget("chbFilterHardLimitSizeDelay", chbFilterHardLimitSizeDelay); + builder->get_widget("chbFilterFiles", chbFilterFiles); + builder->get_widget("chbFilterSoftLimitFile", chbFilterSoftLimitFile); + builder->get_widget("chbFilterHardLimitFile", chbFilterHardLimitFile); + builder->get_widget("chbFilterHardLimitFileDelay", chbFilterHardLimitFileDelay); + builder->get_widget("lblFiltersHead", lblFiltersHead); + builder->get_widget("btnFiltersSave", btnFiltersSave); + builder->get_widget("btnFiltersCancel", btnFiltersCancel); + lblFiltersHead->set_label(str_filters); +} + +void view_filters::show() { + this->set_map_flag_false(); + wndFilters->show(); +} + +void view_filters::lacalization() { + chbFilterName->set_label(str_name); + chbFilterQuotas->set_label(str_quotas); + chbFilterSize->set_label(str_size); + chbFilterSoftLimitSize->set_label(str_soft_limit_size); + chbFilterHardLimitSize->set_label(str_hard_limit_size); + chbFilterHardLimitSizeDelay->set_label(str_deferring_hard_limit_size); + chbFilterFiles->set_label(str_files); + chbFilterSoftLimitFile->set_label(str_soft_restriction_files); + chbFilterHardLimitFile->set_label(str_severe_limitation_files); + chbFilterHardLimitFileDelay->set_label(str_deferring_limit_files); +} + +void view_filters::event() { + chbFilterName->signal_toggled().connect( + sigc::bind (sigc::mem_fun(*this, + &MainWindow::set_map_flag), chbFilterName)); + chbFilterQuotas->signal_toggled().connect( + sigc::bind (sigc::mem_fun(*this, + &MainWindow::set_map_flag), chbFilterQuotas)); + chbFilterSize->signal_toggled().connect( + sigc::bind (sigc::mem_fun(*this, + &MainWindow::set_map_flag), chbFilterSize)); + chbFilterSoftLimitSize->signal_toggled().connect( + sigc::bind (sigc::mem_fun(*this, + &MainWindow::set_map_flag), chbFilterSoftLimitSize)); + chbFilterHardLimitSize->signal_toggled().connect( + sigc::bind (sigc::mem_fun(*this, + &MainWindow::set_map_flag), chbFilterHardLimitSize)); + chbFilterHardLimitSizeDelay->signal_toggled().connect( + sigc::bind (sigc::mem_fun(*this, + &MainWindow::set_map_flag), chbFilterHardLimitSizeDelay)); + chbFilterFiles->signal_toggled().connect( + sigc::bind (sigc::mem_fun(*this, + &MainWindow::set_map_flag), chbFilterFiles)); + chbFilterSoftLimitFile->signal_toggled().connect( + sigc::bind (sigc::mem_fun(*this, + &MainWindow::set_map_flag), chbFilterSoftLimitFile)); + chbFilterHardLimitFile->signal_toggled().connect( + sigc::bind (sigc::mem_fun(*this, + &MainWindow::set_map_flag), chbFilterHardLimitFile)); + chbFilterHardLimitFileDelay->signal_toggled().connect( + sigc::bind (sigc::mem_fun(*this, + &MainWindow::set_map_flag), chbFilterHardLimitFileDelay)); + btnFiltersSave->signal_clicked().connect(sigc::mem_fun(*this, + &MainWindow::save)); + btnFiltersCancel->signal_clicked().connect(sigc::mem_fun(*this, + &MainWindow::cancel)); +} + +void view_filters::set_map_flag(Gtk::CheckButton* check_button) { + map_filters_flag[check_button->get_label()] = check_button->get_active(); +} + +void view_filters::save() { + wndFilters->hide(); +} + +void view_filters::cancel() { + wndFilters->hide(); +} + +map view_filters::get_filters() { + return map_filters_flag; +} + +void view_filters::set_map_flag_false() { + for (auto& [key: value]: map_filters_flag) { + map_filters_flag[key] = false; + } +} \ No newline at end of file diff --git a/source/view_filters.h b/source/view_filters.h new file mode 100644 index 0000000..c6c2514 --- /dev/null +++ b/source/view_filters.h @@ -0,0 +1,48 @@ +#include "project_lib.h" + +#define str_name _("Name") +#define str_size _("Size") +#define str_filters _("Filters") +#define str_quotas _("Quotas") +#define str_soft_limit_size _("Soft limit (size)") +#define str_hard_limit_size _("Hard limit (size)") +#define str_hard_limit_size_delay _("Hard limit (size) delay") +#define str_soft_limit_files _("Soft limit (files)") +#define str_hard_limit_size_delay _("Hard limit (files) delay") +class view_filters +{ +private: + Glib::RefPtr const& builder; + string path_glade; + Gtk::Window *wndFilters; + Gtk::CheckButton *chbFilterName; + Gtk::CheckButton *chbFilterQuotas; + Gtk::CheckButton *chbFilterSize; + Gtk::CheckButton *chbFilterSoftLimitSize; + Gtk::CheckButton *chbFilterHardLimitSize; + Gtk::CheckButton *chbFilterHardLimitSizeDelay; + Gtk::CheckButton *filtersHardSizeActivationFilterCheckbox; + Gtk::CheckButton *chbFilterFiles; + Gtk::CheckButton *chbFilterSoftLimitFile; + Gtk::CheckButton *chbFilterHardLimitFile; + Gtk::CheckButton *chbFilterHardLimitFileDelay; + Gtk::Label *lblFiltersHead; + Gtk::Button *btnFiltersSave; + Gtk::Button *btnFiltersCancel; + std::map map_filters_flag; +public: + view_filters(/* args */); + ~view_filters(); + void lacalization(); + void event(); + void get_builder(); + void settings(); + void show(); + void set_map_flag(Gtk::CheckButton* check_button); + void save(); + void cancel(); + void set_map_flag_false(); + map get_filters() +}; + + diff --git a/ubl-settings-diskquota.glade b/ubl-settings-diskquota.glade index db1973c..f487184 100644 --- a/ubl-settings-diskquota.glade +++ b/ubl-settings-diskquota.glade @@ -2842,7 +2842,7 @@ - + True False @@ -3486,7 +3486,7 @@ 5 True - + gtk-cancel True True