Начал работу над правкой главного окна

pull/24/head
Igor Belitskiy 2 years ago
parent b99b137f96
commit 9988c4378d

@ -1,5 +1,5 @@
make make
gcc compile/resources.c compile/ubl-cmake.h source/view_check_user_table.c source/view_check_user_table.h source/view_filters.c source/model/vector.c source/model/vector.h source/view_filters.h source/view_temp_u_g_p.c source/view_temp_u_g_p.h source/controler.h source/controler.c source/model/philos_utils.h source/model/philos_utils.c source/model/my_device.h source/model/save.h source/model/save.c source/model/my_device.c source/model/model.h source/model/load.h source/model/load.c source/model/model.c source/ubl-settings-diskquota.c source/ubl-settings-diskquota.h source/ubl-strings.h source/model/ubl-utils.c source/model/ubl-utils.h -o ubl-settings-diskquota `pkg-config --cflags --libs gtk+-3.0 vte-2.91 webkit2gtk-4.0 webkit2gtk-web-extension-4.0` -g gcc compile/resources.c compile/ubl-cmake.h source/view_set_disk.h source/view_set_disk.c source/view_check_user_table.c source/view_check_user_table.h source/view_filters.c source/model/vector.c source/model/vector.h source/view_filters.h source/view_temp_u_g_p.c source/view_temp_u_g_p.h source/controler.h source/controler.c source/model/philos_utils.h source/model/philos_utils.c source/model/my_device.h source/model/save.h source/model/save.c source/model/my_device.c source/model/model.h source/model/load.h source/model/load.c source/model/model.c source/ubl-settings-diskquota.c source/ubl-settings-diskquota.h source/ubl-strings.h source/model/ubl-utils.c source/model/ubl-utils.h -o ubl-settings-diskquota `pkg-config --cflags --libs gtk+-3.0 vte-2.91 webkit2gtk-4.0 webkit2gtk-web-extension-4.0` -g
sudo make install clean sudo make install clean
cd ./terminal-commands cd ./terminal-commands
make make

@ -98,29 +98,6 @@ void wrapper_edit_project_show() {
g_signal_connect(G_OBJECT(get_widget_temp()->btnSaveTempSave),"clicked",G_CALLBACK(entry_project_disk),&i); g_signal_connect(G_OBJECT(get_widget_temp()->btnSaveTempSave),"clicked",G_CALLBACK(entry_project_disk),&i);
} }
void block_spin_time(hotebook* widgets,void (*f)()) {
g_signal_handlers_block_by_func(G_OBJECT(widgets->spinWeeksSize), G_CALLBACK(f), NULL);
g_signal_handlers_block_by_func(G_OBJECT(widgets->spinDaysSize), G_CALLBACK(f), NULL);
g_signal_handlers_block_by_func(G_OBJECT(widgets->spinHoursSize), G_CALLBACK(f), NULL);
g_signal_handlers_block_by_func(G_OBJECT(widgets->spinMinutesSize), G_CALLBACK(f), NULL);
g_signal_handlers_block_by_func(G_OBJECT(widgets->spinWeeksFile), G_CALLBACK(f), NULL);
g_signal_handlers_block_by_func(G_OBJECT(widgets->spinDaysFile), G_CALLBACK(f), NULL);
g_signal_handlers_block_by_func(G_OBJECT(widgets->spinHoursFile), G_CALLBACK(f), NULL);
g_signal_handlers_block_by_func(G_OBJECT(widgets->spinMinutesFile), G_CALLBACK(f), NULL);
}
void unlock_spin_time(hotebook* widgets,void (*f)()) {
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->spinWeeksSize), G_CALLBACK(f), NULL);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->spinDaysSize), G_CALLBACK(f), NULL);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->spinHoursSize), G_CALLBACK(f), NULL);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->spinMinutesSize), G_CALLBACK(f), NULL);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->spinWeeksFile), G_CALLBACK(f), NULL);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->spinDaysFile), G_CALLBACK(f), NULL);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->spinHoursFile), G_CALLBACK(f), NULL);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->spinMinutesFile), G_CALLBACK(f), NULL);
}
void block_tree_view(hotebook* widgets,void (*f)()) { void block_tree_view(hotebook* widgets,void (*f)()) {
g_signal_handlers_block_by_func(G_OBJECT(widgets->tree_view), G_CALLBACK(f), NULL); g_signal_handlers_block_by_func(G_OBJECT(widgets->tree_view), G_CALLBACK(f), NULL);
} }
@ -139,10 +116,8 @@ void block_button_add_edit_del(hotebook* obj_note) {
} }
gtk_widget_set_sensitive(obj_note->btnAdd, flag_block); gtk_widget_set_sensitive(obj_note->btnAdd, flag_block);
gtk_widget_set_sensitive(obj_note->btnDel, flag_block); gtk_widget_set_sensitive(obj_note->btnDel, flag_block);
gtk_widget_set_sensitive(obj_note->boxSpins, flag_block);
gtk_widget_set_sensitive(obj_note->btnEdit, flag_block); gtk_widget_set_sensitive(obj_note->btnEdit, flag_block);
if (index_selected==-1) { if (index_selected==-1) {
gtk_widget_set_sensitive(obj_note->boxSpins, 0);
} }
} }
@ -206,36 +181,10 @@ void entry_project_disk(GtkWidget *self,int* flag_update) {
wrapper_fill_tree_view_generate(&all_config, &cfg_custom_gui); wrapper_fill_tree_view_generate(&all_config, &cfg_custom_gui);
} }
void tree_view_select_user(GtkWidget* self) {
note_selected = 0;
block_tree_view(&cfg_custom_gui.user,tree_view_select_user);
block_spin_time(&cfg_custom_gui.user, wrapper_get_spin_time_gui_user);
tree_view_select(NULL,&all_config.v_user , &cfg_custom_gui.user);
unlock_spin_time(&cfg_custom_gui.user, wrapper_get_spin_time_gui_user);
unlock_tree_view(&cfg_custom_gui.user,tree_view_select_user);
}
void tree_view_select_group(GtkWidget* sel) {
note_selected = 1;
block_tree_view(&cfg_custom_gui.group,tree_view_select_group);
block_spin_time(&cfg_custom_gui.group, wrapper_get_spin_time_gui_group);
tree_view_select(NULL,&all_config.v_group ,&cfg_custom_gui.group);
unlock_spin_time(&cfg_custom_gui.group, wrapper_get_spin_time_gui_group);
unlock_tree_view(&cfg_custom_gui.group,tree_view_select_group);
}
void tree_view_select_project(GtkWidget* self) {
note_selected = 2;
block_tree_view(&cfg_custom_gui.project,tree_view_select_project);
block_spin_time(&cfg_custom_gui.project, wrapper_get_spin_time_gui_project);
tree_view_select(NULL,&all_config.v_project , &cfg_custom_gui.project);
unlock_spin_time(&cfg_custom_gui.project, wrapper_get_spin_time_gui_project);
unlock_tree_view(&cfg_custom_gui.project, wrapper_get_spin_time_gui_project);
}
void tree_view_select(GtkWidget* self, vector* vec_temp, hotebook* widgets) { void tree_view_select(GtkWidget* self, vector* vec_temp, hotebook* widgets) {
if (self) {} if (self) {}
if (vec_temp->vectorList.total > 0) { if (vec_temp->vectorList.total > 0) {
tree_view_edit(&all_config, vec_temp, widgets); wrapper_select_tree_view(widgets);
GtkTreeIter iter; GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(widgets->liststore); GtkTreeModel *model = GTK_TREE_MODEL(widgets->liststore);
GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->tree_view)); GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->tree_view));
@ -243,7 +192,6 @@ void tree_view_select(GtkWidget* self, vector* vec_temp, hotebook* widgets) {
gtk_widget_set_sensitive(widgets->btnAdd, 1); gtk_widget_set_sensitive(widgets->btnAdd, 1);
gtk_widget_set_sensitive(widgets->btnDel, 1); gtk_widget_set_sensitive(widgets->btnDel, 1);
gtk_widget_set_sensitive(widgets->btnEdit, 1); gtk_widget_set_sensitive(widgets->btnEdit, 1);
gtk_widget_set_sensitive(widgets->boxSpins, 1);
} }
else { else {
if (main_config.lock_save_global == 0 || main_config.lock_save_local == 0) { if (main_config.lock_save_global == 0 || main_config.lock_save_local == 0) {
@ -251,78 +199,25 @@ void tree_view_select(GtkWidget* self, vector* vec_temp, hotebook* widgets) {
} }
gtk_widget_set_sensitive(widgets->btnDel, 0); gtk_widget_set_sensitive(widgets->btnDel, 0);
gtk_widget_set_sensitive(widgets->btnEdit, 0); gtk_widget_set_sensitive(widgets->btnEdit, 0);
gtk_widget_set_sensitive(widgets->boxSpins, 0);
} }
} }
else { else {
gtk_widget_set_sensitive(widgets->btnDel, 0); gtk_widget_set_sensitive(widgets->btnDel, 0);
gtk_widget_set_sensitive(widgets->btnEdit, 0); gtk_widget_set_sensitive(widgets->btnEdit, 0);
gtk_widget_set_sensitive(widgets->boxSpins, 0);
} }
if (widgets->note_selected == note_selected && index_selected>= 0) { if (widgets->note_selected == note_selected && index_selected>= 0) {
gtk_widget_set_sensitive(widgets->btnAdd, 1); gtk_widget_set_sensitive(widgets->btnAdd, 1);
gtk_widget_set_sensitive(widgets->btnDel, 1); gtk_widget_set_sensitive(widgets->btnDel, 1);
gtk_widget_set_sensitive(widgets->btnEdit, 1); gtk_widget_set_sensitive(widgets->btnEdit, 1);
gtk_widget_set_sensitive(widgets->boxSpins, 1);
} }
else { else {
gtk_widget_set_sensitive(widgets->btnDel, 0); gtk_widget_set_sensitive(widgets->btnDel, 0);
gtk_widget_set_sensitive(widgets->btnEdit, 0); gtk_widget_set_sensitive(widgets->btnEdit, 0);
gtk_widget_set_sensitive(widgets->boxSpins, 0);
} }
} }
void wrapper_get_spin_time_gui_user() {
if (note_selected == 0) {
block_spin_time(&cfg_custom_gui.user, wrapper_get_spin_time_gui_user);
get_spin_time_gui(&all_config.v_user, &cfg_custom_gui.user);
entry_user_disk(0, 0);
unlock_spin_time(&cfg_custom_gui.user, wrapper_get_spin_time_gui_user);
}
}
void wrapper_get_spin_time_gui_group() {
if (note_selected == 1) {
block_spin_time(&cfg_custom_gui.group, wrapper_get_spin_time_gui_group);
get_spin_time_gui(&all_config.v_group, &cfg_custom_gui.group);
entry_groups_disk(0, 0);
unlock_spin_time(&cfg_custom_gui.group, wrapper_get_spin_time_gui_group);
}
}
void wrapper_get_spin_time_gui_project() {
if (note_selected == 2) {
block_spin_time(&cfg_custom_gui.project, wrapper_get_spin_time_gui_project);
get_spin_time_gui(&all_config.v_project, &cfg_custom_gui.project);
entry_project_disk(0, 0);
unlock_spin_time(&cfg_custom_gui.project, wrapper_get_spin_time_gui_project);
}
}
void get_spin_time_gui(vector* vec_u_g_p, hotebook* widgets) {
if (index_selected != -1) {
config_u_g_p* _config = (config_u_g_p*)vec_u_g_p->pfVectorGet(vec_u_g_p, index_selected);
int spin_week_size = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widgets->spinWeeksSize));
int spin_days_size = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widgets->spinDaysSize));
int spin_hours_size = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widgets->spinHoursSize));
int spin_minutes_size = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widgets->spinMinutesSize));
size_t second_size = spin_week_size*7*24*3600+spin_days_size*24*3600+spin_hours_size*3600+spin_minutes_size*60;
int spin_week_file = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widgets->spinWeeksFile));
int spin_days_file = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widgets->spinDaysFile));
int spin_hours_file = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widgets->spinHoursFile));
int spin_minutes_file = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widgets->spinMinutesFile));
size_t second_file = spin_week_file*7*24*3600+spin_days_file*24*3600+spin_hours_file*3600+spin_minutes_file*60;
set_time_spin(widgets,second_file, second_size);
_config->deferring_size = second_size;
_config->deferring_file = second_file;
vec_u_g_p->pfVectorSet(vec_u_g_p, index_selected, _config);
}
}
void template_remove(vector* vec_temp, hotebook* widgets) { void template_remove(vector* vec_temp, hotebook* widgets) {
int index = wrapper_select_tree_view(widgets); int index = wrapper_select_tree_view(widgets);
if (index!=-1) { if (index!=-1) {
@ -371,13 +266,6 @@ void project_remove() {
template_remove(&all_config.v_project , &cfg_custom_gui.project); template_remove(&all_config.v_project , &cfg_custom_gui.project);
} }
} }
int tree_view_edit(config_all* _all_config, vector* vec_temp, hotebook* widgets) {
int index = wrapper_select_tree_view(widgets);
if (index >= 0) {
config_u_g_p* _config = (config_u_g_p*)vec_temp->pfVectorGet(vec_temp, index);
set_time_spin(widgets,_config->deferring_file, _config->deferring_size);
}
}
int wrapper_select_tree_view(hotebook* widgets) { int wrapper_select_tree_view(hotebook* widgets) {
int index = 0; int index = 0;
@ -390,6 +278,7 @@ int wrapper_select_tree_view(hotebook* widgets) {
index_selected = index; index_selected = index;
} }
else { else {
index_selected = -1;
} }
return index; return index;
} }
@ -444,6 +333,16 @@ void load_global_cfg() {
entry_project_disk(0, 0); entry_project_disk(0, 0);
} }
void wrapper_edit_view_device_show() {
set_view_device_menu("edit");
view_device_show(NULL, glade_path);
}
void wrapper_add_view_device_show() {
set_view_device_menu("add");
view_device_show(NULL, glade_path);
}
void control_event(main_window* _config_main_gui, custom_window* _config_custom_gui) { void control_event(main_window* _config_main_gui, custom_window* _config_custom_gui) {
g_signal_connect(G_OBJECT(_config_main_gui->LoadLocalMenuItem), "activate", G_CALLBACK(load_system_cfg), NULL); g_signal_connect(G_OBJECT(_config_main_gui->LoadLocalMenuItem), "activate", G_CALLBACK(load_system_cfg), NULL);
g_signal_connect(G_OBJECT(_config_main_gui->LoadGlobalMenuItem), "activate", G_CALLBACK(load_global_cfg), NULL); g_signal_connect(G_OBJECT(_config_main_gui->LoadGlobalMenuItem), "activate", G_CALLBACK(load_global_cfg), NULL);
@ -465,39 +364,11 @@ void control_event(main_window* _config_main_gui, custom_window* _config_custom_
g_signal_connect(G_OBJECT(_config_custom_gui->user.comboBox),"changed",G_CALLBACK(wrapper_entry_user_disk), NULL); g_signal_connect(G_OBJECT(_config_custom_gui->user.comboBox),"changed",G_CALLBACK(wrapper_entry_user_disk), NULL);
g_signal_connect(G_OBJECT(_config_custom_gui->group.comboBox),"changed",G_CALLBACK(wrapper_entry_groups_disk), NULL); g_signal_connect(G_OBJECT(_config_custom_gui->group.comboBox),"changed",G_CALLBACK(wrapper_entry_groups_disk), NULL);
g_signal_connect(G_OBJECT(_config_custom_gui->user.tree_view), "cursor-changed", G_CALLBACK(tree_view_select_user), NULL); //g_signal_connect(G_OBJECT(_config_custom_gui->user.tree_view), "cursor-changed", G_CALLBACK(tree_view_select_user), NULL);
g_signal_connect(G_OBJECT(_config_custom_gui->group.tree_view), "cursor-changed", G_CALLBACK(tree_view_select_group), NULL); //g_signal_connect(G_OBJECT(_config_custom_gui->group.tree_view), "cursor-changed", G_CALLBACK(tree_view_select_group), NULL);
g_signal_connect(G_OBJECT(_config_custom_gui->project.tree_view), "cursor-changed", G_CALLBACK(tree_view_select_project), NULL); //g_signal_connect(G_OBJECT(_config_custom_gui->project.tree_view), "cursor-changed", G_CALLBACK(tree_view_select_project), NULL);
g_signal_connect(G_OBJECT(_config_custom_gui->btnEditDevice), "clicked", G_CALLBACK(wrapper_edit_view_device_show), glade_path);
g_signal_connect(G_OBJECT(_config_custom_gui->user.spinWeeksSize), "value-changed", G_CALLBACK(wrapper_get_spin_time_gui_user), NULL); g_signal_connect(G_OBJECT(_config_custom_gui->btnAddDevice), "clicked", G_CALLBACK(wrapper_add_view_device_show), glade_path);
g_signal_connect(G_OBJECT(_config_custom_gui->user.spinDaysSize), "value-changed", G_CALLBACK(wrapper_get_spin_time_gui_user), NULL);
g_signal_connect(G_OBJECT(_config_custom_gui->user.spinHoursSize), "value-changed", G_CALLBACK(wrapper_get_spin_time_gui_user), NULL);
g_signal_connect(G_OBJECT(_config_custom_gui->user.spinMinutesSize), "value-changed", G_CALLBACK(wrapper_get_spin_time_gui_user), NULL);
g_signal_connect(G_OBJECT(_config_custom_gui->user.spinWeeksFile), "value-changed", G_CALLBACK(wrapper_get_spin_time_gui_user), NULL);
g_signal_connect(G_OBJECT(_config_custom_gui->user.spinDaysFile), "value-changed", G_CALLBACK(wrapper_get_spin_time_gui_user), NULL);
g_signal_connect(G_OBJECT(_config_custom_gui->user.spinHoursFile), "value-changed", G_CALLBACK(wrapper_get_spin_time_gui_user), NULL);
g_signal_connect(G_OBJECT(_config_custom_gui->user.spinMinutesFile), "value-changed", G_CALLBACK(wrapper_get_spin_time_gui_user), NULL);
g_signal_connect(G_OBJECT(_config_custom_gui->group.spinWeeksSize), "value-changed", G_CALLBACK(wrapper_get_spin_time_gui_group), NULL);
g_signal_connect(G_OBJECT(_config_custom_gui->group.spinDaysSize), "value-changed", G_CALLBACK(wrapper_get_spin_time_gui_group), NULL);
g_signal_connect(G_OBJECT(_config_custom_gui->group.spinHoursSize), "value-changed", G_CALLBACK(wrapper_get_spin_time_gui_group), NULL);
g_signal_connect(G_OBJECT(_config_custom_gui->group.spinMinutesSize), "value-changed", G_CALLBACK(wrapper_get_spin_time_gui_group), NULL);
g_signal_connect(G_OBJECT(_config_custom_gui->group.spinWeeksFile), "value-changed", G_CALLBACK(wrapper_get_spin_time_gui_group), NULL);
g_signal_connect(G_OBJECT(_config_custom_gui->group.spinDaysFile), "value-changed", G_CALLBACK(wrapper_get_spin_time_gui_group), NULL);
g_signal_connect(G_OBJECT(_config_custom_gui->group.spinHoursFile), "value-changed", G_CALLBACK(wrapper_get_spin_time_gui_group), NULL);
g_signal_connect(G_OBJECT(_config_custom_gui->group.spinMinutesFile), "value-changed", G_CALLBACK(wrapper_get_spin_time_gui_group), NULL);
g_signal_connect(G_OBJECT(_config_custom_gui->project.spinWeeksSize), "value-changed", G_CALLBACK(wrapper_get_spin_time_gui_project), NULL);
g_signal_connect(G_OBJECT(_config_custom_gui->project.spinDaysSize), "value-changed", G_CALLBACK(wrapper_get_spin_time_gui_project), NULL);
g_signal_connect(G_OBJECT(_config_custom_gui->project.spinHoursSize), "value-changed", G_CALLBACK(wrapper_get_spin_time_gui_project), NULL);
g_signal_connect(G_OBJECT(_config_custom_gui->project.spinMinutesSize), "value-changed", G_CALLBACK(wrapper_get_spin_time_gui_project), NULL);
g_signal_connect(G_OBJECT(_config_custom_gui->project.spinWeeksFile), "value-changed", G_CALLBACK(wrapper_get_spin_time_gui_project), NULL);
g_signal_connect(G_OBJECT(_config_custom_gui->project.spinDaysFile), "value-changed", G_CALLBACK(wrapper_get_spin_time_gui_project), NULL);
g_signal_connect(G_OBJECT(_config_custom_gui->project.spinHoursFile), "value-changed", G_CALLBACK(wrapper_get_spin_time_gui_project), NULL);
g_signal_connect(G_OBJECT(_config_custom_gui->project.spinMinutesFile), "value-changed", G_CALLBACK(wrapper_get_spin_time_gui_project), NULL);
g_signal_connect(G_OBJECT(_config_custom_gui->user.cmbSetStatusDisk), "changed", G_CALLBACK(template_set_status_disk), &_config_custom_gui->user);
g_signal_connect(G_OBJECT(_config_custom_gui->group.cmbSetStatusDisk), "changed", G_CALLBACK(template_set_status_disk), &_config_custom_gui->group);
} }

@ -1,6 +1,6 @@
#include "ubl-settings-diskquota.h" #include "ubl-settings-diskquota.h"
#include "ubl-strings.h" #include "ubl-strings.h"
#include "view_set_disk.h"
char *local; char *local;
int main(int argc, char *argv[]); int main(int argc, char *argv[]);

@ -85,21 +85,7 @@ typedef struct {
GtkWidget* btnEdit; GtkWidget* btnEdit;
GtkWidget* btnDel; GtkWidget* btnDel;
GtkWidget* btnFilter; GtkWidget* btnFilter;
GtkWidget* comboBox;
GtkWidget* spinWeeksSize;
GtkWidget* spinDaysSize;
GtkWidget* spinHoursSize;
GtkWidget* spinMinutesSize;
GtkWidget* spinWeeksFile;
GtkWidget* spinDaysFile;
GtkWidget* spinHoursFile;
GtkWidget* spinMinutesFile;
GtkWidget* cmbSetStatusDisk;
GtkWidget* lblSetNameDevice; GtkWidget* lblSetNameDevice;
GtkWidget* boxSpins;
GtkWidget* entryUser;
} hotebook; } hotebook;
typedef struct { typedef struct {
int weeks; int weeks;

@ -1,621 +0,0 @@
#ifndef UBL_SETTINGS_DISKQUOTA_H
#define UBL_SETTINGS_DISKQUOTA_H
#include "ubl-settings-diskquota.h"
string version_application = "1.7";
bool flag_save = false;
bool flag_save_local = false;
bool flag_save_global = false;
bool flag_load_global = false;
bool flag_lock_help = false;
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();
}
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();
this->init_tree_view();
this->init_spin_all();
if (geteuid() == 0) {
this->wrapper_load_system();
this->wrapper_load_global();
this->event();
}
else {
boxFuncs->set_sensitive(false);
btnSave->set_sensitive(false);
btnLoad->set_sensitive(false);
imgInfo->set_from_icon_name(icon_warning, Gtk::ICON_SIZE_MENU);
info_status_app(info_box_error_css);
lblWarning->set_text(program_as_root);
}
}
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() {
generalGroupsSizeWeeksSpi->set_range(0, 52);
generalGroupsSizeWeeksSpi->set_increments(1.0, 1.0);
generalGroupsSizeWeeksSpi->set_value(0);
generalGroupsFileWeeksSpin->set_range(0, 52);
generalGroupsFileWeeksSpin->set_increments(1.0, 1.0);
generalGroupsFileWeeksSpin->set_value(0);
generalUsersSizWeeksSpin->set_range(0, 52);
generalUsersSizWeeksSpin->set_increments(1.0, 1.0);
generalUsersSizWeeksSpin->set_value(0);
generalUsersFileWeeksSpin->set_range(0, 52);
generalUsersFileWeeksSpin->set_increments(1.0, 1.0);
generalUsersFileWeeksSpin->set_value(0);
generalGroupsSizeDaySpin->set_range(0, 31);
generalGroupsSizeDaySpin->set_increments(1.0, 1.0);
generalGroupsSizeDaySpin->set_value(0);
generalGroupsFilesDaySpin->set_range(0, 31);
generalGroupsFilesDaySpin->set_increments(1.0, 1.0);
generalGroupsFilesDaySpin->set_value(0);
generalUsersSizeDaySpin->set_range(0, 31);
generalUsersSizeDaySpin->set_increments(1.0, 1.0);
generalUsersSizeDaySpin->set_value(0);
generalUsersFilesDaySpin->set_range(0, 31);
generalUsersFilesDaySpin->set_increments(1.0, 1.0);
generalUsersFilesDaySpin->set_value(0);
generalGroupsSizeHourSpin->set_range(0, 23);
generalGroupsSizeHourSpin->set_increments(1.0, 1.0);
generalGroupsSizeHourSpin->set_value(0);
generalGroupsFilesHourSpin->set_range(0, 23);
generalGroupsFilesHourSpin->set_increments(1.0, 1.0);
generalGroupsFilesHourSpin->set_value(0);
generalUsersSizeHourSpin->set_range(0, 23);
generalUsersSizeHourSpin->set_increments(1.0, 1.0);
generalUsersSizeHourSpin->set_value(0);
generalUsersFilesHoursSpin->set_range(0, 23);
generalUsersFilesHoursSpin->set_increments(1.0, 1.0);
generalUsersFilesHoursSpin->set_value(0);
generalGroupsSizeMinuteSpin->set_range(0, 59);
generalGroupsSizeMinuteSpin->set_increments(1.0, 1.0);
generalGroupsSizeMinuteSpin->set_value(0);
generalGroupsFilesMinuteSpin->set_range(0, 59);
generalGroupsFilesMinuteSpin->set_increments(1.0, 1.0);
generalGroupsFilesMinuteSpin->set_value(0);
generalUsersSizeMinuteSpin->set_range(0, 59);
generalUsersSizeMinuteSpin->set_increments(1.0, 1.0);
generalUsersSizeMinuteSpin->set_value(0);
generalUsersFilesMinutesSpin->set_range(0, 59);
generalUsersFilesMinutesSpin->set_increments(1.0, 1.0);
generalUsersFilesMinutesSpin->set_value(0);
}
void MainWindow::init_tree_view() {
this->view_add_columns(*usersQuotasTree);
this->view_add_columns(*groupsQuotasTree);
this->view_add_columns(*ProjectQuotasTree);
this->init_tree_view_general();
}
void MainWindow::init_tree_view_general() {
GeneralQuotasTree->append_column_editable(str_status, m_columnsGeneral.status);
GeneralQuotasTree->append_column(str_quota, m_columnsGeneral.type_quotas);
GeneralQuotasTree->append_column(str_device_project, m_columnsGeneral.device);
GeneralQuotasTree->append_column(str_user, m_columnsGeneral.user);
GeneralQuotasTree->append_column(str_group, m_columnsGeneral.group);
GeneralQuotasTree->append_column(str_projects, m_columnsGeneral.projects);
GeneralQuotasTree->append_column(str_tw_soft_limit, m_columnsGeneral.soft_limit_size);
GeneralQuotasTree->append_column(str_tw_severe_limitation, m_columnsGeneral.hard_limit_size);
GeneralQuotasTree->append_column(str_tw_soft_limit_files, m_columnsGeneral.soft_limit_files);
GeneralQuotasTree->append_column(str_tw_severe_limitation_files, m_columnsGeneral.hard_limit_files);
GeneralQuotasTree->append_column(str_tw_general_deferring_size, m_columnsGeneral.deferring_size);
GeneralQuotasTree->append_column(str_tw_general_deferring_files, m_columnsGeneral.deferring_files);
}
void MainWindow::view_add_columns(Gtk::TreeView &treeView) {
treeView.append_column_editable(str_name, m_columns.name);
treeView.append_column_editable(str_quotas, m_columns.quotas);
treeView.append_column(str_size, m_columns.size);
treeView.append_column(str_tw_soft_limit, m_columns.soft_limit_size);
treeView.append_column(str_tw_severe_limitation, m_columns.hard_limit_size);
treeView.append_column(str_tw_deferring_size, m_columns.deferring_size);
treeView.append_column(str_files, m_columns.files);
treeView.append_column(str_tw_soft_limit_files, m_columns.soft_limit_files);
treeView.append_column(str_tw_severe_limitation_files, m_columns.hard_limit_delay);
treeView.append_column(str_tw_deferring_files, m_columns.deferring_files);
}
void MainWindow::lacalization() {
generalTabLabel->set_text(str_general_settings);
GroupsTabLabel->set_text(str_groups);
headerTopic->set_label(name_app);
UsersTabLabel->set_text(str_users);
generalGroupsFilesLabel->set_text(str_excess_files_delay);
generalUsersSizeLabel->set_text(str_excess_size_delay);
generalUsersFilesLabel->set_text(str_excess_files_delay);
lblLoad->set_text(str_load_local);
lblSave->set_text(str_save_local);
groupsDeviceLabel->set_label(str_device);
usersDeviceLabel->set_label(str_device);
headLabel->set_label(str_lb_head);
btnLoadGlob->set_label(load_global);
btnLoadLocal->set_label(load_local);
btnAbout->set_label(str_about_1);
btnSynopsis->set_label(str_help);
btnSaveLocalGlob->set_label(save_all);
btnSaveGlob->set_label(save_global);
btnSaveLocal->set_label(save_local);
ProjectTabLabel->set_label(str_projects);
usersProjectLabel->set_text(str_device);
chbMangSystemFile->set_label(str_quotas_mode);
}
void MainWindow::info_warning_error(int mess, int error_save, int error_load) {
if (error_save > 0 || error_load > 0) {
info_status_app(info_box_error_css);
imgInfo->set_from_icon_name(icon_warning, Gtk::ICON_SIZE_MENU);
string mess_error = "";
if (mess == 0) {
mess_error = string(local_read_error) + str_cmd_error;
lblWarning->set_text(mess_error);
}
else if (mess == 1) {
mess_error = string(global_read_error) + str_cmd_error;
lblWarning->set_text(mess_error);
}
else if (mess == 2) {
mess_error = string(local_write_error) + str_cmd_error;
lblWarning->set_text(mess_error);
}
else if (mess == 3) {
mess_error = string(global_write_error) + str_cmd_error;
lblWarning->set_text(mess_error);
}
else if (mess == 4) {
mess_error = string(error_save_all) + str_cmd_error;
lblWarning->set_text(mess_error);
}
str_cmd_error = "";
}
else {
info_status_app(info_box_ok_css);
imgInfo->set_from_icon_name(icon_checked, Gtk::ICON_SIZE_MENU);
if (mess == 0) {
lblWarning->set_text(local_load_ok);
}
else if (mess == 1) {
lblWarning->set_text(global_load_ok);
}
else if (mess == 2) {
lblWarning->set_text(local_ok_written);
}
else if (mess == 3) {
lblWarning->set_text(global_ok_written);
}
else if (mess == 4) {
lblWarning->set_text(successfully_save_all);
}
else if (mess == 5) {
lblWarning->set_text(nothing_save);
}
}
}
void MainWindow::filling_device_combo_box_template(Gtk::ComboBoxText *combo_box, map_str_str &map_device) {
if (map_device.size() != 0) {
for (const auto &device : map_device) {
combo_box->append(device.first.c_str());
}
combo_box->set_active(0);
}
}
void MainWindow::flag_block_gui() {
if (flag_load_global == true) {
btnLoadGlob->set_sensitive(false);
}
if (flag_save_local == true && flag_save_global == true) {
btnSave->set_sensitive(false);
}
if (flag_save == true) {
btnSave->set_sensitive(false);
}
if (flag_save_local == true) {
btnSaveLocal->set_sensitive(false);
btnSaveLocalGlob->set_sensitive(false);
}
if (flag_save_global == true) {
btnSaveGlob->set_sensitive(false);
btnSaveLocalGlob->set_sensitive(false);
}
if (flag_lock_help == true) {
btnSynopsis->set_sensitive(false);
}
}
/*
void MainWindow::entry_combo_box_temp(Gtk::ComboBoxText *combo_box, Gtk::Label *label) {
string text = combo_box->get_active_text();
if (map_device.find(text) != map_device.end()){
label->set_text(map_device[text]);
}
}
*/
void MainWindow::add_CSS() {
Glib::RefPtr<Gtk::CssProvider> cssProvider = Gtk::CssProvider::create();
cssProvider->load_from_path(path_css);
Glib::RefPtr<Gtk::StyleContext> styleContext = Gtk::StyleContext::create();
Glib::RefPtr<Gdk::Screen> screen = Gdk::Screen::get_default();//get default screen
styleContext->add_provider_for_screen(screen, cssProvider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);//add provider for screen in all application
HeadBackgroundImage->set(path_img_head_background);
Glib::RefPtr<Gtk::StyleContext> headLabel_css = headLabel->get_style_context();
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){
boxButton_css->add_class("bkim_no_plug");
boxSave_css->add_class("bkim_no_plug");
}
headLabel_css->add_class("textHead");
}
void MainWindow::get_builder() {
builder->set_translation_domain(path_app);
builder->get_widget("headerTopic", headerTopic);
builder->get_widget("boxButton", boxButton);
builder->get_widget("boxSave", boxSave);
builder->get_widget("HeadOverlay", HeadOverlay);
builder->get_widget("headerBar", headerBar);
builder->get_widget("boxFuncs", boxFuncs);
builder->get_widget("btnLoad", btnLoad);
builder->get_widget("btnSave", btnSave);
builder->get_widget("HeadBackgroundImage", HeadBackgroundImage);
builder->get_widget("imgInfo", imgInfo);
builder->get_widget("lblWarning", lblWarning);
builder->get_widget("boxInfoError", boxInfoError);
builder->get_widget("imgInfo", imgInfo);
builder->get_widget("generalTabLabel", generalTabLabel);
builder->get_widget("GroupsTabLabel", GroupsTabLabel);
builder->get_widget("UsersTabLabel", UsersTabLabel);
builder->get_widget("generalGroupsFilesLabel", generalGroupsFilesLabel);
builder->get_widget("generalUsersSizeLabel", generalUsersSizeLabel);
builder->get_widget("generalUsersFilesLabel", generalUsersFilesLabel);
builder->get_widget("generalGroupsSizeWeeksLabel", generalGroupsSizeWeeksLabel);
builder->get_widget("generalGroupsFilesWeeksLabel", generalGroupsFilesWeeksLabel);
builder->get_widget("generalUsersSizeWeeksLabel", generalUsersSizeWeeksLabel);
builder->get_widget("generalUsersFilesWeeksLabel", generalUsersFilesWeeksLabel);
builder->get_widget("generalGroupsSizeDaysLabel", generalGroupsSizeDaysLabel);
builder->get_widget("generalGroupsFilesDaysLabel", generalGroupsFilesDaysLabel);
builder->get_widget("generalUsersSizeDaysLabel", generalUsersSizeDaysLabel);
builder->get_widget("generalUsersFilesDaysLabel", generalUsersFilesDaysLabel);
builder->get_widget("generalGroupsSizeHoursLabel", generalGroupsSizeHoursLabel);
builder->get_widget("generalGroupsFilesHoursLabel", generalGroupsFilesHoursLabel);
builder->get_widget("generalUsersSizeHoursLabel", generalUsersSizeHoursLabel);
builder->get_widget("generalUsersFilesHoursLabel", generalUsersFilesHoursLabel);
builder->get_widget("generalGroupsSizeMinutesLabel", generalGroupsSizeMinutesLabel);
builder->get_widget("generalGroupsFilesMinutesLabel", generalGroupsFilesMinutesLabel);
builder->get_widget("generalUsersSizeMinutesLabel", generalUsersSizeMinutesLabel);
builder->get_widget("generalUsersFilesMinutesLabel", generalUsersFilesMinutesLabel);
builder->get_widget("lblLoad", lblLoad);
builder->get_widget("lblSave", lblSave);
builder->get_widget("btnSettings", btnSettings);
builder->get_widget("groupsDeviceLabel", groupsDeviceLabel);
builder->get_widget("usersDeviceLabel", usersDeviceLabel);
builder->get_widget("headLabel", headLabel);
builder->get_widget("btnLoadGlob", btnLoadGlob);
builder->get_widget("btnLoadLocal", btnLoadLocal);
builder->get_widget("btnSynopsis", btnSynopsis);
builder->get_widget("btnAbout", btnAbout);
builder->get_widget("btnSaveLocalGlob", btnSaveLocalGlob);
builder->get_widget("btnSaveGlob", btnSaveGlob);
builder->get_widget("btnSaveLocal", btnSaveLocal);
builder->get_widget("GroupsTabLabel", GroupsTabLabel);
builder->get_widget("groupsQuotasTree", groupsQuotasTree);
builder->get_widget("usersQuotasTree", usersQuotasTree);
builder->get_widget("usersDeviceCombo", usersDeviceCombo);
builder->get_widget("GroupsTabLabel", GroupsTabLabel);
builder->get_widget("generalTabLabel", generalTabLabel);
builder->get_widget("groupsDeviceCombo", groupsDeviceCombo);
builder->get_widget("generalGroupsSizeWeeksSpi", generalGroupsSizeWeeksSpi);
builder->get_widget("generalGroupsFileWeeksSpin", generalGroupsFileWeeksSpin);
builder->get_widget("generalGroupsSizeDaySpin", generalGroupsSizeDaySpin);
builder->get_widget("generalGroupsFilesDaySpin", generalGroupsFilesDaySpin);
builder->get_widget("generalGroupsSizeHourSpin", generalGroupsSizeHourSpin);
builder->get_widget("generalGroupsFilesHourSpin", generalGroupsFilesHourSpin);
builder->get_widget("generalGroupsSizeMinuteSpin", generalGroupsSizeMinuteSpin);
builder->get_widget("generalGroupsFilesMinuteSpin", generalGroupsFilesMinuteSpin);
builder->get_widget("generalUsersSizWeeksSpin", generalUsersSizWeeksSpin);
builder->get_widget("generalUsersFileWeeksSpin", generalUsersFileWeeksSpin);
builder->get_widget("generalUsersSizeDaySpin", generalUsersSizeDaySpin);
builder->get_widget("generalUsersFilesDaySpin", generalUsersFilesDaySpin);
builder->get_widget("generalUsersSizeHourSpin", generalUsersSizeHourSpin);
builder->get_widget("generalUsersFilesHoursSpin", generalUsersFilesHoursSpin);
builder->get_widget("generalUsersSizeMinuteSpin", generalUsersSizeMinuteSpin);
builder->get_widget("generalUsersFilesMinutesSpin", generalUsersFilesMinutesSpin);
builder->get_widget("GeneralQuotasTree", GeneralQuotasTree);
builder->get_widget("ProjectQuotasTree", ProjectQuotasTree);
builder->get_widget("ProjectTabLabel", ProjectTabLabel);
builder->get_widget("usersProjectLabel", usersProjectLabel);
builder->get_widget("btnFilterProject", btnFilterProject);
builder->get_widget("btnFilterUsers", btnFilterUsers);
builder->get_widget("btnFilterGroups", btnFilterGroups);
builder->get_widget("chbMangSystemFile", chbMangSystemFile);
builder->get_widget("btnDelGroups", btnDelGroups);
builder->get_widget("btnDelProject", btnDelProject);
builder->get_widget("btnDelUsers", btnDelUsers);
builder->get_widget("btnAddGroups", btnAddGroups);
builder->get_widget("btnAddUsers", btnAddUsers);
builder->get_widget("btnAddProject", btnAddProject);
builder->get_widget("btnEditProject", btnEditProject);
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();});
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,
&MainWindow::remove_template), &list_store_groups, &iter_groups, flag_validate_del_groups));
btnDelUsers->signal_clicked().connect(
sigc::bind<Glib::RefPtr<Gtk::ListStore>*, const Gtk::TreeModel::iterator*, bool&> (sigc::mem_fun( *this,
&MainWindow::remove_template), &list_store_users, &iter_users, flag_validate_del_users));
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([&]() {this->obj_view_add_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));
btnAddGroups->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_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: : 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("");
}
flag_validate_del = false;
}
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";
}
else {
mode_quota = "ubconfig";
}
}
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();
boxInfo->remove_class(info_box_ok_css);
boxInfo->remove_class(info_box_error_css);
boxInfo->add_class(stule);
}
void MainWindow::init_work_tv_g_u_p() {
// Todo: remove
groupsQuotasTree->remove_all_columns();
ProjectQuotasTree->remove_all_columns();
usersQuotasTree->remove_all_columns();
list_store_groups = Gtk::ListStore::create(m_columns);
list_store_project = Gtk::ListStore::create(m_columns);
list_store_users = Gtk::ListStore::create(m_columns);
groupsQuotasTree->set_model(list_store_groups);
ProjectQuotasTree->set_model(list_store_project);
usersQuotasTree->set_model(list_store_users);
Glib::RefPtr<Gtk::TreeModel> groupsQuotasTreeModel = groupsQuotasTree->get_model();
groupsQuotasTreeModel->signal_row_changed().connect(sigc::bind<Gtk::TreeModel::iterator&, bool&>
(sigc::mem_fun(*this, &MainWindow::remove_line_template), iter_groups, flag_validate_del_groups));
Glib::RefPtr<Gtk::TreeModel> ProjectQuotasTreeModel = ProjectQuotasTree->get_model();
ProjectQuotasTreeModel->signal_row_changed().connect(sigc::bind<Gtk::TreeModel::iterator&, bool&>
(sigc::mem_fun(*this, &MainWindow::remove_line_template), iter_project, flag_validate_del_project));
Glib::RefPtr<Gtk::TreeModel> usersQuotasTreeModel = usersQuotasTree->get_model();
usersQuotasTreeModel->signal_row_changed().connect(sigc::bind<Gtk::TreeModel::iterator&, bool&>
(sigc::mem_fun(*this, &MainWindow::remove_line_template),iter_users, flag_validate_del_users));
this->view_add_columns(*groupsQuotasTree);
this->view_add_columns(*ProjectQuotasTree);
this->view_add_columns(*usersQuotasTree);
}
void MainWindow::remove_line_template(const Gtk::TreeModel::Path&, const Gtk::TreeModel::iterator& iter, Gtk::TreeModel::iterator& iter_del, bool& flag_del) {
iter_del = iter;
flag_del = true;
}
void help() {
string version = string(str_version) + version_application + "\n";
cout << version.c_str();
cout << str_help_h;
}
MainWindow::~MainWindow() {}
#endif
Loading…
Cancel
Save