Добавил проверку добавления и удаления квот

pull/13/head
Igor Belitskiy 2 years ago
parent 72c9bfb841
commit 33473a28da

@ -432,6 +432,7 @@ void MainWindow::wrapper_load_system() {
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() {
@ -439,6 +440,7 @@ void MainWindow::wrapper_load_global() {
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() {
@ -463,14 +465,14 @@ void MainWindow::event() {
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));
sigc::bind<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),ProjectQuotasTree, row, list_store_project, obj_tv_g_u_p));
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<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),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<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),groupsQuotasTree, row, list_store_groups, obj_tv_g_u_p));
}
void MainWindow::remove_template(Glib::RefPtr<Gtk::ListStore>* list_store, const Gtk::TreeModel::iterator* iter, bool& flag_validate_del) {
@ -491,7 +493,8 @@ void MainWindow::remove_template(Glib::RefPtr<Gtk::ListStore>* list_store, const
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) {
void MainWindow::set_add_tv_g_u_p(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;
@ -504,6 +507,7 @@ void MainWindow::set_add_tv_g_u_p(Gtk::TreeModel::Row &row, Glib::RefPtr<Gtk::Li
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::mode_switch_quota() {
// Todo: check
@ -519,6 +523,21 @@ 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();

@ -215,7 +215,7 @@ class MainWindow {
void init_tree_view();
void del_columns();
void set_obj_browser(View_open_browser* obj_open_browser);
void 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);
void set_add_tv_g_u_p(Gtk::TreeView* tree_view, Gtk::TreeModel::Row &row, Glib::RefPtr<Gtk::ListStore>& list_store, struct tv_g_u_p obj_tv_g_u_p);
void off_quota_system(Gtk::ComboBoxText* combo_box, string quota_type);
void mode_switch_quota();
void save_quotegroupSaveButton();
@ -236,6 +236,7 @@ class MainWindow {
void wrapper_save_system();
void wrapper_save_global();
void set_obj_view_filters(View_filters* obj_view_filters);
bool check_space(Gtk::TreeView* tree_view);
};
void wrapper_help_show(GtkWidget *self, char* link, gpointer user_data);
void help();

Loading…
Cancel
Save