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

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")
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

@ -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();
}

@ -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<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) {
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<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<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));
btnAddProject->signal_clicked().connect([&]() {this->obj_view_edit_project->show();});
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,
&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_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();

@ -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);
}

@ -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<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:
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);
};

@ -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();
}

@ -3393,6 +3393,68 @@
<property name="step-increment">1</property>
<property name="page-increment">10</property>
</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">
<property name="can-focus">False</property>
<property name="valign">start</property>
@ -3851,7 +3913,7 @@
</packing>
</child>
<child>
<object class="GtkCheckButton">
<object class="GtkCheckButton" id="chbAuto">
<property name="label" translatable="yes">Auto</property>
<property name="visible">True</property>
<property name="can-focus">True</property>

Loading…
Cancel
Save