You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ubl-settings-diskquota/source/view_filters.cc

125 lines
4.9 KiB

#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<Gtk::CheckButton*> (sigc::mem_fun(*this,
&MainWindow::set_map_flag), chbFilterName));
chbFilterQuotas->signal_toggled().connect(
sigc::bind<Gtk::CheckButton*> (sigc::mem_fun(*this,
&MainWindow::set_map_flag), chbFilterQuotas));
chbFilterSize->signal_toggled().connect(
sigc::bind<Gtk::CheckButton*> (sigc::mem_fun(*this,
&MainWindow::set_map_flag), chbFilterSize));
chbFilterSoftLimitSize->signal_toggled().connect(
sigc::bind<Gtk::CheckButton*> (sigc::mem_fun(*this,
&MainWindow::set_map_flag), chbFilterSoftLimitSize));
chbFilterHardLimitSize->signal_toggled().connect(
sigc::bind<Gtk::CheckButton*> (sigc::mem_fun(*this,
&MainWindow::set_map_flag), chbFilterHardLimitSize));
chbFilterHardLimitSizeDelay->signal_toggled().connect(
sigc::bind<Gtk::CheckButton*> (sigc::mem_fun(*this,
&MainWindow::set_map_flag), chbFilterHardLimitSizeDelay));
chbFilterFiles->signal_toggled().connect(
sigc::bind<Gtk::CheckButton*> (sigc::mem_fun(*this,
&MainWindow::set_map_flag), chbFilterFiles));
chbFilterSoftLimitFile->signal_toggled().connect(
sigc::bind<Gtk::CheckButton*> (sigc::mem_fun(*this,
&MainWindow::set_map_flag), chbFilterSoftLimitFile));
chbFilterHardLimitFile->signal_toggled().connect(
sigc::bind<Gtk::CheckButton*> (sigc::mem_fun(*this,
&MainWindow::set_map_flag), chbFilterHardLimitFile));
chbFilterHardLimitFileDelay->signal_toggled().connect(
sigc::bind<Gtk::CheckButton*> (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<string, bool> 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;
}
}