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.
192 lines
7.4 KiB
192 lines
7.4 KiB
#ifndef UBL_SETTINGS_QUOTAS_H
|
|
#define UBL_SETTINGS_QUOTAS_H
|
|
#include <gtkmm/window.h>
|
|
#include <glibmm/i18n.h>
|
|
#include <gtkmm/plug.h>
|
|
#include <gtkmm/stock.h>
|
|
#include <gtkmm.h>
|
|
|
|
#include "ubl-util-standard.c"
|
|
#include "util.h"
|
|
|
|
|
|
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 int socket_ext_id_I;
|
|
extern int socket_trd_id_I;
|
|
extern string version_application;
|
|
class CmdArgParser : public Glib::OptionGroup {
|
|
public:
|
|
CmdArgParser(const std::string& p_name, const std::string& p_description, const std::string& p_help);
|
|
::Window GetSocketID() const;
|
|
private:
|
|
int m_socketID = 0;
|
|
|
|
};
|
|
|
|
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 *generalGroupsEnableCheck;
|
|
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;
|
|
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 info_status_app(string stule);
|
|
void groupsFilters_show();
|
|
void init_tree_view();
|
|
void view_add_columns(Gtk::TreeView &treeView);
|
|
|
|
|
|
};
|
|
|
|
class SettingsPlug : public Gtk::Plug{
|
|
public:
|
|
Gtk::Window *window;
|
|
SettingsPlug(::Window p_socketID, Glib::RefPtr<Gtk::Builder> builder);
|
|
|
|
private:
|
|
Gtk::Widget *plugBox;
|
|
Gtk::Widget *parent;
|
|
};
|
|
void help();
|
|
#endif
|