Версия 1.0 beta

pull/13/head
Igor Belitskiy 2 years ago
parent d04673236f
commit e693a544c6

@ -30,7 +30,6 @@ 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
ubl-settings-diskquota-cm.h
view/ubl-settings-diskquota.h view/ubl-settings-diskquota.h
view/ubl-settings-diskquota.cc view/ubl-settings-diskquota.cc
view/model/ubconfig_quotas.cc view/model/ubconfig_quotas.cc
@ -39,8 +38,6 @@ set(SOURCE_FILES
view/model/system_quotas.cc view/model/system_quotas.cc
view/model/my_device.h view/model/my_device.h
view/model/my_device.cc view/model/my_device.cc
project_lib.h
my_type.h
view/model/save.h view/model/save.h
view/model/save.cc view/model/save.cc
view/model/load.h view/model/load.h
@ -49,11 +46,21 @@ set(SOURCE_FILES
view/model/my_process.cc view/model/my_process.cc
view/model/util.h view/model/util.h
view/model/util.cc view/model/util.cc
view/my_plug.h
view/my_plug.cc
view/ubl-util-standard.h view/ubl-util-standard.h
view/ubl-util-standard.c view/ubl-util-standard.c
main.cc) view/model/wrapper_load_save.cc
view/model/wrapper_load_save.h
ubl-settings-diskquota-cm.h
view/view_open_browser.cc
view/view_open_browser.h
view/view_about.h
view/view_about.cc
controller.cc
controller.h
main.cc
var.h
project_lib.h
my_type.h)
set(LIBRARIES set(LIBRARIES
${GTK_LIBRARIES} ${GTK_LIBRARIES}

@ -1,46 +0,0 @@
#include "controler.h"
Back_Back::Back_Back() {}
void Back_Back::set_mode(string flag_mode) {
this->flag_mode = flag_mode;
}
void Back_Back::set_partition(string partition) {
this->partition = partition;
}
void Back_Back::set_sys_flag(string sys_flag) {
this->sys_flag = sys_flag;
}
bool Back_Back::wrapper_off_quotas(string quotas_type) {
bool flag_status = false;
quotas_type = this->handler_quotas_type(quotas_type);
if (flag_mode == "system") {
string cmd_hw = "";
string cmd_sw = "";
flag_status = obj_quotas_sys.off_quota(partition, cmd_hw, cmd_sw);
}
else if (flag_mode == "ubconfig") {
flag_status = obj_quotas_ubconfig.off_quota(partition, quotas_type, "disable");
}
return flag_status;
}
bool Back_Back::wrapper_on_quotas(string quotas_type) {
bool flag_status = false;
quotas_type = this->handler_quotas_type(quotas_type);
if (flag_mode == "system") {
string cmd_hw = "";
string cmd_sw = "";
flag_status = obj_quotas_sys.on_quota_hw(partition, cmd_hw, cmd_sw);
flag_status = obj_quotas_sys.wrapper_on_quotas(partition, quotas_type);
}
else if (flag_mode == "ubconfig") {
flag_status = obj_quotas_sys.wrapper_on_quotas(partition, quotas_type, "enable");
flag_status = obj_quotas_ubconfig.format_cmd_quotas();
}
return flag_status;
}
string Back_Back::handler_quotas_type(string quotas_type) {
return quotas_type;
}

@ -1,19 +0,0 @@
#include "system_quotas.h"
#include "ubconfig_quotas.h"
class Back_Back{
public:
string flag_mode;
string partition;
string sys_flag;
Quotas_sys::Quotas_sys obj_quotas_sys = Quotas_sys::Quotas_sys();
Quotas_ubconfig::Quotas_ubconfig obj_quotas_ubconfig = Quotas_ubconfig::Quotas_ubconfig();
public:
Back_Back();
void set_mode(string flag_mode);
void set_partition(string partition);
void set_sys_flag(string sys_flag);
bool wrapper_off_quotas(string quotas_type);
string handler_quotas_type(string quotas_type);
bool wrapper_on_quotas(string quotas_type);
};

@ -1,8 +1,29 @@
#ifndef MY_PLUG_H #include "controller.h"
#define MY_PLUG_H
#include "my_plug.h" int socket_ext_id_I = 0;
int socket_trd_id_I = 0;
Controller::Controller(BaseObjectType* obj, Glib::RefPtr<Gtk::Builder> const& builder)
:Gtk::ApplicationWindow(obj), builder{builder} {
this->builder = builder;
this->settings();
}
Controller::Controller(Glib::RefPtr<Gtk::Builder> const& builder) {
this->builder = builder;
this->settings();
}
Controller::~Controller()
{
}
void Controller::settings() {
obj_open_browser->set_obj_about(obj_view_about);
obj_main_window = new MainWindow(builder, obj_open_browser, &socket_ext_id_I, &socket_trd_id_I);
obj_main_window->set_obj_wrapper_load(obj_wrapper_load_save);
obj_open_browser->settings();
}
CmdArgParser::CmdArgParser(const std::string& p_name, const std::string& p_description, const std::string& p_help) CmdArgParser::CmdArgParser(const std::string& p_name, const std::string& p_description, const std::string& p_help)
: Glib::OptionGroup{p_name, p_description, p_help} { : Glib::OptionGroup{p_name, p_description, p_help} {
@ -22,17 +43,17 @@ CmdArgParser::CmdArgParser(const std::string& p_name, const std::string& p_descr
add_entry(socketExtId, socket_ext_id_I); add_entry(socketExtId, socket_ext_id_I);
add_entry(socketTrdId, socket_trd_id_I); add_entry(socketTrdId, socket_trd_id_I);
} }
::Window CmdArgParser::GetSocketID() const{ ::Window CmdArgParser::GetSocketID() const{
return m_socketID; return m_socketID;
} }
SettingsPlug::SettingsPlug(::Window p_socketID, Glib::RefPtr<Gtk::Builder> builder) SettingsPlug::SettingsPlug(::Window p_socketID, Glib::RefPtr<Gtk::Builder> builder)
:Gtk::Plug{p_socketID} { :Gtk::Plug{p_socketID} {
MainWindow* wnd = nullptr; Controller* wnd = nullptr;
builder->get_widget_derived("window", wnd); builder->get_widget_derived("window", wnd);
builder->get_widget("plugBox", plugBox); builder->get_widget("plugBox", plugBox);
plugBox->get_parent()->remove(*plugBox); plugBox->get_parent()->remove(*plugBox);
add(*plugBox); add(*plugBox);
show_all_children(); show_all_children();
} }
#endif

@ -0,0 +1,46 @@
#ifndef CONTROLLER_H
#define CONTROLLER_H
#include "view/view_open_browser.h"
#include "view/view_about.h"
#include "view/ubl-settings-diskquota.h"
#include "view/model/wrapper_load_save.h"
extern int socket_ext_id_I;
extern int socket_trd_id_I;
class Controller : public Gtk::ApplicationWindow
{
private:
Glib::RefPtr<Gtk::Builder> builder;
public:
Controller(/* args */);
~Controller();
void settings();
View_open_browser* obj_open_browser = new View_open_browser();
View_about* obj_view_about = new View_about();
MainWindow* obj_main_window;
Wrapper_load_save *obj_wrapper_load_save = new Wrapper_load_save();
Controller(BaseObjectType* obj, Glib::RefPtr<Gtk::Builder> const& builder);
Controller(Glib::RefPtr<Gtk::Builder> const& builder);
};
class CmdArgParser : public Glib::OptionGroup {
public:
CmdArgParser(const std::string& p_name, const std::string& p_description, const std::string& p_help);
::Window GetSocketID() const;
private:
int m_socketID = 0;
};
class SettingsPlug : public Gtk::Plug{
public:
Gtk::Window *window;
SettingsPlug(::Window p_socketID, Glib::RefPtr<Gtk::Builder> builder);
private:
Gtk::Widget *plugBox;
Gtk::Widget *parent;
};
#endif

@ -1,4 +1,5 @@
#include "view/my_plug.h" #include "controller.h"
#include "var.h"
void pars_flag(int index_start, int argc, char* argv[]); void pars_flag(int index_start, int argc, char* argv[]);
@ -44,14 +45,14 @@ int main(int argc, char** argv) {
auto app = Gtk::Application::create(len_argv, argv, "org.gtkmm.example.plug"); auto app = Gtk::Application::create(len_argv, argv, "org.gtkmm.example.plug");
auto builder = Gtk::Builder::create_from_file(path_glade); auto builder = Gtk::Builder::create_from_file(path_glade);
pars_flag(1, argc, argv); pars_flag(1, argc, argv);
MainWindow* wnd = nullptr; Controller* wnd = nullptr;
builder->get_widget_derived("MainWindow", wnd); builder->get_widget_derived("MainWindow", wnd);
auto r = app->run(*wnd); auto r = app->run(*wnd);
delete wnd; delete wnd;
return r; return r;
} }
} }
void pars_flag(int index_start, int argc, char* argv[]) { void pars_flag(int index_start, int argc, char* argv[]) {
string str_argv = ""; string str_argv = "";
for (int i = index_start; i<argc; i++){ for (int i = index_start; i<argc; i++){

@ -22,6 +22,6 @@
#include <libintl.h> #include <libintl.h>
#include <glibmm/i18n.h> #include <glibmm/i18n.h>
#include <map> #include <map>
#include "ubl-settings-diskquota-cm.h" #include "ubl-settings-diskquota-cm.h"
#endif #endif

@ -0,0 +1,161 @@
#ifndef VAE_H
#define VAE_H
#include "project_lib.h"
#define name_app _("ubl-settings-diskquota")
#define configuring_system_boot _("Configuring system boot parameters")
#define system_boot _("System boot")
#define str_about _("About ubl-settings-diskquota")
#define command_line_parameters _("Command line parameters:")
#define load_default _("Load default:")
#define seconds _("seconds")
#define download_menu _("Download menu")
#define terminal_for_input _("Terminal for input")
#define terminal_for_output _("Terminal for output")
#define boot_selection_menu_timer _("Boot selection menu timer")
#define str_help _("Help")
#define str_about_1 _("About")
#define str_save_local _("Save")
#define str_load_local _("Load")
#define save_all _("Save in global and local configuration")
#define save_local _("Save in local configuration")
#define save_global _("Save in global configuration")
#define load_global _("Load global configuration")
#define load_local _("Load local configuration")
#define read_online _("Read online")
#define cancel _("Cancel")
#define always_redirect _("Always redirect")
#define boot_screen_display_mode _("Boot screen display mode:")
#define no_loading_animation _("No loading animation, full log")
#define boot_menu_user_name _("Boot menu user name:")
#define boot_menu_user_password _("Boot menu user password:")
#define last_successful_upload _("Last successful upload")
#define read_documentation_web _("Would you like to read documentation in the Web?")
#define redirected_documentation _("You will be redirected to documentation site, where user help pages are ""translated and supported by community.")
#define local_read_error _("Local configuration reading error")
#define global_read_error _("Global configuration read error")
#define local_write_error _("Local configuration write error")
#define global_write_error _("Global configuration write error")
#define error_save_all _("Error saved local and global configuration")
#define local_load_ok _("Local configuration downloaded successfully")
#define global_load_ok _("Global configuration downloaded successfully")
#define local_ok_written _("Local configuration successfully written")
#define global_ok_written _("Global configuration successfully written")
#define successfully_save_all _("Successfully saved local and global configuration")
#define nothing_save _("Nothing to save!")
#define program_as_root _("The program must be run as root")
#define str_weeks _("weeks")
#define str_days _("days")
#define str_hours _("hours")
#define str_minutes _("minutes")
#define str_device _("Device:")
#define str_users _("Users")
#define str_groups _("Groups")
#define str_files _("files")
#define str_hard_limit _("Hard limit")
#define str_file_system _("File system:")
#define str_name _("Name")
#define str_size _("Size")
#define str_quotas_mode _("Direct control of the file system")
#define str_lb_head _("Configuration of disk quotas parameters for system groups and users")
#define str_soft_limit _("Soft limit")
#define str_currently_using _("Currently using:")
#define str_currently_using_space _("Currently using: ")
#define str_filters _("Filters")
#define str_quotas _("Quotas")
#define str_help_h _("GTK settings disk quota for UBLinux\n" \
"\n" \
"Usage: ubl-settings-diskquota [OPTIONS...]\n" \
"Options:\n" \
" -h, --help\t Show this help\n" \
" -V, --version\t Show package version\n" \
" --lock-help Lock utility help\n" \
" --lock-save Lock saving local and global configuration\n" \
" --lock-save-local Lock save global configuration\n" \
" --lock-save-global Lock load global configuration\n" \
" --lock-load-global Lock load global configuration\n")
#define str_user _("User")
#define str_group _("Group")
#define str_projects _("Projects")
#define str_user_1 _("User:")
#define str_group_1 _("Group:")
#define str_project_1 _("Projects:")
#define str_device_project _("Device\nProject")
#define str_quota _("Quota type")
#define str_status _("Status")
#define str_excess_size_delay _("Excess size delay period")
#define str_excess_files_delay _("Excess files delay period")
#define str_disk_quotas_device _("Disk quotas for this device:")
#define str_user_quotas_device _("User quotas for this device: ")
#define str_soft_limit_size _("Soft limit (size)")
#define str_tw_soft_limit _("Soft limit\n(size)")
#define str_hard_limit_size _("Hard limit (size)")
#define str_deferring_hard_limit_size _("Deferring a hard limit (size)")
#define str_hard_activation_size _("Hard limit activation time (size)")
#define str_hard_limit_time _("Hard limit (file) activation time")
#define str_group_quotas_device _("Group quotas for this device:")
#define str_general_settings _("General settings")
#define str_tw_severe_limitation _("Severe\nlimitation\n(size)")
#define str_tw_general_deferring_size _("Deferring\n(size)")
#define str_tw_general_deferring_files _("Deferring\n(files)")
#define str_tw_deferring_size _("Deferring\na hard\nlimit\n(files)")
#define str_tw_deferring_files _("Deferring\na hard\nlimit\n(files)")
#define str_tw_soft_limit_files _("Soft limit\n(files)")
#define str_tw_severe_limitation_files _("Severe\nlimitation\n(files)")
#define str_soft_restriction_files _("Soft Restriction (files)")
#define str_severe_limitation_files _("Severe limitation (files)")
#define str_deferring_limit_files _("Deferring a hard limit (files)")
#define info_box_ok_css "boxInfoMessOK"
#define info_box_error_css "boxInfoMessError"
#define icon_checked "com.ublinux.ubl-settings-diskquota.checked"
#define icon_warning "com.ublinux.ubl-settings-diskquota.warning"
#define str_version _("ubl-settings-diskquota version: ")
#define path_app "/usr/bin/"
#define path_glade "/usr/share/ubl-settings-diskquota/ui/ubl-settings-diskquota.glade"
#define path_css "/usr/share/ubl-settings-diskquota/css/ubl-settings-diskquota.css"
#define app_name "ubl-settings-diskquota"
#define path_resources "/usr/share/ubl-settings-diskquota"
#define path_img_head_background "/usr/share/ubl-settings-diskquota/images/logo-background.png"
#define no_recognized _("Argument not recognized\n")
#define str_device _("Device:")
#define str_quota_status _("Quota use status:")
#define str_size _("Size")
#define str_files _("files")
#define str_currently_using _("Currently using:")
#define str_soft_limit _("Soft limit")
#define str_hard_limit _("Hard limit")
#define str_hard_limit _("Hard limit")
#define str_prefix_KB _("Kb")
#define str_prefix_MB _("Mb")
#define str_prefix_GB _("Gb")
#define str_prefix_TB _("Tb")
#define const_link_doc "https://wiki.ublinux.com/ru/Программное_обеспечениерограммы_и_утилиты/Все/ubl-settings-diskquota"
#define cmd_xdg "xdg-open "
#define cmd_execute "su -l %s -c \" DISPLAY=$DISPLAY %s \""
#define str_name _("Name")
#define str_size _("Size")
#define str_filters _("Filters")
#define str_quotas _("Quotas")
#define str_soft_limit_size _("Soft limit (size)")
#define str_hard_limit_size _("Hard limit (size)")
#define str_hard_limit_size_delay _("Hard limit (size) delay")
#define str_soft_limit_files _("Soft limit (files)")
#define copyright _("Copyright © UBSoft LLC, 2022 - ")
#define str_setting_user _("Setting user quotas")
#define website _("https://wiki.ublinux.com")
#define project_Home_page _("Project Home Page")
#endif

@ -2,36 +2,46 @@
wrapper_load::wrapper_load(/* args */) { Wrapper_load_save::Wrapper_load_save(/* args */) {
obj_quotas_sys.set_map_gui(map_gui_cfg); //obj_quotas_sys.set_map_gui(map_gui_cfg);
obj_quotas_ubconfig.set_map_gui(map_gui_cfg); //obj_quotas_ubconfig.set_map_gui(map_gui_cfg);
} }
wrapper_load::~wrapper_load() Wrapper_load_save::~Wrapper_load_save()
{ {
} }
void wrapper_load::load_global_cfg() { void Wrapper_load_save::set_map_gui(map_str_str &map_gui_cfg) {
this->map_gui_cfg = map_gui_cfg;
}
void Wrapper_load_save::set_map_global(map_str_str &map_global_cfg) {
this->map_global_cfg = map_global_cfg;
}
void Wrapper_load_save::set_map_local(map_str_str &map_system_cfg) {
this->map_system_cfg = map_system_cfg;
}
void Wrapper_load_save::set_vec_key(vector<string> vec_param_names) {
this->vec_param_names = vec_param_names;
}
bool Wrapper_load_save::load_global_cfg() {
this->load_template(&map_global_cfg, global_load); this->load_template(&map_global_cfg, global_load);
info_warning_error(1);
map_gui_cfg = map_global_cfg; map_gui_cfg = map_global_cfg;
return 1;
} }
void wrapper_load::load_system_cfg() { bool Wrapper_load_save::load_system_cfg() {
this->load_template(&map_system_cfg, system_load); this->load_template(&map_system_cfg, system_load);
info_warning_error(0);
map_gui_cfg = map_system_cfg; map_gui_cfg = map_system_cfg;
} return 0;
void wrapper_load::set_void_work_tv_g_u_p(void (*init_work_tv_g_u_p)()) {
this->init_work_tv_g_u_p = init_work_tv_g_u_p;
}
void wrapper_load::set_void_info_warning_error(void (*info_warning_error)(int, int, int)) {
this->info_warning_error = info_warning_error;
} }
void wrapper_load::load_template(map_str_str* map_temp, string cmd) { void Wrapper_load_save::load_template(map_str_str* map_temp, string cmd) {
this->init_work_tv_g_u_p();
if (cmd.find("system") != string::npos) { if (cmd.find("system") != string::npos) {
this->init_dict("system"); this->init_dict("system");
} }
@ -41,54 +51,58 @@ void wrapper_load::load_template(map_str_str* map_temp, string cmd) {
*map_temp = obj_load.get_load_data(*map_temp, cmd); *map_temp = obj_load.get_load_data(*map_temp, cmd);
} }
void wrapper_load::wrapper_save_global_cfg() { bool Wrapper_load_save::wrapper_save_global_cfg() {
this->set_data_cfg(); this->set_data_cfg();
if (this->save_template("boot", "global")) { if (this->save_template("boot", "global")) {
this->info_warning_error(5); map_global_cfg = map_gui_cfg;
return 5;
} }
else { else {
info_warning_error(3);
}
map_global_cfg = map_gui_cfg; map_global_cfg = map_gui_cfg;
return 3;
}
} }
void wrapper_load::wrapper_save_system_cfg() { bool Wrapper_load_save::wrapper_save_system_cfg() {
this->set_data_cfg(); this->set_data_cfg();
if (this->save_template("boot", "system")) { if (this->save_template("boot", "system")) {
this->info_warning_error(5); map_system_cfg = map_gui_cfg;
return 5;
} }
else { else {
info_warning_error(2);
}
map_system_cfg = map_gui_cfg; map_system_cfg = map_gui_cfg;
return 2;
}
} }
void wrapper_load::wrapper_save_all_cfg() { bool Wrapper_load_save::wrapper_save_all_cfg() {
this->set_data_cfg(); this->set_data_cfg();
bool _flag_save_global = this->save_template("boot", "global");; bool _flag_save_global = this->save_template("boot", "global");;
bool _flag_save_local = this->save_template("boot", "system"); bool _flag_save_local = this->save_template("boot", "system");
if (_flag_save_global && _flag_save_local) { if (_flag_save_global && _flag_save_local) {
this->info_warning_error(5, ); map_global_cfg = map_gui_cfg;
map_system_cfg = map_gui_cfg;
return 5;
} }
else { else {
info_warning_error(4);
}
map_global_cfg = map_gui_cfg; map_global_cfg = map_gui_cfg;
map_system_cfg = map_gui_cfg; map_system_cfg = map_gui_cfg;
return 4;
} }
void wrapper_load::wrapper_info_warning_error(int mess) {
this->info_warning_error(mess, obj_load.get_count_error(), obj_save.get_count_error());
obj_load.set_count_error(0);
obj_save.set_count_error(0);
} }
int Wrapper_load_save::get_error_load() {
return obj_load.get_count_error();
}
int Wrapper_load_save::get_error_save() {
return obj_save.get_count_error();
}
bool wrapper_load::save_template(string section, string flag_save) { bool Wrapper_load_save::save_template(string section, string flag_save) {
bool flag_no_save = true; bool flag_no_save = true;
obj_save.set_data_local(map_system_cfg); obj_save.set_data_local(map_system_cfg);
obj_save.set_data_global(map_global_cfg); obj_save.set_data_global(map_global_cfg);
@ -100,7 +114,7 @@ bool wrapper_load::save_template(string section, string flag_save) {
return flag_no_save; return flag_no_save;
} }
void wrapper_load::init_dict(string flag_load) { void Wrapper_load_save::init_dict(string flag_load) {
std::map<std::string, std::string> map_gui_cfg_n; std::map<std::string, std::string> map_gui_cfg_n;
map_gui_cfg_n[""] = ""; map_gui_cfg_n[""] = "";
@ -113,7 +127,7 @@ void wrapper_load::init_dict(string flag_load) {
} }
} }
void wrapper_load::set_data_cfg() { void Wrapper_load_save::set_data_cfg() {
// TODO: // TODO:
// Написать функцию // Написать функцию
} }

@ -1,5 +1,5 @@
#ifndef WRAPPER_LOAD_H #ifndef WRAPPER_LOAD_SAVE_H
#define WRAPPER_LOAD_H #define WRAPPER_LOAD_SAVE_H
#include "../../my_type.h" #include "../../my_type.h"
#include "../../project_lib.h" #include "../../project_lib.h"
#include "load.h" #include "load.h"
@ -17,33 +17,34 @@
class wrapper_load { class Wrapper_load_save {
private: private:
string str_cmd_error; string str_cmd_error;
void (*init_work_tv_g_u_p)();
void (*info_warning_error)(int, int, int)
private: private:
map_str_str map_gui_cfg; map_str_str map_gui_cfg;
map_str_str map_global_cfg; map_str_str map_global_cfg;
map_str_str map_system_cfg; map_str_str map_system_cfg;
vector<string> vec_param_names;
My_Process::My_Process_system obj_process_system = My_Process::My_Process_system(); My_Process::My_Process_system obj_process_system = My_Process::My_Process_system();
My_Process::My_Process_call obj_process_call = My_Process::My_Process_call(); My_Process::My_Process_call obj_process_call = My_Process::My_Process_call();
Lib_save::Save obj_save = Lib_save::Save(); Lib_save::Save obj_save = Lib_save::Save();
Lib_Load::Load obj_load = Lib_Load::Load(); Lib_Load::Load obj_load = Lib_Load::Load();
public: public:
wrapper_load(/* args */); Wrapper_load_save(/* args */);
~wrapper_load(); ~Wrapper_load_save();
void load_global_cfg(); bool load_global_cfg();
void load_system_cfg(); bool load_system_cfg();
void wrapper_save_system_cfg(); bool wrapper_save_system_cfg();
void wrapper_save_global_cfg(); bool wrapper_save_global_cfg();
void wrapper_save_all_cfg(); bool wrapper_save_all_cfg();
void wrapper_info_warning_error(int mess); int get_error_load();
void set_void_work_tv_g_u_p(void (*init_work_tv_g_u_p)()); int get_error_save();
void set_void_info_warning_error(void (*info_warning_error)(int, int, int)); void set_map_gui(map_str_str &map_gui_cfg);
void set_map_global(map_str_str &map_global_cfg);
void set_map_local(map_str_str &map_system_cfg);
void set_vec_key(vector<string> vec_param_names);
private: private:
void load_template(map_str_str* map_temp, string cmd); void load_template(map_str_str* map_temp, string cmd);
void info_warning_error(int mess);
void init_dict(string flag_load); void init_dict(string flag_load);
void set_data_cfg(); void set_data_cfg();
bool save_template(string section, string flag_save); bool save_template(string section, string flag_save);

@ -1,21 +0,0 @@
#include "../project_lib.h"
#include "ubl-settings-diskquota.h"
class CmdArgParser : public Glib::OptionGroup {
public:
CmdArgParser(const std::string& p_name, const std::string& p_description, const std::string& p_help);
::Window GetSocketID() const;
private:
int m_socketID = 0;
};
class SettingsPlug : public Gtk::Plug{
public:
Gtk::Window *window;
SettingsPlug(::Window p_socketID, Glib::RefPtr<Gtk::Builder> builder);
private:
Gtk::Widget *plugBox;
Gtk::Widget *parent;
};

@ -1,8 +1,7 @@
#ifndef UBL_SETTINGS_DISKQUOTA_H
#define UBL_SETTINGS_DISKQUOTA_H
#include "ubl-settings-diskquota.h" #include "ubl-settings-diskquota.h"
using namespace std;
int socket_ext_id_I = 0;
int socket_trd_id_I = 0;
bool flag_save = false; bool flag_save = false;
bool flag_save_local = false; bool flag_save_local = false;
bool flag_save_global = false; bool flag_save_global = false;
@ -10,14 +9,11 @@ bool flag_load_global = false;
bool flag_lock_help = false; bool flag_lock_help = false;
string version_application = "1.0"; string version_application = "1.0";
MainWindow::MainWindow(BaseObjectType* obj, Glib::RefPtr<Gtk::Builder> const& builder) MainWindow::MainWindow(Glib::RefPtr<Gtk::Builder> builder, View_open_browser* obj_open_browser, int* socket_ext_id_I, int* socket_trd_id_I) {
: Gtk::ApplicationWindow(obj), builder{builder} {
this->builder = builder;
this->settings();
}
MainWindow::MainWindow(Glib::RefPtr<Gtk::Builder> const& builder) {
this->builder = builder; 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(); this->settings();
} }
@ -26,10 +22,6 @@ void MainWindow::settings() {
this->lacalization(); this->lacalization();
this->add_CSS(); this->add_CSS();
this->flag_block_gui(); this->flag_block_gui();
//map_device = obj_device.get_parted();
//this->filling_device_combo_box_template(groupsDeviceCombo, map_device);
//this->filling_device_combo_box_template(usersDeviceCombo, map_device);
//this->filling_device_combo_box_template(usersProjectCombo, map_device);
this->init_tree_view(); this->init_tree_view();
this->init_spin_all(); this->init_spin_all();
if (geteuid() == 0) { if (geteuid() == 0) {
@ -46,7 +38,16 @@ void MainWindow::settings() {
Gtk::Widget *boxWidget; Gtk::Widget *boxWidget;
builder->get_widget("boxColor", boxWidget); builder->get_widget("boxColor", boxWidget);
HeadOverlay->add_overlay(*boxWidget); HeadOverlay->add_overlay(*boxWidget);
ubl_make_plugs(boxSave, boxButton, socket_ext_id_I, socket_trd_id_I); ubl_make_plugs(boxSave, boxButton, (*socket_ext_id_I), (*socket_trd_id_I));
}
void MainWindow::set_obj_wrapper_load(Wrapper_load_save* obj_wrapper_load) {
this->obj_wrapper_load = obj_wrapper_load;
}
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() { void MainWindow::init_spin_all() {
@ -279,7 +280,7 @@ void MainWindow::add_CSS() {
Glib::RefPtr<Gtk::StyleContext> boxButton_css = boxButton->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> boxSave_css = boxSave->get_style_context();
Glib::RefPtr<Gtk::StyleContext> headerBar_css = headerBar->get_style_context(); Glib::RefPtr<Gtk::StyleContext> headerBar_css = headerBar->get_style_context();
if (socket_trd_id_I == 0 && socket_ext_id_I == 0){ if ((*socket_trd_id_I) == 0 && (*socket_ext_id_I) == 0){
boxButton_css->add_class("bkim_no_plug"); boxButton_css->add_class("bkim_no_plug");
boxSave_css->add_class("bkim_no_plug"); boxSave_css->add_class("bkim_no_plug");
} }
@ -379,14 +380,18 @@ void MainWindow::get_builder() {
builder->get_widget("usersProjectCombo", usersProjectCombo); builder->get_widget("usersProjectCombo", usersProjectCombo);
} }
void MainWindow::open_browser() {
obj_open_browser->open_help();
}
void MainWindow::event() { void MainWindow::event() {
btnFilterGroups->signal_clicked().connect([&]() {this->filters_show();}); btnFilterGroups->signal_clicked().connect([&]() {this->filters_show();});
btnFilterUsers->signal_clicked().connect([&]() {this->filters_show();}); btnFilterUsers->signal_clicked().connect([&]() {this->filters_show();});
btnFilterProject->signal_clicked().connect([&]() {this->filters_show();}); btnFilterProject->signal_clicked().connect([&]() {this->filters_show();});
//btnLoadGlob->signal_activate().connect([&]() {this->load_global_cfg();}); //btnLoadGlob->signal_activate().connect([&]() {this->load_global_cfg();});
//btnLoadLocal->signal_activate().connect([&]() {this->load_system_cfg();}); //btnLoadLocal->signal_activate().connect([&]() {this->load_system_cfg();});
//btnSynopsis->signal_activate().connect([&]() {this->synopsis_show();}); btnSynopsis->signal_activate().connect([&]() {this->open_browser();});
//btnAbout->signal_activate().connect([&]() {aboutWindows->show();}); btnAbout->signal_activate().connect([&]() {obj_open_browser->get_about()->aboutWindows->show();});
//btnSaveLocalGlob->signal_activate().connect([&]() {this->wrapper_save_all_cfg();}); //btnSaveLocalGlob->signal_activate().connect([&]() {this->wrapper_save_all_cfg();});
//btnSaveGlob->signal_activate().connect([&]() {this->wrapper_save_global_cfg();}); //btnSaveGlob->signal_activate().connect([&]() {this->wrapper_save_global_cfg();});
//btnSaveLocal->signal_activate().connect([&]() {this->wrapper_save_system_cfg();}); //btnSaveLocal->signal_activate().connect([&]() {this->wrapper_save_system_cfg();});
@ -416,7 +421,7 @@ void MainWindow::remove_template(Glib::RefPtr<Gtk::ListStore>* list_store, const
Gtk::TreeModel::Row row = *(*iter); Gtk::TreeModel::Row row = *(*iter);
if(row) { if(row) {
string name = row[m_columns.name] + ""; string name = row[m_columns.name] + "";
// TODO: // TODO: : check
string key = "GRUB_PASSWORD[" + name + "]"; string key = "GRUB_PASSWORD[" + name + "]";
map_gui_cfg[key] = ""; map_gui_cfg[key] = "";
} }
@ -444,6 +449,7 @@ void MainWindow::set_add_tv_g_u_p(Gtk::TreeModel::Row &row, Glib::RefPtr<Gtk::Li
} }
void MainWindow::mode_switch_quota() { void MainWindow::mode_switch_quota() {
// Todo: check
if (chbMangSystemFile->get_active()) { if (chbMangSystemFile->get_active()) {
mode_quota = "filesystem"; mode_quota = "filesystem";
} }
@ -464,6 +470,7 @@ void MainWindow::info_status_app(string stule) {
} }
void MainWindow::init_work_tv_g_u_p() { void MainWindow::init_work_tv_g_u_p() {
// Todo: remove
groupsQuotasTree->remove_all_columns(); groupsQuotasTree->remove_all_columns();
ProjectQuotasTree->remove_all_columns(); ProjectQuotasTree->remove_all_columns();
usersQuotasTree->remove_all_columns(); usersQuotasTree->remove_all_columns();
@ -492,11 +499,13 @@ void MainWindow::remove_line_template(const Gtk::TreeModel::Path&, const Gtk::Tr
flag_del = true; flag_del = true;
} }
MainWindow::~MainWindow() {}
void help() { void help() {
string version = string(str_version) + version_application + "\n"; string version = string(str_version) + version_application + "\n";
cout << version.c_str(); cout << version.c_str();
cout << str_help_h; cout << str_help_h;
} }
MainWindow::~MainWindow() {}
#endif

@ -1,146 +1,27 @@
#ifndef UBL_SETTINGS_QUOTAS_H #ifndef UBL_SETTINGS_QUOTAS_H
#define UBL_SETTINGS_QUOTAS_H #define UBL_SETTINGS_QUOTAS_H
#include <dlfcn.h> #include <dlfcn.h>
#include "view_open_browser.h"
#include "../project_lib.h" #include "../project_lib.h"
#include "../my_type.h" #include "../my_type.h"
#include "ubl-util-standard.c" #include "ubl-util-standard.c"
#ifdef WEBKIT_FOUND #include "../var.h"
#include <webkit2/webkit2.h> #include "model/wrapper_load_save.h"
#endif
#define name_app _("ubl-settings-diskquota")
#define configuring_system_boot _("Configuring system boot parameters")
#define system_boot _("System boot")
#define str_about _("About ubl-settings-diskquota")
#define command_line_parameters _("Command line parameters:")
#define load_default _("Load default:")
#define seconds _("seconds")
#define download_menu _("Download menu")
#define terminal_for_input _("Terminal for input")
#define terminal_for_output _("Terminal for output")
#define boot_selection_menu_timer _("Boot selection menu timer")
#define str_help _("Help")
#define str_about_1 _("About")
#define str_save_local _("Save")
#define str_load_local _("Load")
#define save_all _("Save in global and local configuration")
#define save_local _("Save in local configuration")
#define save_global _("Save in global configuration")
#define load_global _("Load global configuration")
#define load_local _("Load local configuration")
#define read_online _("Read online")
#define cancel _("Cancel")
#define always_redirect _("Always redirect")
#define boot_screen_display_mode _("Boot screen display mode:")
#define no_loading_animation _("No loading animation, full log")
#define boot_menu_user_name _("Boot menu user name:")
#define boot_menu_user_password _("Boot menu user password:")
#define last_successful_upload _("Last successful upload")
#define read_documentation_web _("Would you like to read documentation in the Web?")
#define redirected_documentation _("You will be redirected to documentation site, where user help pages are ""translated and supported by community.")
#define local_read_error _("Local configuration reading error")
#define global_read_error _("Global configuration read error")
#define local_write_error _("Local configuration write error")
#define global_write_error _("Global configuration write error")
#define error_save_all _("Error saved local and global configuration")
#define local_load_ok _("Local configuration downloaded successfully")
#define global_load_ok _("Global configuration downloaded successfully")
#define local_ok_written _("Local configuration successfully written")
#define global_ok_written _("Global configuration successfully written")
#define successfully_save_all _("Successfully saved local and global configuration")
#define nothing_save _("Nothing to save!")
#define program_as_root _("The program must be run as root")
#define str_weeks _("weeks")
#define str_days _("days")
#define str_hours _("hours")
#define str_minutes _("minutes")
#define str_device _("Device:")
#define str_users _("Users")
#define str_groups _("Groups")
#define str_files _("files")
#define str_hard_limit _("Hard limit")
#define str_file_system _("File system:")
#define str_name _("Name")
#define str_size _("Size")
#define str_quotas_mode _("Direct control of the file system")
#define str_lb_head _("Configuration of disk quotas parameters for system groups and users")
#define str_soft_limit _("Soft limit")
#define str_currently_using _("Currently using:")
#define str_currently_using_space _("Currently using: ")
#define str_filters _("Filters")
#define str_quotas _("Quotas")
#define str_help_h _("GTK settings disk quota for UBLinux\n" \
"\n" \
"Usage: ubl-settings-diskquota [OPTIONS...]\n" \
"Options:\n" \
" -h, --help\t Show this help\n" \
" -V, --version\t Show package version\n" \
" --lock-help Lock utility help\n" \
" --lock-save Lock saving local and global configuration\n" \
" --lock-save-local Lock save global configuration\n" \
" --lock-save-global Lock load global configuration\n" \
" --lock-load-global Lock load global configuration\n")
#define str_version _("ubl-settings-diskquota version: ")
#define str_user _("User")
#define str_group _("Group")
#define str_projects _("Projects")
#define str_user_1 _("User:")
#define str_group_1 _("Group:")
#define str_project_1 _("Projects:")
#define str_device_project _("Device\nProject")
#define str_quota _("Quota type")
#define str_status _("Status")
#define str_excess_size_delay _("Excess size delay period")
#define str_excess_files_delay _("Excess files delay period")
#define str_disk_quotas_device _("Disk quotas for this device:")
#define str_user_quotas_device _("User quotas for this device: ")
#define str_soft_limit_size _("Soft limit (size)")
#define str_tw_soft_limit _("Soft limit\n(size)")
#define str_hard_limit_size _("Hard limit (size)")
#define str_deferring_hard_limit_size _("Deferring a hard limit (size)")
#define str_hard_activation_size _("Hard limit activation time (size)")
#define str_hard_limit_time _("Hard limit (file) activation time")
#define str_group_quotas_device _("Group quotas for this device:")
#define str_general_settings _("General settings")
#define str_tw_severe_limitation _("Severe\nlimitation\n(size)")
#define str_tw_general_deferring_size _("Deferring\n(size)")
#define str_tw_general_deferring_files _("Deferring\n(files)")
#define str_tw_deferring_size _("Deferring\na hard\nlimit\n(files)")
#define str_tw_deferring_files _("Deferring\na hard\nlimit\n(files)")
#define str_tw_soft_limit_files _("Soft limit\n(files)")
#define str_tw_severe_limitation_files _("Severe\nlimitation\n(files)")
#define str_soft_restriction_files _("Soft Restriction (files)")
#define str_severe_limitation_files _("Severe limitation (files)")
#define str_deferring_limit_files _("Deferring a hard limit (files)")
#define info_box_ok_css "boxInfoMessOK"
#define info_box_error_css "boxInfoMessError"
#define icon_checked "com.ublinux.ubl-settings-diskquota.checked"
#define icon_warning "com.ublinux.ubl-settings-diskquota.warning"
#define path_app "/usr/bin/"
#define path_glade "/usr/share/ubl-settings-diskquota/ui/ubl-settings-diskquota.glade"
#define path_css "/usr/share/ubl-settings-diskquota/css/ubl-settings-diskquota.css"
#define app_name "ubl-settings-diskquota"
#define path_resources "/usr/share/ubl-settings-diskquota"
#define path_img_head_background "/usr/share/ubl-settings-diskquota/images/logo-background.png"
#define no_recognized _("Argument not recognized\n")
using namespace std; using namespace std;
extern string version_application; extern string version_application;
extern bool flag_save; extern bool flag_save;
extern bool flag_save_local; extern bool flag_save_local;
extern bool flag_save_global; extern bool flag_save_global;
extern bool flag_load_global; extern bool flag_load_global;
extern bool flag_lock_help; extern bool flag_lock_help;
extern int socket_ext_id_I;
extern int socket_trd_id_I;
class MainWindow : public Gtk::ApplicationWindow {
class MainWindow {
public: public:
class ModelColumns : public Gtk::TreeModel::ColumnRecord { class ModelColumns : public Gtk::TreeModel::ColumnRecord {
public: public:
@ -284,6 +165,7 @@ class MainWindow : public Gtk::ApplicationWindow {
map_str_str map_gui_cfg; map_str_str map_gui_cfg;
map_str_str map_global_cfg; map_str_str map_global_cfg;
map_str_str map_system_cfg; map_str_str map_system_cfg;
Wrapper_load_save* obj_wrapper_load = 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();
@ -304,10 +186,13 @@ class MainWindow : public Gtk::ApplicationWindow {
bool flag_validate_del_users = false; bool flag_validate_del_users = false;
bool flag_validate_del_project = false; bool flag_validate_del_project = false;
Gtk::TreeModel::Row row; Gtk::TreeModel::Row row;
int* socket_ext_id_I = NULL;
int* socket_trd_id_I = NULL;
View_open_browser* obj_open_browser;
const struct tv_g_u_p obj_tv_g_u_p {"", "", "", "", "", "", "", "", "",""}; const struct tv_g_u_p obj_tv_g_u_p {"", "", "", "", "", "", "", "", "",""};
public: public:
MainWindow(BaseObjectType* obj, Glib::RefPtr<Gtk::Builder> const& builder); // MainWindow(BaseObjectType* obj, Glib::RefPtr<Gtk::Builder> const& builder);
MainWindow(Glib::RefPtr<Gtk::Builder> const& builder); MainWindow(Glib::RefPtr<Gtk::Builder> builder, View_open_browser* obj_open_browser, int* socket_ext_id_I, int* socket_trd_id_I);
~MainWindow(); ~MainWindow();
void settings(); void settings();
void flag_block_gui(); void flag_block_gui();
@ -315,6 +200,7 @@ class MainWindow : public Gtk::ApplicationWindow {
void add_CSS(); void add_CSS();
void get_builder(); void get_builder();
void event(); void event();
void open_browser();
void info_warning_error(int mess, int error_save, int error_load); void info_warning_error(int mess, int error_save, int error_load);
void init_work_tv_g_u_p(); void init_work_tv_g_u_p();
void remove_line_template(const Gtk::TreeModel::Path&, const Gtk::TreeModel::iterator& iter, Gtk::TreeModel::iterator& iter_del, bool& flag_del); void remove_line_template(const Gtk::TreeModel::Path&, const Gtk::TreeModel::iterator& iter, Gtk::TreeModel::iterator& iter_del, bool& flag_del);
@ -323,8 +209,10 @@ class MainWindow : public Gtk::ApplicationWindow {
void entry_combo_box_temp(Gtk::ComboBoxText *combo_box, Gtk::Label *label); void entry_combo_box_temp(Gtk::ComboBoxText *combo_box, Gtk::Label *label);
void info_status_app(string stule); void info_status_app(string stule);
void filters_show(); void filters_show();
void set_obj_wrapper_load(Wrapper_load_save* obj_wrapper_load);
void init_tree_view(); void init_tree_view();
void del_columns(); void del_columns();
void set_obj_browser(View_open_browser* obj_open_browser);
void set_add_tv_g_u_p(Gtk::TreeModel::Row &row, Glib::RefPtr<Gtk::ListStore> list_store, struct tv_g_u_p obj_tv_g_u_p); void set_add_tv_g_u_p(Gtk::TreeModel::Row &row, Glib::RefPtr<Gtk::ListStore> list_store, struct tv_g_u_p obj_tv_g_u_p);
void off_quota_system(Gtk::ComboBoxText* combo_box, string quota_type); void off_quota_system(Gtk::ComboBoxText* combo_box, string quota_type);
void mode_switch_quota(); void mode_switch_quota();
@ -338,6 +226,6 @@ class MainWindow : public Gtk::ApplicationWindow {
void format_cmd_quotas_ubconfig(struct struct_quotas& _struct_quota); void format_cmd_quotas_ubconfig(struct struct_quotas& _struct_quota);
struct partition_cmd wrapper_settings_quotas(); struct partition_cmd wrapper_settings_quotas();
}; };
void wrapper_help_show(GtkWidget *self, char* link, gpointer user_data);
void help(); void help();
#endif #endif

@ -2,15 +2,15 @@
view_about::view_about(/* args */) { View_about::View_about() {
builder = Gtk::Builder::create_from_file(path_glade); builder = Gtk::Builder::create_from_file(path_glade);
this->settings(); this->settings();
} }
view_about::~view_about() { View_about::~View_about() {
} }
void view_about::lacalization() { void View_about::lacalization() {
time_t now = time(0); time_t now = time(0);
tm *ltm = localtime(&now); tm *ltm = localtime(&now);
unsigned int year = 1900 + ltm->tm_year; unsigned int year = 1900 + ltm->tm_year;
@ -23,29 +23,25 @@ void view_about::lacalization() {
headerAboutTopic->set_label(_(app_name)); headerAboutTopic->set_label(_(app_name));
} }
void view_about::set_name(string app_name) { void View_about::set_version(string version_application) {
app_name = app_name;
}
void view_about::set_version(string version_application) {
version_application = version_application; version_application = version_application;
} }
void view_about::show() { void View_about::show() {
aboutWindows->show(); aboutWindows->show();
} }
void view_about::get_builder() { void View_about::get_builder() {
builder->get_widget("btnBoxAboutDialog", btnBoxAboutDialog); builder->get_widget("btnBoxAboutDialog", btnBoxAboutDialog);
builder->get_widget("aboutWindows", aboutWindows); builder->get_widget("aboutWindows", aboutWindows);
builder->get_widget("headerAboutTopic", headerAboutTopic); builder->get_widget("headerAboutTopic", headerAboutTopic);
} }
void view_about::settings() { void View_about::settings() {
this->get_builder(); this->get_builder();
this->lacalization(); this->lacalization();
btnBoxAboutDialog->set_visible(false); btnBoxAboutDialog->set_visible(false);
} }
void view_filters::set_path_glade(string path_glade) { View_about* View_about::get_self() {
this->path_glade = path_glade; return this;
} }

@ -1,32 +1,29 @@
#ifndef VIEW_ABOUT_H #ifndef VIEW_ABOUT_H
#define VIEW_ABOUT_H #define VIEW_ABOUT_H
#include "../project_lib.h" #include "../project_lib.h"
#define copyright _("Copyright © UBSoft LLC, 2022 - ") #include "model/util.h"
#define str_setting_user _("Setting user quotas") #include "../var.h"
#define website _("https://wiki.ublinux.com")
#define project_Home_page _("Project Home Page") class View_about
class view_about
{ {
private: private:
string path_glade;
string version_application; string version_application;
string app_name;
private: private:
Glib::RefPtr<Gtk::Builder> const& builder; Glib::RefPtr<Gtk::Builder> builder;
Gtk::AboutDialog *aboutWindows;
Gtk::Label *headerAboutTopic; Gtk::Label *headerAboutTopic;
Gtk::ButtonBox *btnBoxAboutDialog; Gtk::ButtonBox *btnBoxAboutDialog;
public: public:
view_about(/* args */); Gtk::AboutDialog *aboutWindows;
~view_about(); public:
View_about();
~View_about();
void lacalization(); void lacalization();
void event(); void event();
View_about* get_self();
void get_builder(); void get_builder();
void settings(); void settings();
void show(); void show();
void set_path_glade(string path_glade); void set_path_glade(string str_path_glade);
void set_name(string app_name);
void set_version(string version_application); void set_version(string version_application);
}; };
#endif #endif

@ -1,15 +1,15 @@
#include "view_filters.h" #include "View_filters.h"
view_filters::view_filters(/* args */){ View_filters::View_filters(/* args */){
builder = Gtk::Builder::create_from_file(path_glade); builder = Gtk::Builder::create_from_file(path_glade);
this->settings(); this->settings();
} }
view_filters::~view_filters() View_filters::~View_filters()
{ {
} }
void view_filters::settings() { void View_filters::settings() {
this->get_builder(); this->get_builder();
this->lacalization(); this->lacalization();
this->set_map_flag(chbFilterName); this->set_map_flag(chbFilterName);
@ -25,11 +25,11 @@ void view_filters::settings() {
this->event(); this->event();
} }
void view_filters::set_path_glade(string path_glade) { void View_filters::set_path_glade(string path_glade) {
this->path_glade = path_glade; this->path_glade = path_glade;
} }
void view_filters::get_builder() { void View_filters::get_builder() {
builder->get_widget("wndFilters", wndFilters); builder->get_widget("wndFilters", wndFilters);
builder->get_widget("chbFilterName", chbFilterName); builder->get_widget("chbFilterName", chbFilterName);
builder->get_widget("chbFilterQuotas", chbFilterQuotas); builder->get_widget("chbFilterQuotas", chbFilterQuotas);
@ -47,12 +47,12 @@ void view_filters::get_builder() {
lblFiltersHead->set_label(str_filters); lblFiltersHead->set_label(str_filters);
} }
void view_filters::show() { void View_filters::show() {
this->set_map_flag_false(); this->set_map_flag_false();
wndFilters->show(); wndFilters->show();
} }
void view_filters::lacalization() { void View_filters::lacalization() {
chbFilterName->set_label(str_name); chbFilterName->set_label(str_name);
chbFilterQuotas->set_label(str_quotas); chbFilterQuotas->set_label(str_quotas);
chbFilterSize->set_label(str_size); chbFilterSize->set_label(str_size);
@ -65,7 +65,7 @@ void view_filters::lacalization() {
chbFilterHardLimitFileDelay->set_label(str_deferring_limit_files); chbFilterHardLimitFileDelay->set_label(str_deferring_limit_files);
} }
void view_filters::event() { void View_filters::event() {
chbFilterName->signal_toggled().connect( chbFilterName->signal_toggled().connect(
sigc::bind<Gtk::CheckButton*> (sigc::mem_fun(*this, sigc::bind<Gtk::CheckButton*> (sigc::mem_fun(*this,
&MainWindow::set_map_flag), chbFilterName)); &MainWindow::set_map_flag), chbFilterName));
@ -102,23 +102,23 @@ void view_filters::event() {
&MainWindow::cancel)); &MainWindow::cancel));
} }
void view_filters::set_map_flag(Gtk::CheckButton* check_button) { void View_filters::set_map_flag(Gtk::CheckButton* check_button) {
map_filters_flag[check_button->get_label()] = check_button->get_active(); map_filters_flag[check_button->get_label()] = check_button->get_active();
} }
void view_filters::save() { void View_filters::save() {
wndFilters->hide(); wndFilters->hide();
} }
void view_filters::cancel() { void View_filters::cancel() {
wndFilters->hide(); wndFilters->hide();
} }
map<string, bool> view_filters::get_filters() { map<string, bool> View_filters::get_filters() {
return map_filters_flag; return map_filters_flag;
} }
void view_filters::set_map_flag_false() { void View_filters::set_map_flag_false() {
for (auto& [key: value]: map_filters_flag) { for (auto& [key: value]: map_filters_flag) {
map_filters_flag[key] = false; map_filters_flag[key] = false;
} }

@ -1,20 +1,11 @@
#ifndef VIEW_FILTERS_H #ifndef VIEW_FILTERS_H
#define VIEW_FILTERS_H #define VIEW_FILTERS_H
#include "../project_lib.h" #include "../project_lib.h"
#include "../var.h"
#define str_name _("Name") class View_filters
#define str_size _("Size")
#define str_filters _("Filters")
#define str_quotas _("Quotas")
#define str_soft_limit_size _("Soft limit (size)")
#define str_hard_limit_size _("Hard limit (size)")
#define str_hard_limit_size_delay _("Hard limit (size) delay")
#define str_soft_limit_files _("Soft limit (files)")
#define str_hard_limit_size_delay _("Hard limit (files) delay")
class view_filters
{ {
private: private:
string path_glade;
std::map<string, bool> map_filters_flag; std::map<string, bool> map_filters_flag;
private: private:
Glib::RefPtr<Gtk::Builder> const& builder; Glib::RefPtr<Gtk::Builder> const& builder;
@ -34,14 +25,14 @@ private:
Gtk::Button *btnFiltersSave; Gtk::Button *btnFiltersSave;
Gtk::Button *btnFiltersCancel; Gtk::Button *btnFiltersCancel;
public: public:
view_filters(/* args */); View_filters(/* args */);
~view_filters(); ~View_filters();
void lacalization(); void lacalization();
void event(); void event();
void get_builder(); void get_builder();
void settings(); void settings();
void show(); void show();
void set_path_glade(string path_glade) void set_path_glade(string str_path_glade)
private: private:
void set_map_flag(Gtk::CheckButton* check_button); void set_map_flag(Gtk::CheckButton* check_button);
void save(); void save();

@ -1,14 +1,25 @@
#include "view_open_browser.h" #include "view_open_browser.h"
view_open_browser::view_open_browser(/* args */) {
View_open_browser* obj_open_browser;
View_about* obj_about;
void wrapper_help_show(GtkWidget *self, char* link, gpointer user_data) {
if (self && user_data) {}
obj_open_browser->global_lick_doc = link;
obj_about->aboutWindows->hide();
obj_open_browser->temp_help_show();
}
View_open_browser::View_open_browser(/* args */) {
builder = Gtk::Builder::create_from_file(path_glade); builder = Gtk::Builder::create_from_file(path_glade);
this->settings();
} }
view_open_browser::~view_open_browser() { View_open_browser::~View_open_browser() {
} }
void settings() { void View_open_browser::settings() {
obj_open_browser = this;
this->get_builder(); this->get_builder();
#ifdef WEBKIT_FOUND #ifdef WEBKIT_FOUND
one = WEBKIT_WEB_VIEW( webkit_web_view_new() ); one = WEBKIT_WEB_VIEW( webkit_web_view_new() );
@ -19,10 +30,15 @@ void settings() {
this->event(); this->event();
} }
void view_open_browser::show() { void View_open_browser::set_obj_about(View_about* obj_view_about) {
wndShowWeb->show(); this->obj_view_about = obj_view_about;
obj_about = obj_view_about;
}
void View_open_browser::show() {
this->wndShowWeb->show();
} }
void view_open_browser::get_builder() { void View_open_browser::get_builder() {
#ifdef WEBKIT_FOUND #ifdef WEBKIT_FOUND
builder->get_widget("wndWeb", wndWeb); builder->get_widget("wndWeb", wndWeb);
#endif #endif
@ -36,7 +52,7 @@ void view_open_browser::get_builder() {
builder->get_widget("wndShowWeb", wndShowWeb); builder->get_widget("wndShowWeb", wndShowWeb);
} }
void view_open_browser::lacalization() { void View_open_browser::lacalization() {
lblwebHeaderName->set_label(name_app); lblwebHeaderName->set_label(name_app);
lblhelpText->set_text(redirected_documentation); lblhelpText->set_text(redirected_documentation);
btnReadHelp->set_label(read_online); btnReadHelp->set_label(read_online);
@ -45,13 +61,14 @@ void view_open_browser::lacalization() {
lblhelpHeader->set_text(read_documentation_web); lblhelpHeader->set_text(read_documentation_web);
} }
void view_open_browser::event() { void View_open_browser::event() {
g_signal_connect(G_OBJECT(obj_view_about->aboutWindows->gobj()), "activate-link", G_CALLBACK(wrapper_help_show), NULL);
btnCancelHelp->signal_clicked().connect([&]() {wndShowWeb->hide();}); btnCancelHelp->signal_clicked().connect([&]() {wndShowWeb->hide();});
chkAlwaysOpenHelp->signal_toggled().connect([&]() {flag_open_browser = true;}); chkAlwaysOpenHelp->signal_toggled().connect([&]() {flag_open_browser = true;});
btnReadHelp->signal_clicked().connect(sigc::mem_fun(*this, &view_open_browser::open_browser)); btnReadHelp->signal_clicked().connect(sigc::mem_fun(*this, &View_open_browser::open_browser));
} }
void view_open_browser::show() { void View_open_browser::temp_help_show() {
if (flag_open_browser == true) { if (flag_open_browser == true) {
this->open_browser(); this->open_browser();
} }
@ -60,19 +77,18 @@ void view_open_browser::show() {
} }
} }
void view_open_browser::open_browser() { void View_open_browser::open_browser() {
#ifdef WEBKIT_FOUND #ifdef WEBKIT_FOUND
webkit_web_view_load_uri(one, link_doc); webkit_web_view_load_uri(one, _(global_lick_doc.c_str()));
wndWeb->show_all(); wndWeb->show_all();
#else #else
if (this->template_open_browser() != 0) { this->template_open_browser(global_lick_doc);
}
#endif #endif
this->wndShowWeb->hide();
} }
int view_open_browser::template_open_browser() { int View_open_browser::template_open_browser(string str_link_doc) {
string cmd = cmd_xdg + string(_(link_doc)) + " &"; string cmd = cmd_xdg + string(_(str_link_doc.c_str())) + " &";
string buf = ""; string buf = "";
if (geteuid() == 0) { if (geteuid() == 0) {
string response_user = getlogin(); string response_user = getlogin();
@ -80,11 +96,16 @@ int view_open_browser::template_open_browser() {
auto size = static_cast<size_t>(size_s); auto size = static_cast<size_t>(size_s);
std::unique_ptr<char[]> buf(new char[ size ]); std::unique_ptr<char[]> buf(new char[ size ]);
std::snprintf(buf.get(), size, cmd_execute, response_user.c_str(), cmd.c_str()); std::snprintf(buf.get(), size, cmd_execute, response_user.c_str(), cmd.c_str());
cmd = std::string( buf.get(), buf.get() + size - 1 ); cmd = string(buf.get(), buf.get() + size - 1);
}
return system(cmd.c_str());
} }
return system(cmd); void View_open_browser::open_help() {
global_lick_doc = const_link_doc;
temp_help_show();
} }
void view_filters::set_path_glade(string path_glade) { View_about* View_open_browser::get_about() {
this->path_glade = path_glade; return obj_view_about;
} }

@ -1,42 +1,50 @@
#ifndef VIEW_OPEN_BROWSER_H #ifndef VIEW_OPEN_BROWSER_H
#define VIEW_OPEN_BROWSER_H #define VIEW_OPEN_BROWSER_H
#include "../project_lib.h"
#define link_doc "https://wiki.ublinux.com/ru/Программное_обеспечениерограммы_и_утилиты/Все/ubl-settings-diskquota" #include "../project_lib.h"
#define cmd_xdg "xdg-open " #include "view_about.h"
#define cmd_execute "su -l %s -c \" DISPLAY=$DISPLAY %s \"" #ifdef WEBKIT_FOUND
#include <webkit2/webkit2.h>
#endif
#include "../var.h"
class view_open_browser class View_open_browser {
{
private: private:
string path_glade;
bool flag_open_browser = false; bool flag_open_browser = false;
View_about* obj_view_about;
private: private:
Glib::RefPtr<Gtk::Builder> const& builder; Glib::RefPtr<Gtk::Builder> builder;
Gtk::Button *btnReadHelp; Gtk::Button *btnReadHelp;
Gtk::Button *btnCancelHelp; Gtk::Button *btnCancelHelp;
Gtk::Window *wndShowWeb;
Gtk::CheckButton *chkAlwaysOpenHelp; Gtk::CheckButton *chkAlwaysOpenHelp;
Gtk::Label *lblwebHeaderName; Gtk::Label *lblwebHeaderName;
Gtk::Label *lblhelpText; Gtk::Label *lblhelpText;
Gtk::Label *lblhelpHeader; Gtk::Label *lblhelpHeader;
Gtk::Label *lblHeadeWndWeb; Gtk::Label *lblHeadeWndWeb;
public:
string global_lick_doc;
Gtk::Window *wndShowWeb;
#ifdef WEBKIT_FOUND #ifdef WEBKIT_FOUND
Gtk::Window *wndWeb; Gtk::Window *wndWeb;
Gtk::Widget *three; Gtk::Widget *three;
WebKitWebView *one; WebKitWebView *one;
#endif #endif
public: public:
view_open_browser(/* args */); View_open_browser(/* args */);
~view_open_browser(); ~View_open_browser();
void lacalization(); void lacalization();
void event(); void event();
void get_builder(); void get_builder();
void settings(); void settings();
void show(); void show();
void set_path_glade(string path_glade); void open_help();
void temp_help_show();
void set_path_glade(string str_path_glade);
void set_obj_about(View_about* View_about);
View_about* get_about();
private: private:
int template_open_browser(); int template_open_browser(string str_link_doc);
void open_browser(); void open_browser();
}; };
void wrapper_help_show(GtkWidget *self, char* link, gpointer user_data);
#endif #endif

@ -117,10 +117,6 @@ void MainWindow::check_limit(Gtk::CheckButton *check_button, Gtk::SpinButton *sp
combo_box->set_sensitive(check_button->get_active()); combo_box->set_sensitive(check_button->get_active());
} }
void view_set_user_group::set_path_glade(string path_glade) {
this->path_glade = path_glade;
}
void MainWindow::edit_tree_view_U(Glib::RefPtr<Gtk::ListStore>* list_store, const Gtk::TreeModel::iterator* iter, bool& flag_validate) { void MainWindow::edit_tree_view_U(Glib::RefPtr<Gtk::ListStore>* list_store, const Gtk::TreeModel::iterator* iter, bool& flag_validate) {
lblSetUGP->set_text(str_user_1); lblSetUGP->set_text(str_user_1);
set_change_gui(list_store, iter, flag_validate, usersDeviceCombo); set_change_gui(list_store, iter, flag_validate, usersDeviceCombo);

@ -1,22 +1,11 @@
#ifndef VIEW_SET_USER_GROUP_H #ifndef VIEW_SET_USER_GROUP_H
#define VIEW_SET_USER_GROUP_H #define VIEW_SET_USER_GROUP_H
#include "../project_lib.h" #include "../project_lib.h"
#define str_device _("Device:") #include "../var.h"
#define str_quota_status _("Quota use status:")
#define str_size _("Size")
#define str_files _("files")
#define str_currently_using _("Currently using:")
#define str_soft_limit _("Soft limit")
#define str_hard_limit _("Hard limit")
#define str_hard_limit _("Hard limit")
#define str_prefix_KB _("Kb")
#define str_prefix_MB _("Mb")
#define str_prefix_GB _("Gb")
#define str_prefix_TB _("Tb")
class view_set_user_group class view_set_user_group
{ {
private: private:
string path_glade; string str_path_glade;
private: private:
Glib::RefPtr<Gtk::Builder> const& builder; Glib::RefPtr<Gtk::Builder> const& builder;
Gtk::Label* lblSetDevice; Gtk::Label* lblSetDevice;
@ -57,7 +46,7 @@ public:
void get_builder(); void get_builder();
void settings(); void settings();
void show(); void show();
void set_path_glade(string path_glade); void set_path_glade(string str_path_glade);
private: private:
void set_change_gui(Glib::RefPtr<Gtk::ListStore>* list_store, const Gtk::TreeModel::iterator* iter, bool& flag_validate, Gtk::ComboBoxText *combo_box); void set_change_gui(Glib::RefPtr<Gtk::ListStore>* list_store, const Gtk::TreeModel::iterator* iter, bool& flag_validate, Gtk::ComboBoxText *combo_box);
void fill_in_pow_memory(Gtk::ComboBoxText *cb_text); void fill_in_pow_memory(Gtk::ComboBoxText *cb_text);

Loading…
Cancel
Save