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

pull/13/head
Igor Belitskiy 2 years ago
parent 6454a5c0e7
commit f1546a8fdc

@ -30,6 +30,10 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissin
-fstack-clash-protection -fcf-protection -g") -fstack-clash-protection -fcf-protection -g")
set(SOURCE_FILES 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.h
view/view_add_user_group.cc view/view_add_user_group.cc
view/view_edit_user_group.cc view/view_edit_user_group.cc

@ -29,6 +29,7 @@ void Controller::settings() {
obj_main_window->set_obj_view_filters(&obj_view_filters); 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_edit(&obj_view_edit);
obj_main_window->set_obj_view_add(&obj_view_add); 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(); obj_main_window->settings();
} }

@ -8,6 +8,7 @@
#include "view/view_filters.h" #include "view/view_filters.h"
#include "view/view_add_user_group.h" #include "view/view_add_user_group.h"
#include "view/view_edit_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_ext_id_I;
extern int socket_trd_id_I; extern int socket_trd_id_I;
@ -30,6 +31,7 @@ public:
View_filters obj_view_filters = View_filters(); View_filters obj_view_filters = View_filters();
View_add_user_group obj_view_add = View_add_user_group(); View_add_user_group obj_view_add = View_add_user_group();
View_edit_user_group obj_view_edit = View_edit_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<Gtk::Builder> const& builder); Controller(BaseObjectType* obj, Glib::RefPtr<Gtk::Builder> const& builder);
Controller(Glib::RefPtr<Gtk::Builder> const& builder); Controller(Glib::RefPtr<Gtk::Builder> const& builder);

@ -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) { void MainWindow::set_obj_view_edit(View_edit_user_group* obj_view_edit) {
this->obj_view_edit = 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() { void MainWindow::settings() {
this->get_builder(); this->get_builder();
@ -478,9 +481,7 @@ void MainWindow::event() {
btnDelProject->signal_clicked().connect( btnDelProject->signal_clicked().connect(
sigc::bind<Glib::RefPtr<Gtk::ListStore>*, const Gtk::TreeModel::iterator*, bool&> (sigc::mem_fun( *this, 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)); &MainWindow::remove_template), &list_store_project, &iter_project, flag_validate_del_project));
btnAddProject->signal_clicked().connect( btnAddProject->signal_clicked().connect([&]() {this->obj_view_edit_project->show();});
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_projects, ProjectQuotasTree, row, list_store_project, obj_tv_g_u_p));
btnAddUsers->signal_clicked().connect( btnAddUsers->signal_clicked().connect(
sigc::bind<string,Gtk::TreeView*, Gtk::TreeModel::Row&, Glib::RefPtr<Gtk::ListStore>&, struct tv_g_u_p> (sigc::mem_fun( *this, 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)); &MainWindow::set_add_tv_g_u_p), str_users, usersQuotasTree, row, list_store_users, obj_tv_g_u_p));

@ -11,6 +11,7 @@
#include "view_filters.h" #include "view_filters.h"
#include "view_add_user_group.h" #include "view_add_user_group.h"
#include "view_edit_user_group.h" #include "view_edit_user_group.h"
#include "view_edit_project.h"
using namespace std; using namespace std;
@ -172,6 +173,7 @@ class MainWindow {
View_edit_user_group* obj_view_edit = NULL; View_edit_user_group* obj_view_edit = NULL;
View_filters* obj_view_filters = NULL; View_filters* obj_view_filters = NULL;
View_add_user_group* obj_view_add = NULL; View_add_user_group* obj_view_add = NULL;
View_edit_project* obj_view_edit_project = NULL;
//Devices::Parted obj_device = Devices::Parted(); //Devices::Parted obj_device = Devices::Parted();
//Quotas_sys::Quotas_sys obj_quotas_sys = Quotas_sys::Quotas_sys(); //Quotas_sys::Quotas_sys obj_quotas_sys = Quotas_sys::Quotas_sys();
//Quotas_ubconfig::Quotas_ubconfig obj_quotas_ubconfig = Quotas_ubconfig::Quotas_ubconfig(); //Quotas_ubconfig::Quotas_ubconfig obj_quotas_ubconfig = Quotas_ubconfig::Quotas_ubconfig();
@ -245,6 +247,7 @@ class MainWindow {
void add_quota_show(string name); void add_quota_show(string name);
void edit_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(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 wrapper_help_show(GtkWidget *self, char* link, gpointer user_data);
void help(); void help();

@ -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); 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->get_builder();
this->lacalization(); this->lacalization();
check_limit(quotegroupSizeSoftLimitCheckProject
,quotegroupSizeSoftLimitSpinProject
,quotegroupSizeSoftLimitComboProject);
check_limit(quotegroupSizeHardLimitCheckProject
,quotegroupSizeHardLimitSpin1
,quotegroupSizeHardLimitComboProject);
check_limit(quotegroupFilesSoftLimitCheckProject
,quotegroupFilesSoftLimitSpinProject
,quotegroupFilesSoftLimitlabelProject);
check_limit(quotegroupFilesHardLimitCheckProject
,quotegroupFilesHardLimitSpinProject
,quotegroupFilesHarLimitLabelProject);
this->event(); 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()); spin->set_sensitive(check_button->get_active());
combo_box->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()); spin->set_sensitive(check_button->get_active());
combo_box->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_KB);
cb_text->append(str_prefix_MB); cb_text->append(str_prefix_MB);
cb_text->append(str_prefix_GB); cb_text->append(str_prefix_GB);
cb_text->append(str_prefix_TB); cb_text->append(str_prefix_TB);
} }
void View_edit_user_group::set_label_type_quota(string name) {
->set_text(name);
}

@ -1,22 +1,57 @@
#ifndef VIEW_ADD_USER_GROUP_H #ifndef VIEW_EDIT_PROJECT_H
#define VIEW_ADD_USER_GROUP_H #define VIEW_EDIT_PROJECT_H
#include "../project_lib.h" #include "../project_lib.h"
#include "../var.h" #include "../var.h"
class View_edit_user_group class View_edit_project
{ {
private: private:
Glib::RefPtr<Gtk::Builder> builder; Glib::RefPtr<Gtk::Builder> 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: public:
View_edit_user_group(/* args */); View_edit_project(/* args */);
~View_edit_user_group(); ~View_edit_project();
void setting(); void setting();
void lacalization();
void event(); void event();
void show(); void show();
void get_builder(); 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::ComboBoxText *combo_box);
void check_limit(Gtk::CheckButton *check_button, Gtk::SpinButton *spin, Gtk::Label *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 fill_in_pow_memory(Gtk::ComboBoxText *cb_text);
void set_label_type_quota(string name);
}; };

@ -12,7 +12,18 @@ View_edit_user_group::~View_edit_user_group()
void View_edit_user_group::setting() { void View_edit_user_group::setting() {
this->get_builder(); this->get_builder();
this->lacalization(); this->lacalization();
check_limit(quotegroupSizeSoftLimitCheckUser
,quotegroupSizeSoftLimitSpinUser
,quotegroupSizeSoftLimitComboUser);
check_limit(quotegroupSizeHardLimitCheckUser
,quotegroupSizeHardLimitSpinUser
,quotegroupSizeHardLimitComboUser);
check_limit(quotegroupFilesSoftLimitCheckUser
,quotegroupFilesSoftLimitSpinUser
,quotegroupFilesSoftLimitlabelUser);
check_limit(quotegroupFilesHardLimitCheckUser
,quotegroupFilesHardLimitSpinUser
,quotegroupFilesHarLimitLabelUser);
this->event(); this->event();
} }

@ -3393,6 +3393,68 @@
<property name="step-increment">1</property> <property name="step-increment">1</property>
<property name="page-increment">10</property> <property name="page-increment">10</property>
</object> </object>
<object class="GtkFileChooserDialog" id="wndChooseFileWallpaper">
<property name="can-focus">False</property>
<property name="title" translatable="yes">Please select File</property>
<property name="modal">True</property>
<property name="window-position">center</property>
<property name="default-width">500</property>
<property name="default-height">400</property>
<property name="destroy-with-parent">True</property>
<property name="icon-name">com.ublinux.ublexec</property>
<property name="type-hint">dialog</property>
<property name="skip-taskbar-hint">True</property>
<property name="urgency-hint">True</property>
<child internal-child="vbox">
<object class="GtkBox">
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">2</property>
<child internal-child="action_area">
<object class="GtkButtonBox">
<property name="can-focus">False</property>
<property name="layout-style">end</property>
<child>
<object class="GtkButton" id="btnFilemangerExit">
<property name="label">gtk-cancel</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="use-stock">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="btnFilemangerOk">
<property name="label">gtk-ok</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="use-stock">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<placeholder/>
</child>
</object>
</child>
</object>
<object class="GtkWindow" id="wndFilters"> <object class="GtkWindow" id="wndFilters">
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="valign">start</property> <property name="valign">start</property>
@ -3851,7 +3913,7 @@
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkCheckButton"> <object class="GtkCheckButton" id="chbAuto">
<property name="label" translatable="yes">Auto</property> <property name="label" translatable="yes">Auto</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>

Loading…
Cancel
Save