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/ubl-settings-quotas.h

238 lines
9.6 KiB

#ifndef UBL_SETTINGS_QUOTAS_H
#define UBL_SETTINGS_QUOTAS_H
#include "util.h"
#include "load.h"
#include "save.h"
#include "my_process.h"
#include "my_type.h"
#include "my_device.h"
extern int socket_ext_id_I;
extern int socket_trd_id_I;
using namespace std;
extern const string path_app;
extern const string path_glade;
extern const string app_name;
extern const string path_locale;
extern const string path_css;
extern const string path_img_head_background;
extern string version_application;
class MainWindow : public Gtk::ApplicationWindow {
public:
class ModelColumns : public Gtk::TreeModel::ColumnRecord {
public:
ModelColumns() {add(name), add(quotas); add(size),
add(soft_limit_size), add(hard_limit_size); add(hard_limit_size_delay),
add(hard_limit_activ_time), add(files); add(soft_limit_files),
add(hard_limit_files), add(hard_limit_delay); add(hard_limit_files_activ_time); }
Gtk::TreeModelColumn<Glib::ustring> name;
Gtk::TreeModelColumn<bool> quotas;
Gtk::TreeModelColumn<Glib::ustring> size;
Gtk::TreeModelColumn<Glib::ustring> soft_limit_size;
Gtk::TreeModelColumn<Glib::ustring> hard_limit_size;
Gtk::TreeModelColumn<Glib::ustring> hard_limit_size_delay;
Gtk::TreeModelColumn<Glib::ustring> hard_limit_activ_time;
Gtk::TreeModelColumn<Glib::ustring> files;
Gtk::TreeModelColumn<Glib::ustring> soft_limit_files;
Gtk::TreeModelColumn<Glib::ustring> hard_limit_files;
Gtk::TreeModelColumn<Glib::ustring> hard_limit_delay;
Gtk::TreeModelColumn<Glib::ustring> hard_limit_files_activ_time;
};
ModelColumns m_columns;
Glib::RefPtr<Gtk::Builder> builder;
template<typename Type>
struct Result{
Type response;
int error;
};
Gtk::Label *headerTopic;
Gtk::AboutDialog *aboutWindows;
Gtk::Overlay *HeadOverlay;
Gtk::HeaderBar *headerBar;
Gtk::Box *boxSave;
Gtk::Box *boxButton;
Gtk::Box *boxFuncs;
Gtk::MenuButton *btnSave;
Gtk::MenuButton *btnLoad;
Gtk::MenuButton *btnSettings;
Gtk::ButtonBox *btnBoxAboutDialog;
Gtk::Image *HeadBackgroundImage;
Gtk::Image *imgInfo;
Gtk::Box *boxInfoError;
Gtk::Label *lblWarning;
Gtk::Label *generalTabLabel;
Gtk::Label *UsersTabLabel;
Gtk::Label *GroupsTabLabel;
Gtk::Label *generalDeviceLabel;
Gtk::Label *generalGroupsFrameLabel;
Gtk::Label *generalGroupsSizeLabel;
Gtk::Label *generalGroupsFilesLabel;
Gtk::Label *generalUsersFrameLabel;
Gtk::Label *generalUsersSizeLabel;
Gtk::Label *generalUsersFilesLabel;
Gtk::Label *generalGroupsSizeWeeksLabel;
Gtk::Label *generalGroupsFilesWeeksLabel;
Gtk::Label *generalUsersSizeWeeksLabel;
Gtk::Label *generalUsersFilesWeeksLabel;
Gtk::Label *generalGroupsSizeDaysLabel;
Gtk::Label *generalGroupsFilesDaysLabel;
Gtk::Label *generalUsersSizeDaysLabel;
Gtk::Label *generalUsersFilesDaysLabel;
Gtk::Label *generalGroupsSizeHoursLabel;
Gtk::Label *generalGroupsFilesHoursLabel;
Gtk::Label *generalUsersSizeHoursLabel;
Gtk::Label *generalUsersFilesHoursLabel;
Gtk::Label *generalGroupsSizeMinutesLabel;
Gtk::Label *generalGroupsFilesMinutesLabel;
Gtk::Label *generalUsersSizeMinutesLabel;
Gtk::Label *generalUsersFilesMinutesLabel;
Gtk::Label *generalFileSystemLabel;
Gtk::Label *lblLoad;
Gtk::Label *lblSave;
Gtk::CheckButton *generalUsersEnableCheck;
Gtk::MenuItem *btnLoadGlob;
Gtk::MenuItem *btnLoadLocal;
Gtk::MenuItem *btnSynopsis;
Gtk::MenuItem *btnAbout;
Gtk::MenuItem *btnSaveLocalGlob;
Gtk::MenuItem *btnSaveGlob;
Gtk::MenuItem *btnSaveLocal;
Gtk::Label *groupsFileSystemLabel;
Gtk::Label *usersFileSystemLabel;
Gtk::Button *groupsFiltersButton;
Gtk::Button *usersFiltersButton;
Gtk::Label *groupsDeviceLabel;
Gtk::Label *usersDeviceLabel;
Gtk::Label *headLabel;
Gtk::Window *FiltersWindow;
Gtk::CheckButton *filtersNameFilterCheckbox;
Gtk::CheckButton *filtersQuotasFilterCheckbox;
Gtk::CheckButton *filtersSizeFilterCheckbox;
Gtk::CheckButton *filtersSoftSizeFilterCheckbox;
Gtk::CheckButton *filtersHardSizeFilterCheckbox;
Gtk::CheckButton *filtersHardSizeDelayFilterCheckbox;
Gtk::CheckButton *filtersHardSizeActivationFilterCheckbox;
Gtk::CheckButton *filtersFilesFilterCheckbox;
Gtk::CheckButton *filtersSoftFilesFilterCheckbox;
Gtk::CheckButton *filtersHardFilesFilterCheckbox;
Gtk::CheckButton *filtersHardFilesDelayFilterCheckbox;
Gtk::CheckButton *filtersHardFilesActivationFilterCheckbox;
Gtk::TreeView *groupsQuotasTree;
Gtk::TreeView *usersQuotasTree;
Gtk::Label *quotegroupDeviceLabel;
Gtk::Label *quotegroupFileSystemLabel;
Gtk::Label *quotegroupDiskQuotasLabel;
Gtk::Label *quotegroupGroupQuotasLabel;
Gtk::Label *quotegroupSizeFrameLabel;
Gtk::Label *quotegroupSizeCurrentlyLabel;
Gtk::Label *quoteSizeHardLimitLabel;
Gtk::Label *quotegroupFilesFrameLabel;
Gtk::Label *quotegroupFilesCurrentlyLabel;
Gtk::Label *quotegroupFilesSoftLimitLabel;
Gtk::Label *quoteFilesHardLimitLabel;
Gtk::Label *quotegroupFilesHarLimitLabel;
Gtk::Label *quoteuserDeviceLabel;
Gtk::Label *quoteuserDiskQuotasLabel;
Gtk::Label *quoteuserFileSystemLabel;
Gtk::Label *quoteuserGroupQuotasLabel;
Gtk::Label *quoteuserSizeFrameLabel;
Gtk::Label *quoteuserSizeCurrentlyLabel;
Gtk::Label *quoteuserSizeSoftLimitLabel;
Gtk::Label *quoteuserSizeHardLimitLabel1;
Gtk::Label *quoteuserFilesCurrentlyLabel;
Gtk::Label *quoteuserFilesSoftLimitLabel;
Gtk::Label *quoteFilesHardLimitLabel1;
Gtk::Label *quoteuserFilesHarLimitLabel;
Gtk::Label *quoteuserFilesFrameLabel;
Gtk::Label *quotegroupSizeSoftLimitLabel;
Gtk::Label *quoteuserFilesSoftLimitlabel;
Gtk::Window *QuotasUserEditWindow;
Gtk::Window *QuotasEditWindow;
Gtk::Label *headerAboutTopic;
Gtk::Label *lblHeadQuotasUserEditWindow;
Gtk::Label *lblHeadQuotasEditWindow;
Gtk::Label *lblHeadFiltersWindow;
Gtk::Box *boxGeneralGroupsEnableCheck;
Gtk::CheckButton *generalGroupsEnableCheck;
Gtk::Box *boxGeneralUsersEnableCheck;
Gtk::ComboBoxText *usersDeviceCombo;
Gtk::ComboBoxText *groupsDeviceCombo;
Gtk::ComboBoxText *generalDeviceCombo;
Gtk::Label *lblFstypeUsers;
Gtk::Label *lblFstypeGroups;
Gtk::Label *lblFstypeGeneralSettings;
Gtk::SpinButton *generalGroupsSizeWeeksSpi;
Gtk::SpinButton *generalGroupsFileWeeksSpin;
Gtk::SpinButton *generalGroupsSizeDaySpin;
Gtk::SpinButton *generalGroupsFilesDaySpin;
Gtk::SpinButton *generalGroupsSizeHourSpin;
Gtk::SpinButton *generalGroupsFilesHourSpin;
Gtk::SpinButton *generalGroupsSizeMinuteSpin;
Gtk::SpinButton *generalGroupsFilesMinuteSpin;
Gtk::SpinButton *generalUsersSizWeeksSpin;
Gtk::SpinButton *generalUsersFileWeeksSpin;
Gtk::SpinButton *generalUsersSizeDaySpin;
Gtk::SpinButton *generalUsersFilesDaySpin;
Gtk::SpinButton *generalUsersSizeHourSpin;
Gtk::SpinButton *generalUsersFilesHoursSpin;
Gtk::SpinButton *generalUsersSizeMinuteSpin;
Gtk::SpinButton *generalUsersFilesMinutesSpin;
public:
Lib_save::Save obj_save = Lib_save::Save();
Lib_Load::Load obj_load = Lib_Load::Load();
Devices::Get_device obj_device = Devices::Get_device();
My_Process::My_Process_system obj_process_system = My_Process::My_Process_system();
My_Process::My_Process_call obj_process_call = My_Process::My_Process_call();
map_str_str map_gui_cfg;
map_str_str map_global_cfg;
map_str_str map_system_cfg;
vector<string> vec_param_names;
map_str_device map_device;
string str_cmd_error;
public:
MainWindow(BaseObjectType* obj, Glib::RefPtr<Gtk::Builder> const& builder);
MainWindow(Glib::RefPtr<Gtk::Builder> const& builder);
void settings();
void lacalization();
void add_CSS();
void get_builder();
void event();
void entry_combo_box_temp(Gtk::ComboBoxText *combo_box, Gtk::Label *label);
void entry_generalGroupsEnableCheck();
void synopsis_show();
void info_status_app(string stule);
void entry_generalUsersEnableCheck();
void groupsFilters_show();
void init_tree_view();
void load_template(map_str_str* map_temp, string str_load);
void info_warning_error(int mess);
void wrapper_save_system_cfg();
void wrapper_save_global_cfg();
void wrapper_save_all_cfg();
void init_dict(string flag_load);
void set_data_cfg();
void init_spin_all();
void load_global_cfg();
void load_system_cfg();
void filling_device_combo_box_template(Gtk::ComboBoxText *combo_box, map_str_device &map_device);
bool save_template(string section, string flag_save);
void view_add_columns(Gtk::TreeView &treeView);
};
void help();
#endif