Вынес фильтры в отдельный файл

pull/13/head
Igor Belitskiy 2 years ago
parent f5f4809531
commit aa5e8a51c5

@ -47,17 +47,6 @@ void MainWindow::settings() {
,quotegroupFilesHarLimitLabel); ,quotegroupFilesHarLimitLabel);
obj_quotas_sys.set_map_gui(map_gui_cfg); obj_quotas_sys.set_map_gui(map_gui_cfg);
obj_quotas_ubconfig.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 #ifdef WEBKIT_FOUND
one = WEBKIT_WEB_VIEW( webkit_web_view_new() ); one = WEBKIT_WEB_VIEW( webkit_web_view_new() );
three = Glib::wrap(GTK_WIDGET(one)); three = Glib::wrap(GTK_WIDGET(one));
@ -228,16 +217,6 @@ void MainWindow::lacalization() {
groupsDeviceLabel->set_label(str_device); groupsDeviceLabel->set_label(str_device);
usersDeviceLabel->set_label(str_device); usersDeviceLabel->set_label(str_device);
headLabel->set_label(str_lb_head); 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); quotegroupSizeFrameLabel->set_text(str_size);
quotegroupFilesFrameLabel->set_text(str_files); quotegroupFilesFrameLabel->set_text(str_files);
quotegroupSizeCurrentlyLabel->set_text(str_currently_using); quotegroupSizeCurrentlyLabel->set_text(str_currently_using);
@ -253,7 +232,6 @@ void MainWindow::lacalization() {
btnSaveLocalGlob->set_label(save_all); btnSaveLocalGlob->set_label(save_all);
btnSaveGlob->set_label(save_global); btnSaveGlob->set_label(save_global);
btnSaveLocal->set_label(save_local); btnSaveLocal->set_label(save_local);
lblFiltersHead->set_label(str_filters);
ProjectTabLabel->set_label(str_projects); ProjectTabLabel->set_label(str_projects);
usersProjectLabel->set_text(str_device); usersProjectLabel->set_text(str_device);
lblhelpHeader->set_text(read_documentation_web); lblhelpHeader->set_text(read_documentation_web);
@ -385,21 +363,10 @@ void MainWindow::get_builder() {
builder->get_widget("lblLoad", lblLoad); builder->get_widget("lblLoad", lblLoad);
builder->get_widget("lblSave", lblSave); builder->get_widget("lblSave", lblSave);
builder->get_widget("btnSettings", btnSettings); builder->get_widget("btnSettings", btnSettings);
builder->get_widget("btnSettings", btnSettings);
builder->get_widget("groupsDeviceLabel", groupsDeviceLabel); builder->get_widget("groupsDeviceLabel", groupsDeviceLabel);
builder->get_widget("usersDeviceLabel", usersDeviceLabel); builder->get_widget("usersDeviceLabel", usersDeviceLabel);
builder->get_widget("headLabel", headLabel); 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("btnLoadGlob", btnLoadGlob);
builder->get_widget("btnLoadLocal", btnLoadLocal); builder->get_widget("btnLoadLocal", btnLoadLocal);
builder->get_widget("btnSynopsis", btnSynopsis); builder->get_widget("btnSynopsis", btnSynopsis);
@ -422,7 +389,6 @@ void MainWindow::get_builder() {
builder->get_widget("QuotasEditWindow", QuotasEditWindow); builder->get_widget("QuotasEditWindow", QuotasEditWindow);
builder->get_widget("headerAboutTopic", headerAboutTopic); builder->get_widget("headerAboutTopic", headerAboutTopic);
builder->get_widget("lblHeadQuotasEditWindow", lblHeadQuotasEditWindow); builder->get_widget("lblHeadQuotasEditWindow", lblHeadQuotasEditWindow);
builder->get_widget("lblFiltersHead", lblFiltersHead);
builder->get_widget("usersDeviceCombo", usersDeviceCombo); builder->get_widget("usersDeviceCombo", usersDeviceCombo);
builder->get_widget("GroupsTabLabel", GroupsTabLabel); builder->get_widget("GroupsTabLabel", GroupsTabLabel);
builder->get_widget("generalTabLabel", generalTabLabel); builder->get_widget("generalTabLabel", generalTabLabel);
@ -549,18 +515,6 @@ void MainWindow::event() {
btnAddGroups->signal_clicked().connect( btnAddGroups->signal_clicked().connect(
sigc::bind<Gtk::TreeModel::Row&, Glib::RefPtr<Gtk::ListStore>, struct tv_g_u_p> (sigc::mem_fun( *this, sigc::bind<Gtk::TreeModel::Row&, Glib::RefPtr<Gtk::ListStore>, 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)); &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<Glib::RefPtr<Gtk::ListStore>*, 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<Glib::RefPtr<Gtk::ListStore>*, 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<Glib::RefPtr<Gtk::ListStore>*, 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() { void MainWindow::filters_show() {
wndFilters->show_all();
} }
void MainWindow::set_data_cfg() { void MainWindow::set_data_cfg() {

@ -260,18 +260,7 @@ class MainWindow : public Gtk::ApplicationWindow {
Gtk::Label *groupsDeviceLabel; Gtk::Label *groupsDeviceLabel;
Gtk::Label *usersDeviceLabel; Gtk::Label *usersDeviceLabel;
Gtk::Label *headLabel; 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 *groupsQuotasTree;
Gtk::TreeView *usersQuotasTree; Gtk::TreeView *usersQuotasTree;
Gtk::TreeView *ProjectQuotasTree; Gtk::TreeView *ProjectQuotasTree;
@ -289,7 +278,6 @@ class MainWindow : public Gtk::ApplicationWindow {
Gtk::Window *QuotasEditWindow; Gtk::Window *QuotasEditWindow;
Gtk::Label *headerAboutTopic; Gtk::Label *headerAboutTopic;
Gtk::Label *lblHeadQuotasEditWindow; Gtk::Label *lblHeadQuotasEditWindow;
Gtk::Label *lblFiltersHead;
Gtk::ComboBoxText *usersDeviceCombo; Gtk::ComboBoxText *usersDeviceCombo;
Gtk::ComboBoxText *groupsDeviceCombo; Gtk::ComboBoxText *groupsDeviceCombo;
Gtk::ComboBoxText *generalDeviceCombo; Gtk::ComboBoxText *generalDeviceCombo;

@ -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<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;
}
}

@ -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<Gtk::Builder> 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<string, bool> 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<string, bool> get_filters()
};

@ -2842,7 +2842,7 @@
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkComboBoxText" id="cmbSetNameUGP"> <object class="GtkComboBoxText">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
</object> </object>
@ -3486,7 +3486,7 @@
<property name="spacing">5</property> <property name="spacing">5</property>
<property name="homogeneous">True</property> <property name="homogeneous">True</property>
<child> <child>
<object class="GtkButton"> <object class="GtkButton" id="btnFiltersCancel">
<property name="label">gtk-cancel</property> <property name="label">gtk-cancel</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>

Loading…
Cancel
Save