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.cc

488 lines
23 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#include "ubl-settings-quotas.h"
using namespace std;
const string path_app = "/usr/bin/";
const string path_glade = "/usr/share/ubl-settings-quotas/ui/ubl-settings-quotas.glade";
const string app_name = "ubl-settings-quotas";
const string path_locale = "/usr/share/locale/";
const string path_css = "/usr/share/ubl-settings-quotas/css/ubl-settings-quotas.css";
const string path_img_head_background = "/usr/share/ubl-settings-quotas/images/logo-background.png";
int socket_ext_id_I = 0;
int socket_trd_id_I = 0;
string version_application = "1.0";
MainWindow::MainWindow(BaseObjectType* obj, Glib::RefPtr<Gtk::Builder> const& builder)
: Gtk::ApplicationWindow(obj), builder{builder} {
this->builder = builder;
this->settings();
}
MainWindow::MainWindow(Glib::RefPtr<Gtk::Builder> const& builder) {
this->builder = builder;
this->settings();
}
void MainWindow::settings() {
this->get_builder();
this->lacalization();
this->add_CSS();
btnBoxAboutDialog->set_visible(false);
Gtk::Widget *boxWidget;
builder->get_widget("boxColor", boxWidget);
HeadOverlay->add_overlay(*boxWidget);
ubl_make_plugs(boxSave, boxButton, socket_ext_id_I, socket_trd_id_I);
if (geteuid() == 0) {
this->init_tree_view();
this->event();
}
else {
boxFuncs->set_sensitive(false);
btnSave->set_sensitive(false);
btnLoad->set_sensitive(false);
imgInfo->set_from_icon_name("com.ublinux.ubl-settings-datetime.warning", Gtk::ICON_SIZE_MENU);
info_status_app("boxInfoMessError");
lblWarning->set_text(_("The program must be run as root"));
}
}
void MainWindow::init_tree_view() {
this->view_add_columns(*usersQuotasTree);
this->view_add_columns(*groupsQuotasTree);
}
void MainWindow::lacalization() {
time_t now = time(0);
tm *ltm = localtime(&now);
unsigned int year = 1900+ ltm->tm_year;
string str_authors = string(_("Copyright © UBSoft LLC, 2022 - ")) + to_string(year);
aboutWindows->set_copyright(str_authors);
aboutWindows->set_comments(_("Date and Time"));
aboutWindows->set_website(_("https://wiki.ublinux.com"));
aboutWindows->set_version(gettext(version_application.c_str()));
aboutWindows->set_website_label(_("Project Home Page"));
generalTabLabel->set_text(_("General settings"));
GroupsTabLabel->set_text(_("Groups"));
UsersTabLabel->set_text(_("Users"));
generalDeviceLabel->set_text(_("Device:"));
generalFileSystemLabel->set_text(_("File system:"));
generalGroupsFrameLabel->set_text(_("Quotas for groups"));
generalGroupsEnableCheck->set_label(_("Enable"));
generalUsersEnableCheck->set_label(_("Enable"));
generalUsersFrameLabel->set_label(_("Quotas for users"));
generalGroupsSizeLabel->set_text(_("Excess size delay period"));
generalGroupsFilesLabel->set_text(_("Excess files delay period"));
generalUsersSizeLabel->set_text(_("Excess size delay period"));
generalUsersFilesLabel->set_text(_("Excess files delay period"));
generalGroupsSizeWeeksLabel->set_text(_("weeks"));
generalGroupsFilesWeeksLabel->set_text(_("weeks"));
generalUsersSizeWeeksLabel->set_text(_("weeks"));
generalUsersFilesWeeksLabel->set_text(_("weeks"));
generalGroupsSizeDaysLabel->set_text(_("days"));
generalGroupsFilesDaysLabel->set_text(_("days"));
generalUsersSizeDaysLabel->set_text(_("days"));
generalUsersFilesDaysLabel->set_text(_("days"));
generalGroupsSizeHoursLabel->set_text(_("hours"));
generalGroupsFilesHoursLabel->set_text(_("hours"));
generalUsersSizeHoursLabel->set_text(_("hours"));
generalUsersFilesHoursLabel->set_text(_("hours"));
generalGroupsSizeMinutesLabel->set_text(_("minutes"));
generalGroupsFilesMinutesLabel->set_text(_("minutes"));
generalUsersSizeMinutesLabel->set_text(_("minutes"));
generalUsersFilesMinutesLabel->set_text(_("minutes"));
groupsFileSystemLabel->set_text(_("File system:"));
usersFileSystemLabel->set_text(_("File system:"));
usersFiltersButton->set_label(_("Filters"));
groupsFiltersButton->set_label(_("Filters"));
lblLoad->set_text(_("Load"));
lblSave->set_text(_("Save"));
groupsDeviceLabel->set_label(_("Device:"));
usersDeviceLabel->set_label(_("Device:"));
headLabel->set_label(_("Configuration of disk quotas parameters for system groups and users"));
filtersNameFilterCheckbox->set_label(_("Name"));
filtersQuotasFilterCheckbox->set_label(_("Quotas"));
filtersSizeFilterCheckbox->set_label(_("Size"));
filtersSoftSizeFilterCheckbox->set_label(_("Soft limit (size)"));
filtersHardSizeFilterCheckbox->set_label(_("Hard limit (size)"));
filtersHardSizeDelayFilterCheckbox->set_label(_("Hard limit (size) delay"));
filtersHardSizeActivationFilterCheckbox->set_label(_("Hard limit (size) activation time"));
filtersFilesFilterCheckbox->set_label(_("Files"));
filtersSoftFilesFilterCheckbox->set_label(_("Soft limit (files)"));
filtersHardFilesFilterCheckbox->set_label(_("Hard limit (files)"));
filtersHardFilesDelayFilterCheckbox->set_label(_("Hard limit (files) delay"));
filtersHardFilesActivationFilterCheckbox->set_label(_("Hard limit (file) activation time"));
quotegroupDeviceLabel->set_text(_("Device:"));
quotegroupDiskQuotasLabel->set_text(_("Disk quotas for this device:"));
quotegroupGroupQuotasLabel->set_text(_("Group quotas for this device:"));
quotegroupSizeFrameLabel->set_text(_("Size"));
quotegroupFilesFrameLabel->set_text(_("Files"));
quotegroupSizeCurrentlyLabel->set_text(_("Currently using:"));
quotegroupSizeSoftLimitLabel->set_text(_("Soft limit"));
quoteSizeHardLimitLabel->set_text(_("Hard limit"));
quoteFilesHardLimitLabel->set_text(_("Hard limit"));
quotegroupFilesSoftLimitLabel->set_text(_("Soft limit"));
quotegroupFilesCurrentlyLabel->set_text(_("Currently using:"));
quoteuserDiskQuotasLabel->set_text(_("Disk quotas for this device:"));
quoteuserDeviceLabel->set_text(_("Device:"));
quoteuserGroupQuotasLabel->set_text(_("User quotas for this device: "));
quoteuserSizeFrameLabel->set_text(_("Size"));
quoteuserSizeCurrentlyLabel->set_text(_("Currently using:"));
quoteuserSizeSoftLimitLabel->set_text(_("Soft limit"));
quoteuserSizeHardLimitLabel1->set_text(_("Hard limit"));
quoteuserFileSystemLabel->set_text(_("File system:"));
quoteuserFilesFrameLabel->set_text(_("Files"));
quoteuserFilesCurrentlyLabel->set_text(_("Currently using: "));
quoteuserFilesSoftLimitLabel->set_text(_("Soft limit"));
quoteFilesHardLimitLabel1->set_text(_("Hard limit"));
quoteuserFilesHarLimitLabel->set_text(_("files"));
quoteuserFilesSoftLimitlabel->set_text(_("files"));
quotegroupFileSystemLabel->set_text(_("File system:"));
btnLoadGlob->set_label(_("Load from global configuration"));
btnLoadLocal->set_label(_("Load from local configuration"));
btnAbout->set_label(_("About"));
btnSynopsis->set_label(_("Help"));
btnSaveLocalGlob->set_label(_("Save to global and local configuration"));
btnSaveGlob->set_label(_("Save to global configuration"));
btnSaveLocal->set_label(_("Save to local configuration"));
}
void MainWindow::add_CSS() {
Glib::RefPtr<Gtk::CssProvider> cssProvider = Gtk::CssProvider::create();
cssProvider->load_from_path(path_css);
Glib::RefPtr<Gtk::StyleContext> styleContext = Gtk::StyleContext::create();
Glib::RefPtr<Gdk::Screen> screen = Gdk::Screen::get_default();//get default screen
styleContext->add_provider_for_screen(screen, cssProvider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);//add provider for screen in all application
HeadBackgroundImage->set(path_img_head_background);
Glib::RefPtr<Gtk::StyleContext> headLabel_css = headLabel->get_style_context();
Glib::RefPtr<Gtk::StyleContext> boxButton_css = boxButton->get_style_context();
Glib::RefPtr<Gtk::StyleContext> boxSave_css = boxSave->get_style_context();
Glib::RefPtr<Gtk::StyleContext> headerBar_css = headerBar->get_style_context();
if (socket_trd_id_I == 0 && socket_ext_id_I == 0){
boxButton_css->add_class("bkim_no_plug");
boxSave_css->add_class("bkim_no_plug");
}
headLabel_css->add_class("textHead");
}
/*
void init_treeview_user() {
}
void MainWindow::view_add_data(Gtk::TreeModel::Row &row, Glib::RefPtr<Gtk::ListStore> list_store_m , std::array<std::vector<std::string>, 5> &arr_view , size_t index) {
row = *(list_store_m->append());
bool flag_chb = false;
string name = arr_view[0][index];
row[m_columns.check_button] = flag_chb;
row[m_columns.name] = _(name.c_str());
row[m_columns.description] = _(arr_view[1][index].c_str());
}
*/
void MainWindow::get_builder() {
builder->set_translation_domain(path_app);
builder->get_widget("headerTopic", headerTopic);
builder->get_widget("boxButton", boxButton);
builder->get_widget("boxSave", boxSave);
builder->get_widget("aboutWindows", aboutWindows);
builder->get_widget("HeadOverlay", HeadOverlay);
builder->get_widget("headerBar", headerBar);
builder->get_widget("boxFuncs", boxFuncs);
builder->get_widget("btnLoad", btnLoad);
builder->get_widget("btnSave", btnSave);
builder->get_widget("btnBoxAboutDialog", btnBoxAboutDialog);
builder->get_widget("HeadBackgroundImage", HeadBackgroundImage);
builder->get_widget("imgInfo", imgInfo);
builder->get_widget("lblWarning", lblWarning);
builder->get_widget("boxInfoError", boxInfoError);
builder->get_widget("imgInfo", imgInfo);
builder->get_widget("generalTabLabel", generalTabLabel);
builder->get_widget("GroupsTabLabel", GroupsTabLabel);
builder->get_widget("UsersTabLabel", UsersTabLabel);
builder->get_widget("generalDeviceLabel", generalDeviceLabel);
builder->get_widget("generalGroupsFrameLabel", generalGroupsFrameLabel);
builder->get_widget("generalGroupsSizeLabel", generalGroupsSizeLabel);
builder->get_widget("generalGroupsFilesLabel", generalGroupsFilesLabel);
builder->get_widget("generalUsersFrameLabel", generalUsersFrameLabel);
builder->get_widget("generalUsersSizeLabel", generalUsersSizeLabel);
builder->get_widget("generalUsersFilesLabel", generalUsersFilesLabel);
builder->get_widget("generalGroupsSizeWeeksLabel", generalGroupsSizeWeeksLabel);
builder->get_widget("generalGroupsFilesWeeksLabel", generalGroupsFilesWeeksLabel);
builder->get_widget("generalUsersSizeWeeksLabel", generalUsersSizeWeeksLabel);
builder->get_widget("generalUsersFilesWeeksLabel", generalUsersFilesWeeksLabel);
builder->get_widget("generalGroupsSizeDaysLabel", generalGroupsSizeDaysLabel);
builder->get_widget("generalGroupsFilesDaysLabel", generalGroupsFilesDaysLabel);
builder->get_widget("generalUsersSizeDaysLabel", generalUsersSizeDaysLabel);
builder->get_widget("generalUsersFilesDaysLabel", generalUsersFilesDaysLabel);
builder->get_widget("generalGroupsSizeHoursLabel", generalGroupsSizeHoursLabel);
builder->get_widget("generalGroupsFilesHoursLabel", generalGroupsFilesHoursLabel);
builder->get_widget("generalUsersSizeHoursLabel", generalUsersSizeHoursLabel);
builder->get_widget("generalUsersFilesHoursLabel", generalUsersFilesHoursLabel);
builder->get_widget("generalGroupsSizeMinutesLabel", generalGroupsSizeMinutesLabel);
builder->get_widget("generalGroupsFilesMinutesLabel", generalGroupsFilesMinutesLabel);
builder->get_widget("generalUsersSizeMinutesLabel", generalUsersSizeMinutesLabel);
builder->get_widget("generalUsersFilesMinutesLabel", generalUsersFilesMinutesLabel);
builder->get_widget("generalFileSystemLabel", generalFileSystemLabel);
builder->get_widget("generalGroupsEnableCheck", generalGroupsEnableCheck);
builder->get_widget("generalUsersEnableCheck", generalUsersEnableCheck);
builder->get_widget("lblLoad", lblLoad);
builder->get_widget("lblSave", lblSave);
builder->get_widget("btnSettings", btnSettings);
builder->get_widget("groupsFileSystemLabel", groupsFileSystemLabel);
builder->get_widget("groupsFiltersButton", groupsFiltersButton);
builder->get_widget("btnSettings", btnSettings);
builder->get_widget("usersFiltersButton", usersFiltersButton);
builder->get_widget("usersFileSystemLabel", usersFileSystemLabel);
builder->get_widget("groupsDeviceLabel", groupsDeviceLabel);
builder->get_widget("usersDeviceLabel", usersDeviceLabel);
builder->get_widget("headLabel", headLabel);
builder->get_widget("FiltersWindow", FiltersWindow);
builder->get_widget("filtersNameFilterCheckbox", filtersNameFilterCheckbox);
builder->get_widget("filtersQuotasFilterCheckbox", filtersQuotasFilterCheckbox);
builder->get_widget("filtersSizeFilterCheckbox", filtersSizeFilterCheckbox);
builder->get_widget("filtersSoftSizeFilterCheckbox", filtersSoftSizeFilterCheckbox);
builder->get_widget("filtersHardSizeFilterCheckbox", filtersHardSizeFilterCheckbox);
builder->get_widget("filtersHardSizeDelayFilterCheckbox", filtersHardSizeDelayFilterCheckbox);
builder->get_widget("filtersHardSizeActivationFilterCheckbox", filtersHardSizeActivationFilterCheckbox);
builder->get_widget("filtersFilesFilterCheckbox", filtersFilesFilterCheckbox);
builder->get_widget("filtersSoftFilesFilterCheckbox", filtersSoftFilesFilterCheckbox);
builder->get_widget("filtersHardFilesFilterCheckbox", filtersHardFilesFilterCheckbox);
builder->get_widget("filtersHardFilesDelayFilterCheckbox", filtersHardFilesDelayFilterCheckbox);
builder->get_widget("filtersHardFilesActivationFilterCheckbox", filtersHardFilesActivationFilterCheckbox);
builder->get_widget("filtersHardFilesActivationFilterCheckbox", filtersHardFilesActivationFilterCheckbox);
builder->get_widget("btnLoadGlob", btnLoadGlob);
builder->get_widget("btnLoadLocal", btnLoadLocal);
builder->get_widget("btnSynopsis", btnSynopsis);
builder->get_widget("btnAbout", btnAbout);
builder->get_widget("btnSaveLocalGlob", btnSaveLocalGlob);
builder->get_widget("btnSaveGlob", btnSaveGlob);
builder->get_widget("btnSaveLocal", btnSaveLocal);
builder->get_widget("GroupsTabLabel", GroupsTabLabel);
builder->get_widget("groupsQuotasTree", groupsQuotasTree);
builder->get_widget("usersQuotasTree", usersQuotasTree);
builder->get_widget("quotegroupDeviceLabel", quotegroupDeviceLabel);
builder->get_widget("quotegroupFileSystemLabel", quotegroupFileSystemLabel);
builder->get_widget("quotegroupDiskQuotasLabel", quotegroupDiskQuotasLabel);
builder->get_widget("quotegroupGroupQuotasLabel", quotegroupGroupQuotasLabel);
builder->get_widget("quotegroupSizeFrameLabel", quotegroupSizeFrameLabel);
builder->get_widget("quotegroupFilesFrameLabel", quotegroupFilesFrameLabel);
builder->get_widget("quotegroupSizeCurrentlyLabel", quotegroupSizeCurrentlyLabel);
builder->get_widget("quotegroupFilesCurrentlyLabel", quotegroupFilesCurrentlyLabel);
builder->get_widget("quotegroupSizeSoftLimitLabel", quotegroupSizeSoftLimitLabel);
builder->get_widget("quoteSizeHardLimitLabel", quoteSizeHardLimitLabel);
builder->get_widget("quotegroupFilesSoftLimitLabel", quotegroupFilesSoftLimitLabel);
builder->get_widget("quoteFilesHardLimitLabel", quoteFilesHardLimitLabel);
builder->get_widget("quotegroupFilesHarLimitLabel", quotegroupFilesHarLimitLabel);
builder->get_widget("quoteuserDeviceLabel", quoteuserDeviceLabel);
builder->get_widget("quoteuserFileSystemLabel", quoteuserFileSystemLabel);
builder->get_widget("quoteuserDiskQuotasLabel", quoteuserDiskQuotasLabel);
builder->get_widget("quoteuserGroupQuotasLabel", quoteuserGroupQuotasLabel);
builder->get_widget("quoteuserSizeFrameLabel", quoteuserSizeFrameLabel);
builder->get_widget("quoteuserSizeCurrentlyLabel", quoteuserSizeCurrentlyLabel);
builder->get_widget("quoteuserSizeSoftLimitLabel", quoteuserSizeSoftLimitLabel);
builder->get_widget("quoteuserSizeHardLimitLabel1", quoteuserSizeHardLimitLabel1);
builder->get_widget("quoteuserFilesFrameLabel", quoteuserFilesFrameLabel);
builder->get_widget("quoteuserFilesCurrentlyLabel", quoteuserFilesCurrentlyLabel);
builder->get_widget("quoteuserFilesSoftLimitLabel", quoteuserFilesSoftLimitLabel);
builder->get_widget("quoteFilesHardLimitLabel1", quoteFilesHardLimitLabel1);
builder->get_widget("quoteuserFilesHarLimitLabel", quoteuserFilesHarLimitLabel);
builder->get_widget("quoteuserFilesSoftLimitlabel", quoteuserFilesSoftLimitlabel);
builder->get_widget("QuotasEditWindow", QuotasEditWindow);
builder->get_widget("QuotasUserEditWindow", QuotasUserEditWindow);
}
void MainWindow::event() {
btnLoadGlob->signal_activate().connect([&]() {});
btnLoadLocal->signal_activate().connect([&]() {});
btnSynopsis->signal_activate().connect([&]() {});
btnAbout->signal_activate().connect([&]() {});
btnSaveLocalGlob->signal_activate().connect([&]() {});
btnSaveGlob->signal_activate().connect([&]() {});
btnSaveLocal->signal_activate().connect([&]() {});
groupsFiltersButton->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::groupsFilters_show));
usersFiltersButton->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::groupsFilters_show));
}
void MainWindow::groupsFilters_show() {
FiltersWindow->show_all();
}
void MainWindow::view_add_columns(Gtk::TreeView &treeView) {
// TODO:
// Не готово
treeView.append_column(_("Name"), m_columns.name);
treeView.append_column_editable(_("Quotas"), m_columns.quotas);
treeView.append_column(_("Size"), m_columns.size);
treeView.append_column(_("Soft limit\n(size)"), m_columns.soft_limit_size);
treeView.append_column(_("Hard limit\n(size)"), m_columns.hard_limit_size);
treeView.append_column(_("Hard limit\n(size) delay"), m_columns.hard_limit_size_delay);
treeView.append_column(_("Hard limit\n(Size) activation\ntime"), m_columns.hard_limit_activ_time);
treeView.append_column(_("Files"), m_columns.files);
treeView.append_column(_("Soft limit\n(files)"), m_columns.soft_limit_files);
treeView.append_column(_("Hard limit\n(files)"), m_columns.hard_limit_files);
treeView.append_column(_("Hard limit\n(files) delay"), m_columns.hard_limit_delay);
treeView.append_column(_("Hard limit\n(files) activation\ntime"), m_columns.hard_limit_files_activ_time);
}
void MainWindow::info_status_app(string stule) {
Glib::RefPtr<Gtk::StyleContext> boxInfo = boxInfoError->get_style_context();
boxInfo->remove_class("boxInfoMessOK");
boxInfo->remove_class("boxInfoMessError");
boxInfo->add_class(stule);
}
void MainWindow::init_dict(string flag_load) {
std::map<std::string, std::string> map_gui_cfg_n;
map_gui_cfg_n[""] = "";
map_gui_cfg = map_gui_cfg_n;
if (flag_load == "global") {
map_global_cfg = map_gui_cfg_n;
}
else if (flag_load == "system") {
map_system_cfg = map_gui_cfg_n;
}
}
bool MainWindow::save_template(string section, string flag_save) {
bool flag_no_save = true;
obj_save.set_data_local(map_system_cfg);
obj_save.set_data_global(map_global_cfg);
obj_save.set_data_gui(map_gui_cfg);
obj_save.set_vec_params(vec_param_names);
obj_save.save(section, flag_save);
vector<string> obj_vec_error = obj_save.get_error();
flag_no_save = obj_save.get_state_save();
return flag_no_save;
}
void MainWindow::wrapper_save_all_cfg() {
this->set_data_cfg();
bool _flag_save_global = this->save_template("boot", "global");;
bool _flag_save_local = this->save_template("boot", "system");
if (_flag_save_global && _flag_save_local) {
this->info_warning_error(5);
}
else {
info_warning_error(4);
}
map_global_cfg = map_gui_cfg;
map_system_cfg = map_gui_cfg;
}
void MainWindow::load_global_cfg() {
this->load_template(&map_global_cfg, "global");
info_warning_error(1);
map_gui_cfg = map_global_cfg;
}
void MainWindow::load_system_cfg() {
this->load_template(&map_system_cfg, "system");
info_warning_error(0);
map_gui_cfg = map_system_cfg;
}
void MainWindow::set_data_cfg() {
// TODO:
// Написать функцию
}
void MainWindow::wrapper_save_global_cfg() {
this->set_data_cfg();
if (this->save_template("boot", "global")) {
this->info_warning_error(5);
}
else {
info_warning_error(3);
}
map_global_cfg = map_gui_cfg;
}
void MainWindow::wrapper_save_local_cfg() {
this->set_data_cfg();
if (this->save_template("boot", "system")) {
this->info_warning_error(5);
}
else {
info_warning_error(2);
}
map_system_cfg = map_gui_cfg;
}
void MainWindow::load_template(map_str_str* map_temp, string str_load) {
this->init_dict(str_load);
string sections;
sections = "boot";
obj_load.set_sections(sections);
*map_temp = obj_load.get_load_data(*map_temp, str_load);
}
void MainWindow::info_warning_error(int mess) {
if (obj_load.get_count_error() > 0 || obj_save.get_count_error() > 0) {
info_status_app("boxInfoMessError");
imgInfo->set_from_icon_name("com.ublinux.ubl-settings-bootloader.warning", Gtk::ICON_SIZE_MENU);
string mess_error = "";
if (mess == 0) {
mess_error = string(_("Local configuration reading error")) + str_cmd_error;
lblWarning->set_text(mess_error);
}
else if (mess == 1) {
mess_error = string(_("Global configuration read error")) + str_cmd_error;
lblWarning->set_text(mess_error);
}
else if (mess == 2) {
mess_error = string(_("Local configuration write error")) + str_cmd_error;
lblWarning->set_text(mess_error);
}
else if (mess == 3) {
mess_error = string(_("Global configuration write error")) + str_cmd_error;
lblWarning->set_text(mess_error);
}
else if (mess == 4) {
mess_error = string(_("Error saved local and global configuration")) + str_cmd_error;
lblWarning->set_text(mess_error);
}
str_cmd_error = "";
obj_load.set_count_error(0);
obj_save.set_count_error(0);
}
else {
info_status_app("boxInfoMessOK");
imgInfo->set_from_icon_name("com.ublinux.ubl-settings-bootloader.checked", Gtk::ICON_SIZE_MENU);
if (mess == 0) {
lblWarning->set_text(_("Local configuration downloaded successfully"));
}
else if (mess == 1) {
lblWarning->set_text(_("Global configuration downloaded successfully"));
}
else if (mess == 2) {
lblWarning->set_text(_("Local configuration successfully written"));
}
else if (mess == 3) {
lblWarning->set_text(_("Global configuration successfully written"));
}
else if (mess == 4) {
lblWarning->set_text(_("Successfully saved local and global configuration"));
}
else if (mess == 5) {
lblWarning->set_text(_("Nothing to save!"));
}
}
}
void help() {
string version = string(_("ubl-settings-quotas version: ")) + version_application + "\n";
cout << version.c_str();
string help;
help = "GTK settings quotas. for UBLinux\n\n"
"Usage: ubl-settings-quotas [OPTIONS...]\n"
"Options:\n"
" -h, --help Show this help\n"
" -V, --version Show package version\n";
cout << gettext(help.c_str());
}