|
|
|
@ -1,38 +1,73 @@
|
|
|
|
|
#ifndef UBL_SETTINGS_DISKQUOTA_H
|
|
|
|
|
#define UBL_SETTINGS_DISKQUOTA_H
|
|
|
|
|
#include "ubl-settings-diskquota.h"
|
|
|
|
|
using namespace std;
|
|
|
|
|
|
|
|
|
|
int socket_ext_id_I = 0;
|
|
|
|
|
int socket_trd_id_I = 0;
|
|
|
|
|
string version_application = "1.6";
|
|
|
|
|
bool flag_save = false;
|
|
|
|
|
bool flag_save_local = false;
|
|
|
|
|
bool flag_save_global = false;
|
|
|
|
|
bool flag_load_global = false;
|
|
|
|
|
bool flag_lock_help = false;
|
|
|
|
|
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> builder, View_open_browser* obj_open_browser, int* socket_ext_id_I, int* socket_trd_id_I) {
|
|
|
|
|
this->builder = builder;
|
|
|
|
|
this->socket_ext_id_I = socket_ext_id_I;
|
|
|
|
|
this->socket_trd_id_I = socket_trd_id_I;
|
|
|
|
|
this->set_obj_browser(obj_open_browser);
|
|
|
|
|
// this->settings();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MainWindow::MainWindow(Glib::RefPtr<Gtk::Builder> const& builder) {
|
|
|
|
|
this->builder = builder;
|
|
|
|
|
this->settings();
|
|
|
|
|
void MainWindow::set_map_gui(map_str_str* map_gui_cfg) {
|
|
|
|
|
this->map_gui_cfg = map_gui_cfg;
|
|
|
|
|
obj_wrapper_load_save->set_map_gui(map_gui_cfg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void MainWindow::set_map_global(map_str_str* map_global_cfg) {
|
|
|
|
|
this->map_global_cfg = map_global_cfg;
|
|
|
|
|
obj_wrapper_load_save->set_map_global(map_global_cfg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void MainWindow::set_map_local(map_str_str* map_system_cfg) {
|
|
|
|
|
this->map_system_cfg = map_system_cfg;
|
|
|
|
|
obj_wrapper_load_save->set_map_local(map_system_cfg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void MainWindow::set_obj_wrapper_load_save(Wrapper_load_save* obj_wrapper_load_save) {
|
|
|
|
|
this->obj_wrapper_load_save = obj_wrapper_load_save;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void MainWindow::set_obj_view_filters(View_filters* obj_view_filters) {
|
|
|
|
|
this->obj_view_filters = obj_view_filters;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void MainWindow::set_obj_view_add(View_add_user_group* obj_view_add) {
|
|
|
|
|
this->obj_view_add = obj_view_add;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void MainWindow::set_obj_view_edit(View_edit_user_group* obj_view_edit) {
|
|
|
|
|
this->obj_view_edit = obj_view_edit;
|
|
|
|
|
}
|
|
|
|
|
void MainWindow::set_obj_view_add_project(View_add_project* obj_view_add_project) {
|
|
|
|
|
this->obj_view_add_project = obj_view_add_project;
|
|
|
|
|
}
|
|
|
|
|
void MainWindow::set_obj_view_edit_project(View_edit_project* obj_view_edit_project) {
|
|
|
|
|
this->obj_view_edit_project = obj_view_edit_project;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void MainWindow::settings() {
|
|
|
|
|
this->get_builder();
|
|
|
|
|
this->lacalization();
|
|
|
|
|
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));
|
|
|
|
|
this->add_CSS();
|
|
|
|
|
this->flag_block_gui();
|
|
|
|
|
//map_device = obj_device.get_parted();
|
|
|
|
|
//this->filling_device_combo_box_template(groupsDeviceCombo, map_device);
|
|
|
|
|
//this->filling_device_combo_box_template(usersDeviceCombo, map_device);
|
|
|
|
|
//this->filling_device_combo_box_template(usersProjectCombo, map_device);
|
|
|
|
|
this->init_tree_view();
|
|
|
|
|
this->init_spin_all();
|
|
|
|
|
if (geteuid() == 0) {
|
|
|
|
|
this->wrapper_load_system();
|
|
|
|
|
this->wrapper_load_global();
|
|
|
|
|
this->event();
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
@ -43,10 +78,14 @@ void MainWindow::settings() {
|
|
|
|
|
info_status_app(info_box_error_css);
|
|
|
|
|
lblWarning->set_text(program_as_root);
|
|
|
|
|
}
|
|
|
|
|
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);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void MainWindow::set_obj_browser(View_open_browser* obj_open_browser) {
|
|
|
|
|
this->obj_open_browser = obj_open_browser;
|
|
|
|
|
obj_open_browser->get_about()->set_version(version_application);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void MainWindow::init_spin_all() {
|
|
|
|
@ -142,22 +181,6 @@ void MainWindow::lacalization() {
|
|
|
|
|
generalGroupsFilesLabel->set_text(str_excess_files_delay);
|
|
|
|
|
generalUsersSizeLabel->set_text(str_excess_size_delay);
|
|
|
|
|
generalUsersFilesLabel->set_text(str_excess_files_delay);
|
|
|
|
|
generalGroupsSizeWeeksLabel->set_text(str_weeks);
|
|
|
|
|
generalGroupsFilesWeeksLabel->set_text(str_weeks);
|
|
|
|
|
generalUsersSizeWeeksLabel->set_text(str_weeks);
|
|
|
|
|
generalUsersFilesWeeksLabel->set_text(str_weeks);
|
|
|
|
|
generalGroupsSizeDaysLabel->set_text(str_days);
|
|
|
|
|
generalGroupsFilesDaysLabel->set_text(str_days);
|
|
|
|
|
generalUsersSizeDaysLabel->set_text(str_days);
|
|
|
|
|
generalUsersFilesDaysLabel->set_text(str_days);
|
|
|
|
|
generalGroupsSizeHoursLabel->set_text(str_hours);
|
|
|
|
|
generalGroupsFilesHoursLabel->set_text(str_hours);
|
|
|
|
|
generalUsersSizeHoursLabel->set_text(str_hours);
|
|
|
|
|
generalUsersFilesHoursLabel->set_text(str_hours);
|
|
|
|
|
generalGroupsSizeMinutesLabel->set_text(str_minutes);
|
|
|
|
|
generalGroupsFilesMinutesLabel->set_text(str_minutes);
|
|
|
|
|
generalUsersSizeMinutesLabel->set_text(str_minutes);
|
|
|
|
|
generalUsersFilesMinutesLabel->set_text(str_minutes);
|
|
|
|
|
lblLoad->set_text(str_load_local);
|
|
|
|
|
lblSave->set_text(str_save_local);
|
|
|
|
|
groupsDeviceLabel->set_label(str_device);
|
|
|
|
@ -279,7 +302,7 @@ void MainWindow::add_CSS() {
|
|
|
|
|
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){
|
|
|
|
|
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");
|
|
|
|
|
}
|
|
|
|
@ -377,19 +400,78 @@ void MainWindow::get_builder() {
|
|
|
|
|
builder->get_widget("btnEditUsers", btnEditUsers);
|
|
|
|
|
builder->get_widget("btnEditGroups", btnEditGroups);
|
|
|
|
|
builder->get_widget("usersProjectCombo", usersProjectCombo);
|
|
|
|
|
builder->get_widget("boxResize", boxResize);
|
|
|
|
|
builder->get_widget("boxGroupsWeeks", boxGroupsWeeks);
|
|
|
|
|
builder->get_widget("boxGroupsDays", boxGroupsDays);
|
|
|
|
|
builder->get_widget("boxGroupsHours", boxGroupsHours);
|
|
|
|
|
builder->get_widget("boxGroupsMinutes", boxGroupsMinutes);
|
|
|
|
|
builder->get_widget("boxUsersWeeks", boxUsersWeeks);
|
|
|
|
|
builder->get_widget("boxUsersDays", boxUsersDays);
|
|
|
|
|
builder->get_widget("boxUsersHours", boxUsersHours);
|
|
|
|
|
builder->get_widget("boxUsersMinutes", boxUsersMinutes);
|
|
|
|
|
builder->get_widget("boxProjectWeeks", boxProjectWeeks);
|
|
|
|
|
builder->get_widget("boxProjectDays", boxProjectDays);
|
|
|
|
|
builder->get_widget("boxProjectHours", boxProjectHours);
|
|
|
|
|
builder->get_widget("boxProjectMinutes", boxProjectMinutes);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void MainWindow::open_browser() {
|
|
|
|
|
obj_open_browser->open_help();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void MainWindow::wrapper_save_system() {
|
|
|
|
|
int id_mess = obj_wrapper_load_save->wrapper_save_system_cfg();
|
|
|
|
|
int error_save = obj_wrapper_load_save->get_error_save();
|
|
|
|
|
int error_load = obj_wrapper_load_save->get_error_load();
|
|
|
|
|
this->info_warning_error(id_mess, error_save, error_load);
|
|
|
|
|
}
|
|
|
|
|
void MainWindow::wrapper_save_global() {
|
|
|
|
|
int id_mess = obj_wrapper_load_save->wrapper_save_global_cfg();
|
|
|
|
|
int error_save = obj_wrapper_load_save->get_error_save();
|
|
|
|
|
int error_load = obj_wrapper_load_save->get_error_load();
|
|
|
|
|
this->info_warning_error(id_mess, error_save, error_load);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void MainWindow::wrapper_save_all() {
|
|
|
|
|
int id_mess = obj_wrapper_load_save->wrapper_save_all_cfg();
|
|
|
|
|
int error_save = obj_wrapper_load_save->get_error_save();
|
|
|
|
|
int error_load = obj_wrapper_load_save->get_error_load();
|
|
|
|
|
this->info_warning_error(id_mess, error_save, error_load);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void MainWindow::wrapper_load_system() {
|
|
|
|
|
int id_mess = obj_wrapper_load_save->load_system_cfg();
|
|
|
|
|
int error_save = obj_wrapper_load_save->get_error_save();
|
|
|
|
|
int error_load = obj_wrapper_load_save->get_error_load();
|
|
|
|
|
this->info_warning_error(id_mess, error_save, error_load);
|
|
|
|
|
this->init_work_tv_g_u_p();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void MainWindow::wrapper_load_global() {
|
|
|
|
|
int id_mess = obj_wrapper_load_save->load_global_cfg();
|
|
|
|
|
int error_save = obj_wrapper_load_save->get_error_save();
|
|
|
|
|
int error_load = obj_wrapper_load_save->get_error_load();
|
|
|
|
|
this->info_warning_error(id_mess, error_save, error_load);
|
|
|
|
|
this->init_work_tv_g_u_p();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void MainWindow::event() {
|
|
|
|
|
boxResize->signal_check_resize().connect(sigc::mem_fun(*this, &MainWindow::resize_widget));
|
|
|
|
|
btnFilterGroups->signal_clicked().connect([&]() {this->filters_show();});
|
|
|
|
|
btnFilterUsers->signal_clicked().connect([&]() {this->filters_show();});
|
|
|
|
|
btnFilterProject->signal_clicked().connect([&]() {this->filters_show();});
|
|
|
|
|
//btnLoadGlob->signal_activate().connect([&]() {this->load_global_cfg();});
|
|
|
|
|
//btnLoadLocal->signal_activate().connect([&]() {this->load_system_cfg();});
|
|
|
|
|
//btnSynopsis->signal_activate().connect([&]() {this->synopsis_show();});
|
|
|
|
|
//btnAbout->signal_activate().connect([&]() {aboutWindows->show();});
|
|
|
|
|
//btnSaveLocalGlob->signal_activate().connect([&]() {this->wrapper_save_all_cfg();});
|
|
|
|
|
//btnSaveGlob->signal_activate().connect([&]() {this->wrapper_save_global_cfg();});
|
|
|
|
|
//btnSaveLocal->signal_activate().connect([&]() {this->wrapper_save_system_cfg();});
|
|
|
|
|
btnSynopsis->signal_activate().connect([&]() {this->open_browser();});
|
|
|
|
|
btnAbout->signal_activate().connect([&]() {obj_open_browser->get_about()->aboutWindows->show();});
|
|
|
|
|
btnSaveLocalGlob->signal_activate().connect([&]() {this->wrapper_save_all();});
|
|
|
|
|
btnSaveGlob->signal_activate().connect([&]() {this->wrapper_save_global();});
|
|
|
|
|
btnSaveLocal->signal_activate().connect([&]() {this->wrapper_save_system();});
|
|
|
|
|
btnLoadGlob->signal_activate().connect([&]() {this->wrapper_load_global();});
|
|
|
|
|
btnLoadLocal->signal_activate().connect([&]() {this->wrapper_load_system();});
|
|
|
|
|
btnEditGroups->signal_clicked().connect(sigc::bind<string> (sigc::mem_fun( *this,
|
|
|
|
|
&MainWindow::edit_quota_show), str_groups));
|
|
|
|
|
btnEditUsers->signal_clicked().connect(sigc::bind<string> (sigc::mem_fun( *this,
|
|
|
|
|
&MainWindow::edit_quota_show), str_users));
|
|
|
|
|
btnEditProject->signal_clicked().connect([&]() {this->edit_quota_project_show();});
|
|
|
|
|
chbMangSystemFile->signal_toggled().connect([&]() {this->mode_switch_quota();});
|
|
|
|
|
btnDelGroups->signal_clicked().connect(
|
|
|
|
|
sigc::bind<Glib::RefPtr<Gtk::ListStore>*, const Gtk::TreeModel::iterator*, bool&> (sigc::mem_fun( *this,
|
|
|
|
@ -400,50 +482,68 @@ void MainWindow::event() {
|
|
|
|
|
btnDelProject->signal_clicked().connect(
|
|
|
|
|
sigc::bind<Glib::RefPtr<Gtk::ListStore>*, const Gtk::TreeModel::iterator*, bool&> (sigc::mem_fun( *this,
|
|
|
|
|
&MainWindow::remove_template), &list_store_project, &iter_project, flag_validate_del_project));
|
|
|
|
|
btnAddProject->signal_clicked().connect(
|
|
|
|
|
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_project, obj_tv_g_u_p));
|
|
|
|
|
btnAddProject->signal_clicked().connect([&]() {this->obj_view_add_project->show();});
|
|
|
|
|
btnAddUsers->signal_clicked().connect(
|
|
|
|
|
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_users, obj_tv_g_u_p));
|
|
|
|
|
sigc::bind<string,Gtk::TreeView*, Gtk::TreeModel::Row&, Glib::RefPtr<Gtk::ListStore>&, struct tv_g_u_p> (sigc::mem_fun( *this,
|
|
|
|
|
&MainWindow::set_add_tv_g_u_p), str_users, usersQuotasTree, row, list_store_users, obj_tv_g_u_p));
|
|
|
|
|
btnAddGroups->signal_clicked().connect(
|
|
|
|
|
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));
|
|
|
|
|
sigc::bind<string,Gtk::TreeView*, Gtk::TreeModel::Row&, Glib::RefPtr<Gtk::ListStore>&, struct tv_g_u_p> (sigc::mem_fun( *this,
|
|
|
|
|
&MainWindow::set_add_tv_g_u_p), str_groups, groupsQuotasTree, row, list_store_groups, obj_tv_g_u_p));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void MainWindow::resize_widget() {
|
|
|
|
|
// boxGroupsWeeks = boxGroupsWeeks(Gtk::ORIENTATION_HORIZONTAL);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void MainWindow::add_quota_show(string name) {
|
|
|
|
|
obj_view_add->set_label_type_quota(name);
|
|
|
|
|
obj_view_add->show();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void MainWindow::edit_quota_show(string name) {
|
|
|
|
|
obj_view_edit->set_label_type_quota(name);
|
|
|
|
|
obj_view_edit->show();
|
|
|
|
|
}
|
|
|
|
|
void MainWindow::edit_quota_project_show() {
|
|
|
|
|
obj_view_edit_project->show();
|
|
|
|
|
}
|
|
|
|
|
void MainWindow::remove_template(Glib::RefPtr<Gtk::ListStore>* list_store, const Gtk::TreeModel::iterator* iter, bool& flag_validate_del) {
|
|
|
|
|
if (flag_validate_del && (*list_store)->iter_is_valid(*(iter))) {
|
|
|
|
|
Gtk::TreeModel::Row row = *(*iter);
|
|
|
|
|
if(row) {
|
|
|
|
|
string name = row[m_columns.name] + "";
|
|
|
|
|
// TODO:
|
|
|
|
|
string key = "GRUB_PASSWORD[" + name + "]";
|
|
|
|
|
map_gui_cfg[key] = "";
|
|
|
|
|
// string name = row[m_columns.name] + "";
|
|
|
|
|
// TODO: : check
|
|
|
|
|
// string key = "GRUB_PASSWORD[" + name + "]";
|
|
|
|
|
// map_gui_cfg[key] = "";
|
|
|
|
|
}
|
|
|
|
|
(*list_store)->erase((*iter));
|
|
|
|
|
flag_validate_del = false;
|
|
|
|
|
info_status_app(info_box_ok_css);
|
|
|
|
|
imgInfo->set_from_icon_name(icon_checked, Gtk::ICON_SIZE_MENU);
|
|
|
|
|
lblWarning->set_text("");
|
|
|
|
|
// lblWarning->set_text("");
|
|
|
|
|
}
|
|
|
|
|
flag_validate_del = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void MainWindow::set_add_tv_g_u_p(Gtk::TreeModel::Row &row, Glib::RefPtr<Gtk::ListStore> list_store, struct tv_g_u_p obj_tv_g_u_p) {
|
|
|
|
|
row = *(list_store->append());
|
|
|
|
|
row[m_columns.name] = obj_tv_g_u_p.name;
|
|
|
|
|
row[m_columns.quotas] = obj_tv_g_u_p.quotas;
|
|
|
|
|
row[m_columns.size] = obj_tv_g_u_p.size;
|
|
|
|
|
row[m_columns.soft_limit_size] = obj_tv_g_u_p.soft_limit_size;
|
|
|
|
|
row[m_columns.hard_limit_size] = obj_tv_g_u_p.hard_limit_size;
|
|
|
|
|
row[m_columns.deferring_size] = obj_tv_g_u_p.deferring_size;
|
|
|
|
|
row[m_columns.files] = obj_tv_g_u_p.files;
|
|
|
|
|
row[m_columns.soft_limit_files] = obj_tv_g_u_p.soft_limit_files;
|
|
|
|
|
row[m_columns.hard_limit_delay] = obj_tv_g_u_p.hard_limit_delay;
|
|
|
|
|
row[m_columns.deferring_files] = obj_tv_g_u_p.deferring_files;
|
|
|
|
|
void MainWindow::set_add_tv_g_u_p(string name, Gtk::TreeView* tree_view, Gtk::TreeModel::Row &row, Glib::RefPtr<Gtk::ListStore>& list_store, struct tv_g_u_p obj_tv_g_u_p) {
|
|
|
|
|
if (this->check_space(tree_view)) {
|
|
|
|
|
row = *(list_store->append());
|
|
|
|
|
row[m_columns.name] = obj_tv_g_u_p.name;
|
|
|
|
|
row[m_columns.quotas] = obj_tv_g_u_p.quotas;
|
|
|
|
|
row[m_columns.size] = obj_tv_g_u_p.size;
|
|
|
|
|
row[m_columns.soft_limit_size] = obj_tv_g_u_p.soft_limit_size;
|
|
|
|
|
row[m_columns.hard_limit_size] = obj_tv_g_u_p.hard_limit_size;
|
|
|
|
|
row[m_columns.deferring_size] = obj_tv_g_u_p.deferring_size;
|
|
|
|
|
row[m_columns.files] = obj_tv_g_u_p.files;
|
|
|
|
|
row[m_columns.soft_limit_files] = obj_tv_g_u_p.soft_limit_files;
|
|
|
|
|
row[m_columns.hard_limit_delay] = obj_tv_g_u_p.hard_limit_delay;
|
|
|
|
|
row[m_columns.deferring_files] = obj_tv_g_u_p.deferring_files;
|
|
|
|
|
this->add_quota_show(name);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void MainWindow::mode_switch_quota() {
|
|
|
|
|
// Todo: check
|
|
|
|
|
if (chbMangSystemFile->get_active()) {
|
|
|
|
|
mode_quota = "filesystem";
|
|
|
|
|
}
|
|
|
|
@ -453,8 +553,24 @@ void MainWindow::mode_switch_quota() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void MainWindow::filters_show() {
|
|
|
|
|
obj_view_filters->show();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool MainWindow::check_space(Gtk::TreeView* tree_view) {
|
|
|
|
|
Glib::RefPtr<Gtk::TreeModel> tree_view_model = tree_view->get_model();
|
|
|
|
|
Gtk::TreeModel::Children children = tree_view_model->children();
|
|
|
|
|
string name = "";
|
|
|
|
|
string quotas = "";
|
|
|
|
|
for(Gtk::TreeModel::iterator iter = children.begin(); iter != children.end(); ++iter) {
|
|
|
|
|
Gtk::TreeModel::Row row = *iter;
|
|
|
|
|
name = row[m_columns.name] + "";
|
|
|
|
|
quotas = row[m_columns.quotas] + "";
|
|
|
|
|
if (name.length() == 0 || quotas.length() == 0) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void MainWindow::info_status_app(string stule) {
|
|
|
|
|
Glib::RefPtr<Gtk::StyleContext> boxInfo = boxInfoError->get_style_context();
|
|
|
|
@ -464,6 +580,7 @@ void MainWindow::info_status_app(string stule) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void MainWindow::init_work_tv_g_u_p() {
|
|
|
|
|
// Todo: remove
|
|
|
|
|
groupsQuotasTree->remove_all_columns();
|
|
|
|
|
ProjectQuotasTree->remove_all_columns();
|
|
|
|
|
usersQuotasTree->remove_all_columns();
|
|
|
|
@ -492,11 +609,13 @@ void MainWindow::remove_line_template(const Gtk::TreeModel::Path&, const Gtk::Tr
|
|
|
|
|
flag_del = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MainWindow::~MainWindow() {}
|
|
|
|
|
|
|
|
|
|
void help() {
|
|
|
|
|
string version = string(str_version) + version_application + "\n";
|
|
|
|
|
cout << version.c_str();
|
|
|
|
|
cout << str_help_h;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MainWindow::~MainWindow() {}
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|