diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index 041d209..844ac8b 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -30,6 +30,10 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissin -fstack-clash-protection -fcf-protection -g") set(SOURCE_FILES + view/view_edit_project.cc + view/view_edit_project.h + view/view_edit_user_group.h + view/view_edit_user_group.cc view/view_add_user_group.h view/view_add_user_group.cc view/view_edit_user_group.cc diff --git a/source/controller.cc b/source/controller.cc index 8cf9572..f9f37c0 100644 --- a/source/controller.cc +++ b/source/controller.cc @@ -29,6 +29,7 @@ void Controller::settings() { obj_main_window->set_obj_view_filters(&obj_view_filters); obj_main_window->set_obj_view_edit(&obj_view_edit); obj_main_window->set_obj_view_add(&obj_view_add); + obj_main_window->set_obj_view_edit_project(&obj_view_edit_project); obj_main_window->settings(); } diff --git a/source/controller.h b/source/controller.h index a4f4466..ef10985 100644 --- a/source/controller.h +++ b/source/controller.h @@ -8,6 +8,7 @@ #include "view/view_filters.h" #include "view/view_add_user_group.h" #include "view/view_edit_user_group.h" +#include "view/view_edit_project.h" extern int socket_ext_id_I; extern int socket_trd_id_I; @@ -30,6 +31,7 @@ public: View_filters obj_view_filters = View_filters(); View_add_user_group obj_view_add = View_add_user_group(); View_edit_user_group obj_view_edit = View_edit_user_group(); + View_edit_project obj_view_edit_project = View_edit_project(); Controller(BaseObjectType* obj, Glib::RefPtr const& builder); Controller(Glib::RefPtr const& builder); diff --git a/source/view/ubl-settings-diskquota.cc b/source/view/ubl-settings-diskquota.cc index 37f868c..c14bbaa 100755 --- a/source/view/ubl-settings-diskquota.cc +++ b/source/view/ubl-settings-diskquota.cc @@ -47,6 +47,9 @@ void MainWindow::set_obj_view_add(View_add_user_group* 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_edit_project(View_edit_project* obj_view_edit_project) { + this->obj_view_edit_project = obj_view_edit_project; +} void MainWindow::settings() { this->get_builder(); @@ -478,9 +481,7 @@ void MainWindow::event() { btnDelProject->signal_clicked().connect( sigc::bind*, 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&, struct tv_g_u_p> (sigc::mem_fun( *this, - &MainWindow::set_add_tv_g_u_p), str_projects, ProjectQuotasTree, row, list_store_project, obj_tv_g_u_p)); + btnAddProject->signal_clicked().connect([&]() {this->obj_view_edit_project->show();}); btnAddUsers->signal_clicked().connect( sigc::bind&, 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)); diff --git a/source/view/ubl-settings-diskquota.h b/source/view/ubl-settings-diskquota.h index e107f6d..e48dca7 100644 --- a/source/view/ubl-settings-diskquota.h +++ b/source/view/ubl-settings-diskquota.h @@ -11,6 +11,7 @@ #include "view_filters.h" #include "view_add_user_group.h" #include "view_edit_user_group.h" +#include "view_edit_project.h" using namespace std; @@ -172,6 +173,7 @@ class MainWindow { View_edit_user_group* obj_view_edit = NULL; View_filters* obj_view_filters = NULL; View_add_user_group* obj_view_add = NULL; + View_edit_project* obj_view_edit_project = NULL; //Devices::Parted obj_device = Devices::Parted(); //Quotas_sys::Quotas_sys obj_quotas_sys = Quotas_sys::Quotas_sys(); //Quotas_ubconfig::Quotas_ubconfig obj_quotas_ubconfig = Quotas_ubconfig::Quotas_ubconfig(); @@ -245,6 +247,7 @@ class MainWindow { void add_quota_show(string name); void edit_quota_show(string name); void set_obj_view_edit(View_edit_user_group* obj_view_edit); + void set_obj_view_edit_project(View_edit_project* obj_view_edit_project); }; void wrapper_help_show(GtkWidget *self, char* link, gpointer user_data); void help(); diff --git a/source/view/view_edit_project.cc b/source/view/view_edit_project.cc index 2e9c7ff..c7a2a7f 100644 --- a/source/view/view_edit_project.cc +++ b/source/view/view_edit_project.cc @@ -1,52 +1,114 @@ -#include "view_edit_user_group.h" +#include "view_edit_project.h" -View_edit_user_group::View_edit_user_group(/* args */) { +View_edit_project::View_edit_project(/* args */) { builder = Gtk::Builder::create_from_file(path_glade); - this->settings(); + this->setting(); } -View_edit_user_group::~View_edit_user_group() +View_edit_project::~View_edit_project() { } -void View_edit_user_group::setting() { +void View_edit_project::setting() { this->get_builder(); this->lacalization(); - + check_limit(quotegroupSizeSoftLimitCheckProject + ,quotegroupSizeSoftLimitSpinProject + ,quotegroupSizeSoftLimitComboProject); + check_limit(quotegroupSizeHardLimitCheckProject + ,quotegroupSizeHardLimitSpin1 + ,quotegroupSizeHardLimitComboProject); + check_limit(quotegroupFilesSoftLimitCheckProject + ,quotegroupFilesSoftLimitSpinProject + ,quotegroupFilesSoftLimitlabelProject); + check_limit(quotegroupFilesHardLimitCheckProject + ,quotegroupFilesHardLimitSpinProject + ,quotegroupFilesHarLimitLabelProject); this->event(); } -void View_edit_user_group::event() { - +void View_edit_project::event() { + quotegroupSizeSoftLimitCheckProject->signal_toggled().connect([&]() { + check_limit(quotegroupSizeSoftLimitCheckProject + ,quotegroupSizeSoftLimitSpinProject + ,quotegroupSizeSoftLimitComboProject); + }); + quotegroupSizeHardLimitCheckProject->signal_toggled().connect([&]() { + check_limit(quotegroupSizeHardLimitCheckProject + ,quotegroupSizeHardLimitSpin1 + ,quotegroupSizeHardLimitComboProject); + }); + quotegroupFilesSoftLimitCheckProject->signal_toggled().connect([&]() { + check_limit(quotegroupFilesSoftLimitCheckProject + ,quotegroupFilesSoftLimitSpinProject + ,quotegroupFilesSoftLimitlabelProject); + }); + quotegroupFilesHardLimitCheckProject->signal_toggled().connect([&]() { + check_limit(quotegroupFilesHardLimitCheckProject + ,quotegroupFilesHardLimitSpinProject + ,quotegroupFilesHarLimitLabelProject); + }); } -void View_edit_user_group::show() { - +void View_edit_project::show() { + wndQuotasAddProject->show(); } -void View_edit_user_group::get_builder() { - +void View_edit_project::get_builder() { + builder->get_widget("wndQuotasAddProject", wndQuotasAddProject); + builder->get_widget("quotegroupSizeFrameLabelProject", quotegroupSizeFrameLabelProject); + builder->get_widget("quotegroupFilesFrameLabelProject", quotegroupFilesFrameLabelProject); + builder->get_widget("quotegroupSizeCurrentlyLabelProject", quotegroupSizeCurrentlyLabelProject); + builder->get_widget("quotegroupFilesCurrentlyLabelProject", quotegroupFilesCurrentlyLabelProject); + builder->get_widget("quotegroupSizeSoftLimitLabelProject", quotegroupSizeSoftLimitLabelProject); + builder->get_widget("quotegroupFilesSoftLimitLabelProject", quotegroupFilesSoftLimitLabelProject); + builder->get_widget("quoteSizeHardLimitLabelProject", quoteSizeHardLimitLabelProject); + builder->get_widget("quoteFilesHardLimitLabelProject", quoteFilesHardLimitLabelProject); + builder->get_widget("quotegroupFilesSoftLimitlabelProject", quotegroupFilesSoftLimitlabelProject); + builder->get_widget("quotegroupFilesHarLimitLabelProject", quotegroupFilesHarLimitLabelProject); + builder->get_widget("quotegroupCancelButtonAdd", quotegroupCancelButtonAdd); + builder->get_widget("quotegroupSaveButtonAdd", quotegroupSaveButtonAdd); + builder->get_widget("lblDeviceProject", lblDeviceProject); + builder->get_widget("lblStatusQuotaProject", lblStatusQuotaProject); + builder->get_widget("lblCatalogProject", lblCatalogProject); + builder->get_widget("lblProjectId", lblProjectId); + builder->get_widget("lblProjectName", lblProjectName); + builder->get_widget("btnReviewProject", btnReviewProject); + builder->get_widget("btnGenerateProject", btnGenerateProject); + builder->get_widget("chbAuto", chbAuto); + builder->get_widget("entryCatalogProject", entryCatalogProject); + builder->get_widget("entryProjectId", entryProjectId); + builder->get_widget("entryProjectName", entryProjectName); + builder->get_widget("quotegroupSizeSoftLimitCheckProject", quotegroupSizeSoftLimitCheckProject); + builder->get_widget("quotegroupSizeHardLimitCheckProject", quotegroupSizeHardLimitCheckProject); + builder->get_widget("quotegroupFilesSoftLimitCheckProject", quotegroupFilesSoftLimitCheckProject); + builder->get_widget("quotegroupFilesHardLimitCheckProject", quotegroupFilesHardLimitCheckProject); + builder->get_widget("quotegroupSizeSoftLimitSpinProject", quotegroupSizeSoftLimitSpinProject); + builder->get_widget("quotegroupSizeHardLimitSpin1", quotegroupSizeHardLimitSpin1); + builder->get_widget("quotegroupFilesSoftLimitSpinProject", quotegroupFilesSoftLimitSpinProject); + builder->get_widget("quotegroupFilesHardLimitSpinProject", quotegroupFilesHardLimitSpinProject); + builder->get_widget("quotegroupSizeSoftLimitComboProject", quotegroupSizeSoftLimitComboProject); + builder->get_widget("quotegroupSizeHardLimitComboProject", quotegroupSizeHardLimitComboProject); } -void View_edit_user_group::lacalization(); +void View_edit_project::lacalization() { + this->fill_in_pow_memory(quotegroupSizeSoftLimitComboProject); + this->fill_in_pow_memory(quotegroupSizeHardLimitComboProject); +} -void View_edit_user_group::check_limit(Gtk::CheckButton *check_button, Gtk::SpinButton *spin, Gtk::ComboBoxText *combo_box) { +void View_edit_project::check_limit(Gtk::CheckButton *check_button, Gtk::SpinButton *spin, Gtk::ComboBoxText *combo_box) { spin->set_sensitive(check_button->get_active()); combo_box->set_sensitive(check_button->get_active()); } -void View_edit_user_group::check_limit(Gtk::CheckButton *check_button, Gtk::SpinButton *spin, Gtk::Label *combo_box) { +void View_edit_project::check_limit(Gtk::CheckButton *check_button, Gtk::SpinButton *spin, Gtk::Label *combo_box) { spin->set_sensitive(check_button->get_active()); combo_box->set_sensitive(check_button->get_active()); } -void View_edit_user_group::fill_in_pow_memory(Gtk::ComboBoxText *cb_text) { +void View_edit_project::fill_in_pow_memory(Gtk::ComboBoxText *cb_text) { cb_text->append(str_prefix_KB); cb_text->append(str_prefix_MB); cb_text->append(str_prefix_GB); cb_text->append(str_prefix_TB); } - -void View_edit_user_group::set_label_type_quota(string name) { - ->set_text(name); -} \ No newline at end of file diff --git a/source/view/view_edit_project.h b/source/view/view_edit_project.h index 880dc90..5c70640 100644 --- a/source/view/view_edit_project.h +++ b/source/view/view_edit_project.h @@ -1,22 +1,57 @@ -#ifndef VIEW_ADD_USER_GROUP_H -#define VIEW_ADD_USER_GROUP_H +#ifndef VIEW_EDIT_PROJECT_H +#define VIEW_EDIT_PROJECT_H #include "../project_lib.h" #include "../var.h" -class View_edit_user_group +class View_edit_project { private: Glib::RefPtr builder; + Gtk::Window* wndQuotasAddProject; + Gtk::Label* quotegroupSizeFrameLabelProject; + Gtk::Label* quotegroupFilesFrameLabelProject; + Gtk::Label* quotegroupSizeCurrentlyLabelProject; + Gtk::Label* quotegroupFilesCurrentlyLabelProject; + Gtk::Label* quotegroupSizeSoftLimitLabelProject; + Gtk::Label* quotegroupFilesSoftLimitLabelProject; + Gtk::Label* quoteSizeHardLimitLabelProject; + Gtk::Label* quoteFilesHardLimitLabelProject; + Gtk::Label* quotegroupFilesSoftLimitlabelProject; + Gtk::Label* quotegroupFilesHarLimitLabelProject; + Gtk::Label* lblDeviceProject; + Gtk::Label* lblStatusQuotaProject; + Gtk::Label* lblCatalogProject; + Gtk::Label* lblProjectId; + Gtk::Label* lblProjectName; + Gtk::Button* quotegroupCancelButtonAdd; + Gtk::Button* quotegroupSaveButtonAdd; + Gtk::Button* btnReviewProject; + Gtk::Button* btnGenerateProject; + Gtk::Entry* entryCatalogProject; + Gtk::Entry* entryProjectId; + Gtk::Entry* entryProjectName; + Gtk::CheckButton* chbAuto; + Gtk::CheckButton* quotegroupSizeSoftLimitCheckProject; + Gtk::CheckButton* quotegroupSizeHardLimitCheckProject; + Gtk::CheckButton* quotegroupFilesSoftLimitCheckProject; + Gtk::CheckButton* quotegroupFilesHardLimitCheckProject; + Gtk::SpinButton* quotegroupSizeSoftLimitSpinProject; + Gtk::SpinButton* quotegroupSizeHardLimitSpin1; + Gtk::SpinButton* quotegroupFilesSoftLimitSpinProject; + Gtk::SpinButton* quotegroupFilesHardLimitSpinProject; + Gtk::ComboBoxText* quotegroupSizeSoftLimitComboProject; + Gtk::ComboBoxText* quotegroupSizeHardLimitComboProject; + public: - View_edit_user_group(/* args */); - ~View_edit_user_group(); + View_edit_project(/* args */); + ~View_edit_project(); void setting(); + void lacalization(); void event(); void show(); void get_builder(); void check_limit(Gtk::CheckButton *check_button, Gtk::SpinButton *spin, Gtk::ComboBoxText *combo_box); void check_limit(Gtk::CheckButton *check_button, Gtk::SpinButton *spin, Gtk::Label *combo_box); void fill_in_pow_memory(Gtk::ComboBoxText *cb_text); - void set_label_type_quota(string name); }; diff --git a/source/view/view_edit_user_group.cc b/source/view/view_edit_user_group.cc index 87bc1dd..f1fe001 100644 --- a/source/view/view_edit_user_group.cc +++ b/source/view/view_edit_user_group.cc @@ -12,7 +12,18 @@ View_edit_user_group::~View_edit_user_group() void View_edit_user_group::setting() { this->get_builder(); this->lacalization(); - + check_limit(quotegroupSizeSoftLimitCheckUser + ,quotegroupSizeSoftLimitSpinUser + ,quotegroupSizeSoftLimitComboUser); + check_limit(quotegroupSizeHardLimitCheckUser + ,quotegroupSizeHardLimitSpinUser + ,quotegroupSizeHardLimitComboUser); + check_limit(quotegroupFilesSoftLimitCheckUser + ,quotegroupFilesSoftLimitSpinUser + ,quotegroupFilesSoftLimitlabelUser); + check_limit(quotegroupFilesHardLimitCheckUser + ,quotegroupFilesHardLimitSpinUser + ,quotegroupFilesHarLimitLabelUser); this->event(); } diff --git a/ubl-settings-diskquota.glade b/ubl-settings-diskquota.glade index 4529d4b..331b53c 100644 --- a/ubl-settings-diskquota.glade +++ b/ubl-settings-diskquota.glade @@ -3393,6 +3393,68 @@ 1 10 + + False + Please select File + True + center + 500 + 400 + True + com.ublinux.ublexec + dialog + True + True + + + False + vertical + 2 + + + False + end + + + gtk-cancel + True + True + True + True + + + True + True + 0 + + + + + gtk-ok + True + True + True + True + + + True + True + 1 + + + + + False + False + 0 + + + + + + + + False start @@ -3851,7 +3913,7 @@ - + Auto True True