parent
7b604cc72f
commit
a054be64e2
File diff suppressed because it is too large
Load Diff
@ -1,3 +1,9 @@
|
||||
.vscode/
|
||||
ubl-settings-diskquota.glade~
|
||||
ubl-settings-diskquota_ru.po~
|
||||
ubl-settings-TEMPLATE
|
||||
*~
|
||||
build/
|
||||
compile/
|
||||
*#
|
||||
terminal-commands/
|
||||
source/ubl-cmake.h
|
||||
vgcore*
|
@ -1 +0,0 @@
|
||||
VERSION 1.6
|
Before Width: | Height: | Size: 218 KiB After Width: | Height: | Size: 210 KiB |
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<gresources>
|
||||
<gresource prefix="/com/ublinux/ui">
|
||||
<file>ubl-settings-diskquota.glade</file>
|
||||
</gresource>
|
||||
<gresource prefix="/com/ublinux/css">
|
||||
<file>ubl-settings-diskquota.css</file>
|
||||
</gresource>
|
||||
<gresource prefix="/com/ublinux/images">
|
||||
<file>ubl-settings-diskquota-banner.png</file>
|
||||
</gresource>
|
||||
</gresources>
|
@ -1,68 +0,0 @@
|
||||
#include "controller.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_save(obj_wrapper_load_save);
|
||||
obj_open_browser->settings();
|
||||
obj_main_window->set_map_gui(&map_gui_cfg);
|
||||
obj_main_window->set_map_global(&map_global_cfg);
|
||||
obj_main_window->set_map_local(&map_system_cfg);
|
||||
obj_main_window->set_obj_view_filters(&obj_view_filters);
|
||||
obj_main_window->set_obj_view_edit(&obj_view_edit);
|
||||
obj_main_window->set_obj_view_add(&obj_view_add);
|
||||
obj_main_window->set_obj_view_add_project(&obj_view_add_project);
|
||||
obj_main_window->set_obj_view_edit_project(&obj_view_edit_project);
|
||||
obj_main_window->settings();
|
||||
}
|
||||
|
||||
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::OptionEntry socketIDArg;
|
||||
socketIDArg.set_long_name("socket-id");
|
||||
socketIDArg.set_flags(Glib::OptionEntry::FLAG_IN_MAIN);
|
||||
socketIDArg.set_description("Settings manager socket");
|
||||
Glib::OptionEntry socketExtId;
|
||||
socketExtId.set_long_name("socket-ext-id");
|
||||
socketExtId.set_flags(Glib::OptionEntry::FLAG_IN_MAIN);
|
||||
socketExtId.set_description("Settings manager secondary socket");
|
||||
Glib::OptionEntry socketTrdId;
|
||||
socketTrdId.set_long_name("socket-trd-id");
|
||||
socketTrdId.set_flags(Glib::OptionEntry::FLAG_IN_MAIN);
|
||||
socketTrdId.set_description("Settings manager secondary socket");
|
||||
add_entry(socketIDArg, m_socketID);
|
||||
add_entry(socketExtId, socket_ext_id_I);
|
||||
add_entry(socketTrdId, socket_trd_id_I);
|
||||
}
|
||||
|
||||
::Window CmdArgParser::GetSocketID() const{
|
||||
return m_socketID;
|
||||
}
|
||||
|
||||
SettingsPlug::SettingsPlug(::Window p_socketID, Glib::RefPtr<Gtk::Builder> builder)
|
||||
:Gtk::Plug{p_socketID} {
|
||||
Controller* wnd = nullptr;
|
||||
builder->get_widget_derived("window", wnd);
|
||||
builder->get_widget("plugBox", plugBox);
|
||||
plugBox->get_parent()->remove(*plugBox);
|
||||
add(*plugBox);
|
||||
show_all_children();
|
||||
}
|
@ -1,59 +0,0 @@
|
||||
#ifndef CONTROLLER_H
|
||||
#define CONTROLLER_H
|
||||
#include "my_type.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"
|
||||
#include "view/view_filters.h"
|
||||
#include "view/view_add_user_group.h"
|
||||
#include "view/view_edit_user_group.h"
|
||||
#include "view/view_edit_project.h"
|
||||
#include "view/view_add_project.h"
|
||||
|
||||
extern int socket_ext_id_I;
|
||||
extern int socket_trd_id_I;
|
||||
|
||||
class Controller : public Gtk::ApplicationWindow
|
||||
{
|
||||
private:
|
||||
Glib::RefPtr<Gtk::Builder> builder;
|
||||
map_str_str map_gui_cfg;
|
||||
map_str_str map_global_cfg;
|
||||
map_str_str map_system_cfg;
|
||||
public:
|
||||
~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();
|
||||
View_filters obj_view_filters = View_filters();
|
||||
View_add_user_group obj_view_add = View_add_user_group();
|
||||
View_edit_user_group obj_view_edit = View_edit_user_group();
|
||||
View_edit_project obj_view_edit_project = View_edit_project();
|
||||
View_add_project obj_view_add_project = View_add_project();
|
||||
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,99 +0,0 @@
|
||||
#include "controller.h"
|
||||
#include "var.h"
|
||||
|
||||
void pars_flag(int index_start, int argc, char* argv[]);
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
string str_argv= "";
|
||||
string str_cmd_argv = "";
|
||||
for (int i=1; i<argc; i++){
|
||||
str_cmd_argv+= to_string(*argv[i]) + " ";
|
||||
}
|
||||
if (geteuid()!=0){
|
||||
string cmd = "";
|
||||
cmd = cmd + "pkexec " + app_name + " " + str_cmd_argv;
|
||||
return system(cmd.c_str());
|
||||
}
|
||||
if (argc > 1){
|
||||
str_argv = argv[1];
|
||||
}
|
||||
bindtextdomain(app_name, "/usr/share/locale/");
|
||||
bind_textdomain_codeset(app_name, "UTF-8");
|
||||
textdomain(app_name);
|
||||
if (str_argv.find("--socket-id") != std::string::npos) {
|
||||
auto app = Gtk::Application::create(argc, argv, "org.gtkmm.example.plug");
|
||||
auto builder = Gtk::Builder::create_from_file(path_glade);
|
||||
Glib::init();
|
||||
setlocale(LC_ALL, "");
|
||||
Glib::OptionContext context;
|
||||
|
||||
CmdArgParser parser{
|
||||
"Socket ID",
|
||||
"Command line argument for socket ID communication.",
|
||||
"No help available, sorry"
|
||||
};
|
||||
|
||||
context.set_main_group(parser);
|
||||
context.parse(argc, argv);
|
||||
|
||||
::Window socketID = parser.GetSocketID();
|
||||
|
||||
// Handle plug:
|
||||
SettingsPlug plug{socketID, builder};
|
||||
plug.show();
|
||||
|
||||
app->run(plug);
|
||||
return 0;
|
||||
}
|
||||
else if (str_argv.find("-") != std::string::npos || argc == 1) {
|
||||
int len_argv = 1;
|
||||
auto app = Gtk::Application::create(len_argv, argv, "org.gtkmm.example.plug");
|
||||
auto builder = Gtk::Builder::create_from_file(path_glade);
|
||||
pars_flag(1, argc, argv);
|
||||
Controller* wnd = nullptr;
|
||||
builder->get_widget_derived("window", wnd);
|
||||
auto r = app->run(*wnd);
|
||||
delete wnd;
|
||||
return r;
|
||||
}
|
||||
}
|
||||
|
||||
void pars_flag(int index_start, int argc, char* argv[]) {
|
||||
string str_argv = "";
|
||||
for (int i = index_start; i<argc; i++){
|
||||
str_argv = argv[i];
|
||||
if (str_argv == "--help" || str_argv == "-h"){
|
||||
help();
|
||||
exit(1);
|
||||
}
|
||||
else if (str_argv == "--version" || str_argv == "-v"){
|
||||
string version = string(str_version) + version_application + "\n";
|
||||
cout << version.c_str();
|
||||
exit(1);
|
||||
}
|
||||
else if (str_argv == "--lock-help") {
|
||||
flag_lock_help = true;
|
||||
}
|
||||
else if (str_argv == "--lock-save") {
|
||||
flag_save = true;
|
||||
flag_save_local = true;
|
||||
flag_save_global = true;
|
||||
}
|
||||
else if (str_argv == "--lock-save-local"){
|
||||
flag_save_local = true;
|
||||
}
|
||||
else if (str_argv == "--lock-save-global"){
|
||||
flag_save_global = true;
|
||||
}
|
||||
else if (str_argv == "--lock-load-global"){
|
||||
flag_load_global = true;
|
||||
}
|
||||
else{
|
||||
if (index_start == 1){
|
||||
g_print(no_recognized);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
@ -1,79 +0,0 @@
|
||||
#ifndef MY_TYPE_H
|
||||
#define MY_TYPE_H
|
||||
|
||||
#include "project_lib.h"
|
||||
#include <string>
|
||||
|
||||
using namespace std;
|
||||
|
||||
typedef unsigned long max_num_T;
|
||||
|
||||
struct users_grups{
|
||||
string name;
|
||||
bool state;
|
||||
max_num_T size_data;
|
||||
max_num_T soft_limit_size;
|
||||
max_num_T severe_restriction_size;
|
||||
max_num_T postponement_size_brat;
|
||||
max_num_T hard_limit_activation_time_size;
|
||||
max_num_T file;
|
||||
max_num_T soft_file_limitation;
|
||||
max_num_T hard_file_restriction;
|
||||
max_num_T postponement_hard_file_restriction;
|
||||
max_num_T hard_limit_activation_time;
|
||||
};
|
||||
struct Mount {
|
||||
std::string device;
|
||||
std::string destination;
|
||||
std::string fstype;
|
||||
std::string options;
|
||||
std::string dump;
|
||||
std::string pass;
|
||||
};
|
||||
struct partition_cmd {
|
||||
string device;
|
||||
string cmd;
|
||||
};
|
||||
struct struct_quotas {
|
||||
string device;
|
||||
string cmd;
|
||||
string type_quotas;
|
||||
string name;
|
||||
};
|
||||
struct status_quotas {
|
||||
bool user;
|
||||
bool group;
|
||||
bool project;
|
||||
bool status;
|
||||
};
|
||||
struct data_all_quotas {
|
||||
string username;
|
||||
string status;
|
||||
string block_used;
|
||||
string block_soft;
|
||||
string block_hard;
|
||||
string block_grace;
|
||||
string file_used;
|
||||
string file_soft;
|
||||
string file_hard;
|
||||
string file_grace;
|
||||
bool is_validate;
|
||||
};
|
||||
struct tv_g_u_p {
|
||||
string name;
|
||||
string quotas;
|
||||
string size;
|
||||
string soft_limit_size;
|
||||
string hard_limit_size;
|
||||
string deferring_size;
|
||||
string files;
|
||||
string soft_limit_files;
|
||||
string hard_limit_delay;
|
||||
string deferring_files;
|
||||
};
|
||||
|
||||
typedef struct users_grups USER_GRUPS;
|
||||
typedef map <string, string> map_str_str;
|
||||
typedef map <string, string>* map_s_s_ptr;
|
||||
typedef std::map<std::string, Mount> map_str_device;
|
||||
#endif
|
@ -1,27 +0,0 @@
|
||||
#ifndef PROJECT_LIB_H
|
||||
#define PROJECT_LIB_H
|
||||
|
||||
#include <stdio.h>
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
#include <array>
|
||||
#include <vector>
|
||||
#include <linux/limits.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <filesystem>
|
||||
#include <pwd.h>
|
||||
#include <cstddef>
|
||||
#include <gtkmm.h>
|
||||
#include <gtkmm/stock.h>
|
||||
#include <gtkmm/window.h>
|
||||
#include <gtkmm/plug.h>
|
||||
#include <locale.h>
|
||||
#include <libintl.h>
|
||||
#include <glibmm/i18n.h>
|
||||
#include <map>
|
||||
#include "ubl-settings-diskquota-cm.h"
|
||||
|
||||
#endif
|
@ -0,0 +1 @@
|
||||
#cmakedefine WEBKIT_FOUND
|
@ -1 +0,0 @@
|
||||
#cmakedefine WEBKIT_FOUND
|
@ -0,0 +1,39 @@
|
||||
#define VERSION_LABEL yon_char_unite(_("Version:")," ",version_application,"\n",NULL)
|
||||
#define HELP_LABEL yon_char_unite(_("ubl-settings-diskquota version:")," ", version_application,"\n",_("TEMPLATE settings"),"\n",_("Usage:"), " ubl-settings-diskquota ",_("[OPTIONS]"),"\n",_("Options:"),"\n\t--help, -h\t\t\t",_("Show this help"),"\n\t--version, -V\t\t\t",_("Show package version"),"\n\t--lock-help\t\t\t",_("Lock this help menu"),"\n\t--lock-save\t\t\t",_("Lock configuration saving"),"\n\t--lock-save-local\t\t",_("Lock local configration saving"),"\n\t--lock-save-global\t\t",_("Lock global configration saving"),"\n\t--lock-load-global\t\t",_("Lock global configration loading"),"\n",NULL)
|
||||
|
||||
#define TITLE_LABEL _("TEMPLATE Manager")
|
||||
#define TITLE_INFO_LABEL _("System TEMPLATE settings management")
|
||||
|
||||
#define SUCCESS_LABEL _("Operation succeeded")
|
||||
#define ROOT_WARNING_LABEL _("Warning! Application was launched without root - root-dependent actions are locked")
|
||||
|
||||
#define ABOUT_LABEL _("About")
|
||||
#define DOCUMENTATION_LABEL _("Documentation")
|
||||
|
||||
#define SAVE_LOCAL_LABEL _("Save to local configuration")
|
||||
#define SAVE_GLOBAL_LABEL _("Save to global configuration")
|
||||
#define SAVE_CONFIGURATION_LABEL _("Save configuration")
|
||||
#define SAVE_LABEL _("Save")
|
||||
|
||||
#define LOAD_LOCAL_LABEL _("Load local configuration")
|
||||
#define LOAD_GLOBAL_LABEL _("Load global configuration")
|
||||
#define LOAD_LABEL _("Load")
|
||||
|
||||
#define CANCEL_LABEL _("Cancel")
|
||||
|
||||
#define HELP_TITLE_LABEL _("Would you like to read documentation in the Web?")
|
||||
#define HELP_INFO_LABEL _("You will be redirected to documentation website where documentation is\ntranslated and supported by community.")
|
||||
#define HELP_ALWAYS_OPEN_LABEL _("Always redirect to online documentation")
|
||||
#define OPEN_HELP_LABEL _("Open documentation")
|
||||
#define PROJECT_HOME_LABEL _("Project Home Page")
|
||||
#define NOTHING_CHOSEN_LABEL _("Nothing were chosen")
|
||||
|
||||
|
||||
#define GLOBAL_LOAD_SUCCESS_LABEL _("Global configuration loading succseeded.")
|
||||
#define LOCAL_LOAD_SUCCESS_LABEL _("Local configuration loading succseeded.")
|
||||
#define LOAD_FAILED_LABEL _("Config loading failed")
|
||||
|
||||
#define GLOBAL_LOCAL_SAVE_SUCCESS_LABEL _("Local and global configuration saving succseeded.")
|
||||
#define GLOBAL_SAVE_SUCCESS_LABEL _("Global configuration saving succseeded.")
|
||||
#define LOCAL_SAVE_SUCCESS_LABEL _("Local configuration saving succseeded.")
|
||||
#define SAVE_FAILED_LABEL
|
@ -1,39 +0,0 @@
|
||||
#include "ubconfig_quota.h"
|
||||
|
||||
|
||||
|
||||
Ubconfig_quota::Ubconfig_quota(/* args */)
|
||||
{
|
||||
}
|
||||
|
||||
Ubconfig_quota::~Ubconfig_quota()
|
||||
{
|
||||
}
|
||||
|
||||
void Ubconfig_quota::set_map_global(map_str_str* map_global_cfg) {
|
||||
this->map_global_cfg = map_global_cfg;
|
||||
}
|
||||
|
||||
void Ubconfig_quota::set_map_local(map_str_str* map_system_cfg) {
|
||||
this->map_system_cfg = map_system_cfg;
|
||||
}
|
||||
|
||||
void Ubconfig_quota::remove_key_to_vec(string key) {
|
||||
cout << key << endl;
|
||||
}
|
||||
|
||||
void Ubconfig_quota::add_key_to_vec(string key) {
|
||||
cout << key << endl;
|
||||
}
|
||||
|
||||
void Ubconfig_quota::set_vec_key(vector<string>* vec_param_names) {
|
||||
this->vec_param_names = vec_param_names;
|
||||
}
|
||||
|
||||
void Ubconfig_quota::format_data() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -1,58 +0,0 @@
|
||||
#ifndef UBCONFIG_QUOTAS_H
|
||||
#define UBCONFIG_QUOTAS_H
|
||||
|
||||
#include "../../my_type.h"
|
||||
#include "../../project_lib.h"
|
||||
|
||||
class Ubconfig_quota
|
||||
{
|
||||
private:
|
||||
map_str_str* map_gui_cfg = NULL;
|
||||
map_str_str* map_global_cfg = NULL;
|
||||
map_str_str* map_system_cfg = NULL;
|
||||
vector<string>* vec_param_names = NULL;
|
||||
struct Size {
|
||||
int size_0;
|
||||
int size_1;
|
||||
int size_2;
|
||||
int size_3;
|
||||
int size_4;
|
||||
int size_5;
|
||||
};
|
||||
struct User {
|
||||
bool active;
|
||||
string device;
|
||||
vector<string> users;
|
||||
struct Size obj_size;
|
||||
};
|
||||
struct Group {
|
||||
bool active;
|
||||
string device;
|
||||
vector<string> groups;
|
||||
struct Size obj_size;
|
||||
};
|
||||
struct Prjquota {
|
||||
bool active;
|
||||
string device;
|
||||
vector<string> prjquota_name;
|
||||
struct Size obj_size;
|
||||
};
|
||||
struct Quotas {
|
||||
struct User obj_user;
|
||||
struct Group obj_group;
|
||||
struct Prjquota obj_prjquota;
|
||||
};
|
||||
public:
|
||||
Ubconfig_quota(/* args */);
|
||||
~Ubconfig_quota();
|
||||
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);
|
||||
void remove_key_to_vec(string key);
|
||||
void add_key_to_vec(string key);
|
||||
void format_data();
|
||||
|
||||
};
|
||||
|
||||
#endif
|
File diff suppressed because it is too large
Load Diff
@ -1,653 +0,0 @@
|
||||
#ifndef UBL_SETTINGS_DISKQUOTA_H
|
||||
#define UBL_SETTINGS_DISKQUOTA_H
|
||||
#include "ubl-settings-diskquota.h"
|
||||
|
||||
string version_application = "1.6";
|
||||
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_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::lacalization() {
|
||||
|
||||
}
|
||||
|
||||
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);
|
||||
GtkBuilder *builder = gtk_builder_new_from_file(path_glade);
|
||||
gtk_list_project = GTK_LIST_STORE(gtk_builder_get_object(builder, "ListProject"));
|
||||
gtk_list_groups = GTK_LIST_STORE(gtk_builder_get_object(builder, "ListGroups"));
|
||||
gtk_list_user = GTK_LIST_STORE(gtk_builder_get_object(builder, "ListUser"));
|
||||
gtk_list_general = GTK_LIST_STORE(gtk_builder_get_object(builder, "ListGeneral"));
|
||||
}
|
||||
/*
|
||||
void tree_view_del_line() {
|
||||
int index = 0;
|
||||
GtkTreeIter iter;
|
||||
GtkTreeModel *model = GTK_TREE_MODEL(main_config.list);
|
||||
GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->treeViewMain));
|
||||
if(gtk_tree_selection_get_selected(selection, &model, &iter)) {
|
||||
char* str_iter = yon_char_new(gtk_tree_model_get_string_from_iter(model, &iter));
|
||||
index = atoi(str_iter);
|
||||
g_object_ref(main_config.list);
|
||||
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->treeViewMain), NULL);
|
||||
gtk_list_store_clear(main_config.list);
|
||||
|
||||
main_fill_tree_view_after_remove();
|
||||
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->treeViewMain), model);
|
||||
free(str_iter);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::tree_view_select() {
|
||||
GtkTreeIter iter;
|
||||
GtkTreeModel *model = GTK_TREE_MODEL(gtk_list_user);
|
||||
GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(usersQuotasTree->gobj()));
|
||||
if(gtk_tree_selection_get_selected(selection, &model, &iter)) {
|
||||
gtk_widget_set_sensitive(GTK_WIDGET(btnAddUsers->gobj()),1);
|
||||
gtk_widget_set_sensitive(GTK_WIDGET(btnEditUsers->gobj()),1);
|
||||
gtk_widget_set_sensitive(GTK_WIDGET(btnDelUsers->gobj()),1);
|
||||
}
|
||||
else {
|
||||
gtk_widget_set_sensitive(GTK_WIDGET(btnAddUsers->gobj()),1);
|
||||
gtk_widget_set_sensitive(GTK_WIDGET(btnEditUsers->gobj()),1);
|
||||
gtk_widget_set_sensitive(GTK_WIDGET(btnDelUsers->gobj()),0);
|
||||
}
|
||||
}
|
||||
void fill_tree_view(int start, int size, int flag_gui_add) {
|
||||
GtkTreeModel *model = GTK_TREE_MODEL(main_config.list);
|
||||
if (flag_gui_add == 0) {
|
||||
g_object_ref(main_config.list);
|
||||
gtk_list_store_clear(main_config.list);
|
||||
}
|
||||
for (int index = start; index < size; index++) {
|
||||
GtkTreeIter iter;
|
||||
gtk_list_store_append(main_config.list,&iter);
|
||||
char* str_io_read = format_io_limit_in_tree_view(main_config.disk, main_config.i_o_limit_read, main_config.i_o_limit_read_size, index);
|
||||
char* str_io_write = format_io_limit_in_tree_view(main_config.disk, main_config.i_o_limit_write, main_config.i_o_limit_write_size, index);
|
||||
gtk_list_store_set(main_config.list,&iter,0,main_config.type_quota[index],
|
||||
1,main_config.quota_volume[index],
|
||||
2,main_config.soft_raw_limit[index],
|
||||
3,main_config.hard_raw_limit[index],
|
||||
4,main_config.swap[index],
|
||||
5,main_config.cpu_limit[index],
|
||||
6,str_io_read,
|
||||
7,str_io_write,-1);
|
||||
free(str_io_read);
|
||||
free(str_io_write);
|
||||
}
|
||||
if (flag_gui_add != 0) {
|
||||
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->treeViewMain), model);
|
||||
}
|
||||
}
|
||||
|
||||
int tree_view_edit() {
|
||||
int index = 0;
|
||||
GtkTreeIter iter;
|
||||
GtkTreeModel *model = GTK_TREE_MODEL(main_config.list);
|
||||
|
||||
GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->treeViewMain));
|
||||
if(gtk_tree_selection_get_selected(selection, &model, &iter)) {
|
||||
char* str_iter = gtk_tree_model_get_string_from_iter(model, &iter);
|
||||
index = atoi(str_iter);
|
||||
gtk_list_store_set(main_config.list,&iter,0,main_config.type_quota[index],
|
||||
1,main_config.quota_volume[index],
|
||||
2,main_config.soft_raw_limit[index],
|
||||
3,main_config.hard_raw_limit[index],
|
||||
4,main_config.swap[index],
|
||||
5,main_config.cpu_limit[index],
|
||||
6,str_io_read,
|
||||
7,str_io_write,-1);
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
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));
|
||||
usersQuotasTree->signal_cursor_changed().connect([&]() {this->obj_view_add_project->show();});
|
||||
}
|
||||
|
||||
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));
|
||||
}
|
||||
|
||||
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
|
||||
|
@ -1,279 +0,0 @@
|
||||
#ifndef UBL_SETTINGS_QUOTAS_H
|
||||
#define UBL_SETTINGS_QUOTAS_H
|
||||
|
||||
#include <dlfcn.h>
|
||||
#include "view_open_browser.h"
|
||||
#include "../project_lib.h"
|
||||
#include "../my_type.h"
|
||||
#include "ubl-util-standard.c"
|
||||
#include "../var.h"
|
||||
#include "model/wrapper_load_save.h"
|
||||
#include "view_filters.h"
|
||||
#include "view_add_user_group.h"
|
||||
#include "view_edit_user_group.h"
|
||||
#include "view_add_project.h"
|
||||
#include "view_edit_project.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
#define yon_gtk_builder_get_widget(builder, widget_name) GTK_WIDGET(gtk_builder_get_object(builder, widget_name))
|
||||
|
||||
|
||||
extern bool flag_save;
|
||||
extern bool flag_save_local;
|
||||
extern bool flag_save_global;
|
||||
extern bool flag_load_global;
|
||||
extern bool flag_lock_help;
|
||||
|
||||
|
||||
|
||||
class MainWindow {
|
||||
public:
|
||||
class ModelColumns : public Gtk::TreeModel::ColumnRecord {
|
||||
public:
|
||||
ModelColumns() {add(name), add(quotas); add(size),
|
||||
add(soft_limit_size), add(hard_limit_size); add(deferring_size),
|
||||
add(files); add(soft_limit_files),
|
||||
add(hard_limit_delay), add(deferring_files); }
|
||||
Gtk::TreeModelColumn<Glib::ustring> name;
|
||||
Gtk::TreeModelColumn<Glib::ustring> quotas;
|
||||
Gtk::TreeModelColumn<Glib::ustring> size;
|
||||
Gtk::TreeModelColumn<Glib::ustring> soft_limit_size;
|
||||
Gtk::TreeModelColumn<Glib::ustring> hard_limit_size;
|
||||
Gtk::TreeModelColumn<Glib::ustring> deferring_size;
|
||||
Gtk::TreeModelColumn<Glib::ustring> files;
|
||||
Gtk::TreeModelColumn<Glib::ustring> soft_limit_files;
|
||||
Gtk::TreeModelColumn<Glib::ustring> hard_limit_delay;
|
||||
Gtk::TreeModelColumn<Glib::ustring> deferring_files;
|
||||
};
|
||||
class ModelColumnsGeneral : public Gtk::TreeModel::ColumnRecord {
|
||||
public:
|
||||
ModelColumnsGeneral() {add(status), add(type_quotas); add(device),
|
||||
add(user), add(group), add(projects); add(soft_limit_size),
|
||||
add(hard_limit_size); add(soft_limit_files), add(hard_limit_files), add(deferring_size),
|
||||
add(deferring_files); }
|
||||
Gtk::TreeModelColumn<bool> status;
|
||||
Gtk::TreeModelColumn<Glib::ustring> type_quotas;
|
||||
Gtk::TreeModelColumn<Glib::ustring> device;
|
||||
Gtk::TreeModelColumn<Glib::ustring> user;
|
||||
Gtk::TreeModelColumn<Glib::ustring> group;
|
||||
Gtk::TreeModelColumn<Glib::ustring> projects;
|
||||
Gtk::TreeModelColumn<Glib::ustring> soft_limit_size;
|
||||
Gtk::TreeModelColumn<Glib::ustring> hard_limit_size;
|
||||
Gtk::TreeModelColumn<Glib::ustring> soft_limit_files;
|
||||
Gtk::TreeModelColumn<Glib::ustring> hard_limit_files;
|
||||
Gtk::TreeModelColumn<Glib::ustring> deferring_size;
|
||||
Gtk::TreeModelColumn<Glib::ustring> deferring_files;
|
||||
};
|
||||
ModelColumns m_columns;
|
||||
ModelColumnsGeneral m_columnsGeneral;
|
||||
Glib::RefPtr<Gtk::Builder> builder;
|
||||
template<typename Type>
|
||||
struct Result{
|
||||
Type response;
|
||||
int error;
|
||||
};
|
||||
Gtk::Label *headerTopic;
|
||||
Gtk::Overlay *HeadOverlay;
|
||||
Gtk::HeaderBar *headerBar;
|
||||
Gtk::Widget *boxSave;
|
||||
Gtk::Widget *boxButton;
|
||||
Gtk::Box *boxFuncs;
|
||||
Gtk::Box* boxResize;
|
||||
Gtk::MenuButton *btnSave;
|
||||
Gtk::MenuButton *btnLoad;
|
||||
Gtk::MenuButton *btnSettings;
|
||||
Gtk::Image *HeadBackgroundImage;
|
||||
Gtk::Image *imgInfo;
|
||||
Gtk::Box *boxInfoError;
|
||||
Gtk::Label *lblWarning;
|
||||
Gtk::Label *generalTabLabel;
|
||||
Gtk::Label *UsersTabLabel;
|
||||
Gtk::Label *GroupsTabLabel;
|
||||
Gtk::Label *generalGroupsFilesLabel;
|
||||
Gtk::Label *generalUsersSizeLabel;
|
||||
Gtk::Label *generalUsersFilesLabel;
|
||||
Gtk::Label *generalGroupsSizeWeeksLabel;
|
||||
Gtk::Label *generalGroupsFilesWeeksLabel;
|
||||
Gtk::Label *generalUsersSizeWeeksLabel;
|
||||
Gtk::Label *generalUsersFilesWeeksLabel;
|
||||
Gtk::Label *generalGroupsSizeDaysLabel;
|
||||
Gtk::Label *generalGroupsFilesDaysLabel;
|
||||
Gtk::Label *generalUsersSizeDaysLabel;
|
||||
Gtk::Label *generalUsersFilesDaysLabel;
|
||||
Gtk::Label *generalGroupsSizeHoursLabel;
|
||||
Gtk::Label *generalGroupsFilesHoursLabel;
|
||||
Gtk::Label *generalUsersSizeHoursLabel;
|
||||
Gtk::Label *generalUsersFilesHoursLabel;
|
||||
Gtk::Label *generalGroupsSizeMinutesLabel;
|
||||
Gtk::Label *generalGroupsFilesMinutesLabel;
|
||||
Gtk::Label *generalUsersSizeMinutesLabel;
|
||||
Gtk::Label *generalUsersFilesMinutesLabel;
|
||||
Gtk::Label *ProjectTabLabel;
|
||||
Gtk::Label *usersProjectLabel;
|
||||
Gtk::Label *lblLoad;
|
||||
Gtk::Label *lblSave;
|
||||
Gtk::MenuItem *btnLoadGlob;
|
||||
Gtk::MenuItem *btnLoadLocal;
|
||||
Gtk::MenuItem *btnSynopsis;
|
||||
Gtk::MenuItem *btnAbout;
|
||||
Gtk::MenuItem *btnSaveLocalGlob;
|
||||
Gtk::MenuItem *btnSaveGlob;
|
||||
Gtk::MenuItem *btnSaveLocal;
|
||||
Gtk::Label *groupsDeviceLabel;
|
||||
Gtk::Label *usersDeviceLabel;
|
||||
Gtk::Label *headLabel;
|
||||
|
||||
Gtk::TreeView *groupsQuotasTree;
|
||||
Gtk::TreeView *usersQuotasTree;
|
||||
Gtk::TreeView *ProjectQuotasTree;
|
||||
Gtk::TreeView *GeneralQuotasTree;
|
||||
Gtk::Label *quotegroupGroupQuotasLabel;
|
||||
|
||||
|
||||
Gtk::ComboBoxText *usersDeviceCombo;
|
||||
Gtk::ComboBoxText *groupsDeviceCombo;
|
||||
Gtk::ComboBoxText *generalDeviceCombo;
|
||||
Gtk::ComboBoxText *usersProjectCombo;
|
||||
Gtk::Label *lblFstypeGroups;
|
||||
Gtk::SpinButton *generalGroupsSizeWeeksSpi;
|
||||
Gtk::SpinButton *generalGroupsFileWeeksSpin;
|
||||
Gtk::SpinButton *generalGroupsSizeDaySpin;
|
||||
Gtk::SpinButton *generalGroupsFilesDaySpin;
|
||||
Gtk::SpinButton *generalGroupsSizeHourSpin;
|
||||
Gtk::SpinButton *generalGroupsFilesHourSpin;
|
||||
Gtk::SpinButton *generalGroupsSizeMinuteSpin;
|
||||
Gtk::SpinButton *generalGroupsFilesMinuteSpin;
|
||||
Gtk::SpinButton *generalUsersSizWeeksSpin;
|
||||
Gtk::SpinButton *generalUsersFileWeeksSpin;
|
||||
Gtk::SpinButton *generalUsersSizeDaySpin;
|
||||
Gtk::SpinButton *generalUsersFilesDaySpin;
|
||||
Gtk::SpinButton *generalUsersSizeHourSpin;
|
||||
Gtk::SpinButton *generalUsersFilesHoursSpin;
|
||||
Gtk::SpinButton *generalUsersSizeMinuteSpin;
|
||||
Gtk::SpinButton *generalUsersFilesMinutesSpin;
|
||||
|
||||
|
||||
Gtk::Button *btnFilterGroups;
|
||||
Gtk::Button *btnFilterUsers;
|
||||
Gtk::Button *btnFilterProject;
|
||||
Gtk::CheckMenuItem *chbMangSystemFile;
|
||||
Gtk::Button* btnDelGroups;
|
||||
Gtk::Button* btnDelProject;
|
||||
Gtk::Button* btnDelUsers;
|
||||
Gtk::Button* btnAddGroups;
|
||||
Gtk::Button* btnAddUsers;
|
||||
Gtk::Button* btnAddProject;
|
||||
Gtk::Button* btnEditProject;
|
||||
Gtk::Button* btnEditUsers;
|
||||
Gtk::Button* btnEditGroups;
|
||||
|
||||
Gtk::Box* boxGroupsWeeks;
|
||||
Gtk::Box* boxGroupsDays;
|
||||
Gtk::Box* boxGroupsHours;
|
||||
Gtk::Box* boxGroupsMinutes;
|
||||
Gtk::Box* boxUsersWeeks;
|
||||
Gtk::Box* boxUsersDays;
|
||||
Gtk::Box* boxUsersHours;
|
||||
Gtk::Box* boxUsersMinutes;
|
||||
Gtk::Box* boxProjectWeeks;
|
||||
Gtk::Box* boxProjectDays;
|
||||
Gtk::Box* boxProjectHours;
|
||||
Gtk::Box* boxProjectMinutes;
|
||||
GtkListStore* gtk_list_project;
|
||||
GtkListStore* gtk_list_groups;
|
||||
GtkListStore* gtk_list_user;
|
||||
GtkListStore* gtk_list_general;
|
||||
|
||||
public:
|
||||
map_str_str* map_gui_cfg = NULL;
|
||||
map_str_str* map_global_cfg = NULL;
|
||||
map_str_str* map_system_cfg = NULL;
|
||||
Wrapper_load_save* obj_wrapper_load_save = NULL;
|
||||
View_edit_user_group* obj_view_edit = NULL;
|
||||
View_filters* obj_view_filters = NULL;
|
||||
View_add_user_group* obj_view_add = NULL;
|
||||
View_add_project* obj_view_add_project = NULL;
|
||||
View_edit_project* obj_view_edit_project = NULL;
|
||||
//Devices::Parted obj_device = Devices::Parted();
|
||||
//Quotas_sys::Quotas_sys obj_quotas_sys = Quotas_sys::Quotas_sys();
|
||||
//Quotas_ubconfig::Quotas_ubconfig obj_quotas_ubconfig = Quotas_ubconfig::Quotas_ubconfig();
|
||||
vector<string> vec_param_names;
|
||||
map_str_str map_device;
|
||||
string str_cmd_error;
|
||||
string save_user_or_group;
|
||||
string sys_or_ubconfig;
|
||||
string hw_or_sw = "";
|
||||
string mode_quota = "ubconfig";
|
||||
Glib::RefPtr<Gtk::ListStore> list_store_groups;
|
||||
Glib::RefPtr<Gtk::ListStore> list_store_users;
|
||||
Glib::RefPtr<Gtk::ListStore> list_store_project;
|
||||
Gtk::TreeModel::iterator iter_groups;
|
||||
Gtk::TreeModel::iterator iter_users;
|
||||
Gtk::TreeModel::iterator iter_project;
|
||||
bool flag_validate_del_groups = false;
|
||||
bool flag_validate_del_users = false;
|
||||
bool flag_validate_del_project = false;
|
||||
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 {"", "", "", "", "", "", "", "", "",""};
|
||||
public:
|
||||
// MainWindow(BaseObjectType* obj, 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();
|
||||
void settings();
|
||||
void flag_block_gui();
|
||||
void tree_view_select();
|
||||
void lacalization();
|
||||
void add_CSS();
|
||||
void resize_widget();
|
||||
void get_builder();
|
||||
void event();
|
||||
void open_browser();
|
||||
void info_warning_error(int mess, int error_save, int error_load);
|
||||
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_template(Glib::RefPtr<Gtk::ListStore>* list_store, const Gtk::TreeModel::iterator* iter, bool& flag_validate_del);
|
||||
void init_tree_view_general();
|
||||
void entry_combo_box_temp(Gtk::ComboBoxText *combo_box, Gtk::Label *label);
|
||||
void info_status_app(string stule);
|
||||
void filters_show();
|
||||
void set_obj_wrapper_load_save(Wrapper_load_save* obj_wrapper_load_save);
|
||||
void init_tree_view();
|
||||
void del_columns();
|
||||
void set_obj_browser(View_open_browser* obj_open_browser);
|
||||
void 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);
|
||||
void off_quota_system(Gtk::ComboBoxText* combo_box, string quota_type);
|
||||
void mode_switch_quota();
|
||||
void save_quotegroupSaveButton();
|
||||
void filling_device_combo_box_template(Gtk::ComboBoxText *combo_box, map_str_str &map_device);
|
||||
void wrapper_settings_quotas_temp(string save_user_or_group);
|
||||
void off_quota_ubconfig(Gtk::ComboBoxText* combo_box, string quota_type);
|
||||
void init_spin_all();
|
||||
void view_add_columns(Gtk::TreeView &treeView);
|
||||
void format_cmd_quotas_system(struct struct_quotas& _struct_quota);
|
||||
void format_cmd_quotas_ubconfig(struct struct_quotas& _struct_quota);
|
||||
struct partition_cmd wrapper_settings_quotas();
|
||||
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 wrapper_load_system();
|
||||
void wrapper_load_global();
|
||||
void wrapper_save_all();
|
||||
void wrapper_save_system();
|
||||
void wrapper_save_global();
|
||||
void set_obj_view_filters(View_filters* obj_view_filters);
|
||||
bool check_space(Gtk::TreeView* tree_view);
|
||||
void set_obj_view_add(View_add_user_group* obj_view_edit);
|
||||
void add_quota_show(string name);
|
||||
void edit_quota_show(string name);
|
||||
void set_obj_view_edit(View_edit_user_group* obj_view_edit);
|
||||
void set_obj_view_add_project(View_add_project* obj_view_add_project);
|
||||
void set_obj_view_edit_project(View_edit_project* obj_view_edit_project);
|
||||
void edit_quota_project_show();
|
||||
};
|
||||
void wrapper_help_show(GtkWidget *self, char* link, gpointer user_data);
|
||||
void help();
|
||||
#endif
|
@ -1,91 +0,0 @@
|
||||
#include "ubl-util-standard.h"
|
||||
#ifndef __cplusplus
|
||||
#ifndef UBL_GET_STANDARD_UI
|
||||
#define UBL_GET_STANDARD_UI
|
||||
|
||||
|
||||
inline returnstruct *ubl_make_plugs(GtkWidget *LeftWidget, GtkWidget *RightWidget, int left_plug_id, int right_plug_id){
|
||||
returnstruct *ret=(returnstruct*)malloc(sizeof(returnstruct*));
|
||||
if (left_plug_id>0&&LeftWidget){
|
||||
GtkWidget *plug=gtk_plug_new(left_plug_id);
|
||||
GtkWidget *toplug=LeftWidget;
|
||||
if (gtk_widget_get_parent(GTK_WIDGET(toplug))){
|
||||
g_object_ref(G_OBJECT(toplug));
|
||||
GtkWidget *parent=gtk_widget_get_parent(toplug);
|
||||
gtk_container_remove(GTK_CONTAINER(parent),toplug);
|
||||
gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug));
|
||||
} else
|
||||
gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug));
|
||||
gtk_widget_show(GTK_WIDGET(plug));
|
||||
ret->plugLeft=plug;
|
||||
}
|
||||
if (right_plug_id>0&&RightWidget){
|
||||
GtkWidget *plug=gtk_plug_new(right_plug_id);
|
||||
GtkWidget *toplug=RightWidget;
|
||||
if (gtk_widget_get_parent(GTK_WIDGET(toplug))){
|
||||
g_object_ref(G_OBJECT(toplug));
|
||||
GtkWidget *parent=gtk_widget_get_parent(toplug);
|
||||
gtk_container_remove(GTK_CONTAINER(parent),toplug);
|
||||
gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug));
|
||||
} else
|
||||
gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug));
|
||||
gtk_widget_show(GTK_WIDGET(plug));
|
||||
ret->plugRight=plug;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
|
||||
inline void ubl_make_plugs(Gtk::Widget *LeftWidget, Gtk::Widget *RightWidget, int left_plug_id, int right_plug_id){
|
||||
if (left_plug_id>0&&LeftWidget){
|
||||
GtkWidget *plug=gtk_plug_new(left_plug_id);
|
||||
GtkWidget *toplug=GTK_WIDGET(LeftWidget->gobj());
|
||||
{GdkScreen *screen = gtk_widget_get_screen(plug);
|
||||
gtk_widget_set_app_paintable(plug,TRUE);
|
||||
GdkVisual *colormap = gdk_screen_get_rgba_visual(screen);
|
||||
gtk_widget_set_visual(plug, colormap);}
|
||||
{GdkScreen *screen = gtk_widget_get_screen(toplug);
|
||||
gtk_widget_set_app_paintable(toplug,TRUE);
|
||||
GdkVisual *colormap = gdk_screen_get_rgba_visual(screen);
|
||||
gtk_widget_set_visual(toplug, colormap);}
|
||||
if (gtk_widget_get_parent(GTK_WIDGET(toplug))){
|
||||
g_object_ref(G_OBJECT(toplug));
|
||||
GtkWidget *parent=gtk_widget_get_parent(toplug);
|
||||
gtk_container_remove(GTK_CONTAINER(parent),toplug);
|
||||
gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug));
|
||||
} else
|
||||
gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug));
|
||||
gtk_widget_show(GTK_WIDGET(plug));
|
||||
gtk_style_context_add_class(gtk_widget_get_style_context(plug),"bkim");
|
||||
gtk_style_context_add_class(gtk_widget_get_style_context(toplug),"bkim");
|
||||
gtk_style_context_add_class(gtk_widget_get_style_context(plug),"primary-toolbar");
|
||||
}
|
||||
if (right_plug_id>0&&RightWidget){
|
||||
GtkWidget *plug=gtk_plug_new(right_plug_id);
|
||||
GtkWidget *toplug=GTK_WIDGET(RightWidget->gobj());
|
||||
{GdkScreen *screen = gtk_widget_get_screen(plug);
|
||||
gtk_widget_set_app_paintable(plug,TRUE);
|
||||
GdkVisual *colormap = gdk_screen_get_rgba_visual(screen);
|
||||
gtk_widget_set_visual(plug, colormap);}
|
||||
{GdkScreen *screen = gtk_widget_get_screen(toplug);
|
||||
gtk_widget_set_app_paintable(toplug,TRUE);
|
||||
GdkVisual *colormap = gdk_screen_get_rgba_visual(screen);
|
||||
gtk_widget_set_visual(toplug, colormap);}
|
||||
if (gtk_widget_get_parent(GTK_WIDGET(toplug))){
|
||||
g_object_ref(G_OBJECT(toplug));
|
||||
GtkWidget *parent=gtk_widget_get_parent(toplug);
|
||||
gtk_container_remove(GTK_CONTAINER(parent),toplug);
|
||||
gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug));
|
||||
} else
|
||||
gtk_container_add(GTK_CONTAINER(plug),GTK_WIDGET(toplug));
|
||||
gtk_widget_show(GTK_WIDGET(plug));
|
||||
gtk_style_context_add_class(gtk_widget_get_style_context(plug),"bkim");
|
||||
gtk_style_context_add_class(gtk_widget_get_style_context(toplug),"bkim");
|
||||
gtk_style_context_add_class(gtk_widget_get_style_context(plug),"primary-toolbar");
|
||||
}
|
||||
}
|
||||
#endif
|
@ -1,20 +0,0 @@
|
||||
#ifndef __cplusplus
|
||||
#include <gtk/gtk.h>
|
||||
#include <gtk/gtkx.h>
|
||||
|
||||
typedef struct {
|
||||
GtkWidget *plugLeft;
|
||||
GtkWidget *plugRight;
|
||||
|
||||
|
||||
} returnstruct;
|
||||
static returnstruct *ubl_make_plugs(GtkWidget *LeftWidget, GtkWidget *RightWidget, int left_plug_id, int right_plug_id);
|
||||
#else
|
||||
#include <gtkmm.h>
|
||||
#include <gtkmm/stock.h>
|
||||
#include <gtkmm/window.h>
|
||||
#include <gtkmm/plug.h>
|
||||
|
||||
|
||||
static void ubl_make_plugs(Gtk::Widget *LeftWidget, Gtk::Widget *RightWidget, int left_plug_id, int right_plug_id);
|
||||
#endif
|
@ -1,47 +0,0 @@
|
||||
#include "view_about.h"
|
||||
|
||||
|
||||
|
||||
View_about::View_about() {
|
||||
builder = Gtk::Builder::create_from_file(path_glade);
|
||||
this->settings();
|
||||
}
|
||||
|
||||
View_about::~View_about() {
|
||||
}
|
||||
|
||||
void View_about::lacalization() {
|
||||
time_t now = time(0);
|
||||
tm *ltm = localtime(&now);
|
||||
unsigned int year = 1900 + ltm->tm_year;
|
||||
string str_authors = string(copyright) + to_string(year);
|
||||
aboutWindows->set_copyright(str_authors);
|
||||
aboutWindows->set_comments(str_setting_user);
|
||||
aboutWindows->set_website(website);
|
||||
aboutWindows->set_version(_(version_application.c_str()));
|
||||
aboutWindows->set_website_label(project_Home_page);
|
||||
headerAboutTopic->set_label(_(app_name));
|
||||
}
|
||||
|
||||
void View_about::set_version(string version_application) {
|
||||
version_application = version_application;
|
||||
}
|
||||
|
||||
void View_about::show() {
|
||||
aboutWindows->show();
|
||||
}
|
||||
void View_about::get_builder() {
|
||||
builder->get_widget("btnBoxAboutDialog", btnBoxAboutDialog);
|
||||
builder->get_widget("aboutWindows", aboutWindows);
|
||||
builder->get_widget("headerAboutTopic", headerAboutTopic);
|
||||
}
|
||||
|
||||
void View_about::settings() {
|
||||
this->get_builder();
|
||||
this->lacalization();
|
||||
btnBoxAboutDialog->set_visible(false);
|
||||
}
|
||||
|
||||
View_about* View_about::get_self() {
|
||||
return this;
|
||||
}
|
@ -1,29 +0,0 @@
|
||||
#ifndef VIEW_ABOUT_H
|
||||
#define VIEW_ABOUT_H
|
||||
#include "../project_lib.h"
|
||||
#include "model/util.h"
|
||||
#include "../var.h"
|
||||
|
||||
class View_about
|
||||
{
|
||||
private:
|
||||
string version_application;
|
||||
private:
|
||||
Glib::RefPtr<Gtk::Builder> builder;
|
||||
Gtk::Label *headerAboutTopic;
|
||||
Gtk::ButtonBox *btnBoxAboutDialog;
|
||||
public:
|
||||
Gtk::AboutDialog *aboutWindows;
|
||||
public:
|
||||
View_about();
|
||||
~View_about();
|
||||
void lacalization();
|
||||
void event();
|
||||
View_about* get_self();
|
||||
void get_builder();
|
||||
void settings();
|
||||
void show();
|
||||
void set_path_glade(string str_path_glade);
|
||||
void set_version(string version_application);
|
||||
};
|
||||
#endif
|
@ -1,123 +1,109 @@
|
||||
#include "view_filters.h"
|
||||
#include "filters.h"
|
||||
|
||||
View_filters::View_filters(/* args */){
|
||||
builder = Gtk::Builder::create_from_file(path_glade);
|
||||
this->settings();
|
||||
filters_window *filters_widgets = NULL;
|
||||
gboolean flag_filters[8];
|
||||
filters_window *filters_setup_window(char* glade_path){
|
||||
if (filters_widgets == NULL) {
|
||||
filters_widgets = malloc(sizeof(filters_window));
|
||||
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path);
|
||||
filters_widgets->Window = yon_gtk_builder_get_widget(builder,"wndFilters");
|
||||
filters_widgets->chbFilterName = yon_gtk_builder_get_widget(builder,"chbFilterName");
|
||||
filters_widgets->chbFilterSoftLimitFile = yon_gtk_builder_get_widget(builder,"chbFilterSoftLimitFile");
|
||||
filters_widgets->chbFilterFiles = yon_gtk_builder_get_widget(builder,"chbFilterFiles");
|
||||
filters_widgets->chbFilterHardLimitSizeDelay = yon_gtk_builder_get_widget(builder,"chbFilterHardLimitSizeDelay");
|
||||
filters_widgets->chbFilterHardLimitSize = yon_gtk_builder_get_widget(builder,"chbFilterHardLimitSize");
|
||||
filters_widgets->chbFilterSoftLimitSize = yon_gtk_builder_get_widget(builder,"chbFilterSoftLimitSize");
|
||||
filters_widgets->chbFilterQuotas = yon_gtk_builder_get_widget(builder,"chbFilterQuotas");
|
||||
filters_widgets->chbFilterSize = yon_gtk_builder_get_widget(builder,"chbFilterSize");
|
||||
filters_widgets->btnFiltersCancel = yon_gtk_builder_get_widget(builder,"btnFiltersCancel");
|
||||
filters_widgets->btnFiltersSave = yon_gtk_builder_get_widget(builder,"btnFiltersSave");
|
||||
filters_widgets->chbFilterHardLimitFile = yon_gtk_builder_get_widget(builder,"chbFilterHardLimitFile");
|
||||
filters_widgets->chbFilterHardLimitFileDelay = yon_gtk_builder_get_widget(builder,"chbFilterHardLimitFileDelay");
|
||||
filters_widgets->chbTemplate = yon_gtk_builder_get_widget(builder,"chbTemplate");
|
||||
if (filters_widgets->name == "Project") {
|
||||
|
||||
}
|
||||
|
||||
filters_event(filters_widgets);
|
||||
}
|
||||
filters_set_flag();
|
||||
return filters_widgets;
|
||||
}
|
||||
void filters_set_name(string name) {
|
||||
if (name == "Project") {
|
||||
filters_widgets->name = name;
|
||||
}
|
||||
|
||||
View_filters::~View_filters()
|
||||
{
|
||||
}
|
||||
|
||||
void View_filters::settings() {
|
||||
this->get_builder();
|
||||
this->lacalization();
|
||||
this->set_map_flag(chbFilterName);
|
||||
this->set_map_flag(chbFilterQuotas);
|
||||
this->set_map_flag(chbFilterSize);
|
||||
this->set_map_flag(chbFilterSoftLimitSize);
|
||||
this->set_map_flag(chbFilterHardLimitSize);
|
||||
this->set_map_flag(chbFilterHardLimitSizeDelay);
|
||||
this->set_map_flag(chbFilterFiles);
|
||||
this->set_map_flag(chbFilterSoftLimitFile);
|
||||
this->set_map_flag(chbFilterHardLimitFile);
|
||||
this->set_map_flag(chbFilterHardLimitFileDelay);
|
||||
this->event();
|
||||
void filters_event(filters_window *widgets) {
|
||||
g_signal_connect(G_OBJECT(widgets->btnFiltersCancel), "clicked",G_CALLBACK(filters_on_hide_subwindow),NULL);
|
||||
g_signal_connect(G_OBJECT(widgets->Window), "destroy", G_CALLBACK(filters_destroy), NULL);
|
||||
}
|
||||
|
||||
void View_filters::get_builder() {
|
||||
builder->get_widget("wndFilters", wndFilters);
|
||||
builder->get_widget("chbFilterName", chbFilterName);
|
||||
builder->get_widget("chbFilterQuotas", chbFilterQuotas);
|
||||
builder->get_widget("chbFilterSize", chbFilterSize);
|
||||
builder->get_widget("chbFilterSoftLimitSize", chbFilterSoftLimitSize);
|
||||
builder->get_widget("chbFilterHardLimitSize", chbFilterHardLimitSize);
|
||||
builder->get_widget("chbFilterHardLimitSizeDelay", chbFilterHardLimitSizeDelay);
|
||||
builder->get_widget("chbFilterFiles", chbFilterFiles);
|
||||
builder->get_widget("chbFilterSoftLimitFile", chbFilterSoftLimitFile);
|
||||
builder->get_widget("chbFilterHardLimitFile", chbFilterHardLimitFile);
|
||||
builder->get_widget("chbFilterHardLimitFileDelay", chbFilterHardLimitFileDelay);
|
||||
builder->get_widget("lblFiltersHead", lblFiltersHead);
|
||||
builder->get_widget("btnFiltersSave", btnFiltersSave);
|
||||
builder->get_widget("btnFiltersCancel", btnFiltersCancel);
|
||||
lblFiltersHead->set_label(str_filters);
|
||||
void filters_destroy(GtkWidget *self) {
|
||||
filters_widgets = NULL;
|
||||
}
|
||||
|
||||
void View_filters::show() {
|
||||
this->set_map_flag_false();
|
||||
wndFilters->show();
|
||||
}
|
||||
void filters_localization(filters_window *widgets) {
|
||||
|
||||
void View_filters::lacalization() {
|
||||
/*
|
||||
chbFilterName->set_label(str_name);
|
||||
chbFilterQuotas->set_label(str_quotas);
|
||||
chbFilterSize->set_label(str_size);
|
||||
chbFilterSoftLimitSize->set_label(str_soft_limit_size);
|
||||
chbFilterHardLimitSize->set_label(str_hard_limit_size);
|
||||
chbFilterHardLimitSizeDelay->set_label(str_deferring_hard_limit_size);
|
||||
chbFilterFiles->set_label(str_files);
|
||||
chbFilterSoftLimitFile->set_label(str_soft_restriction_files);
|
||||
chbFilterHardLimitFile->set_label(str_severe_limitation_files);
|
||||
chbFilterHardLimitFileDelay->set_label(str_deferring_limit_files);
|
||||
*/
|
||||
}
|
||||
|
||||
void View_filters::event() {
|
||||
chbFilterName->signal_toggled().connect(
|
||||
sigc::bind<Gtk::CheckButton*> (sigc::mem_fun(*this,
|
||||
&View_filters::set_map_flag), chbFilterName));
|
||||
chbFilterQuotas->signal_toggled().connect(
|
||||
sigc::bind<Gtk::CheckButton*> (sigc::mem_fun(*this,
|
||||
&View_filters::set_map_flag), chbFilterQuotas));
|
||||
chbFilterSize->signal_toggled().connect(
|
||||
sigc::bind<Gtk::CheckButton*> (sigc::mem_fun(*this,
|
||||
&View_filters::set_map_flag), chbFilterSize));
|
||||
chbFilterSoftLimitSize->signal_toggled().connect(
|
||||
sigc::bind<Gtk::CheckButton*> (sigc::mem_fun(*this,
|
||||
&View_filters::set_map_flag), chbFilterSoftLimitSize));
|
||||
chbFilterHardLimitSize->signal_toggled().connect(
|
||||
sigc::bind<Gtk::CheckButton*> (sigc::mem_fun(*this,
|
||||
&View_filters::set_map_flag), chbFilterHardLimitSize));
|
||||
chbFilterHardLimitSizeDelay->signal_toggled().connect(
|
||||
sigc::bind<Gtk::CheckButton*> (sigc::mem_fun(*this,
|
||||
&View_filters::set_map_flag), chbFilterHardLimitSizeDelay));
|
||||
chbFilterFiles->signal_toggled().connect(
|
||||
sigc::bind<Gtk::CheckButton*> (sigc::mem_fun(*this,
|
||||
&View_filters::set_map_flag), chbFilterFiles));
|
||||
chbFilterSoftLimitFile->signal_toggled().connect(
|
||||
sigc::bind<Gtk::CheckButton*> (sigc::mem_fun(*this,
|
||||
&View_filters::set_map_flag), chbFilterSoftLimitFile));
|
||||
chbFilterHardLimitFile->signal_toggled().connect(
|
||||
sigc::bind<Gtk::CheckButton*> (sigc::mem_fun(*this,
|
||||
&View_filters::set_map_flag), chbFilterHardLimitFile));
|
||||
chbFilterHardLimitFileDelay->signal_toggled().connect(
|
||||
sigc::bind<Gtk::CheckButton*> (sigc::mem_fun(*this,
|
||||
&View_filters::set_map_flag), chbFilterHardLimitFileDelay));
|
||||
btnFiltersSave->signal_clicked().connect(sigc::mem_fun(*this,
|
||||
&View_filters::btn_save));
|
||||
btnFiltersCancel->signal_clicked().connect(sigc::mem_fun(*this,
|
||||
&View_filters::btn_cancel));
|
||||
void filters_on_hide_subwindow(GtkWidget *self) {
|
||||
gtk_widget_destroy(gtk_widget_get_toplevel(self));
|
||||
filters_widgets = NULL;
|
||||
}
|
||||
|
||||
void View_filters::set_map_flag(Gtk::CheckButton* check_button) {
|
||||
map_filters_flag[check_button->get_label()] = check_button->get_active();
|
||||
filters_window *get_widget_filters() {
|
||||
return filters_widgets;
|
||||
}
|
||||
|
||||
void View_filters::btn_save() {
|
||||
wndFilters->hide();
|
||||
void filters_show(GtkWidget *self, char* glade_path) {
|
||||
if (filters_widgets != NULL) {
|
||||
gtk_widget_show_all(filters_widgets->Window);
|
||||
}
|
||||
else {
|
||||
filters_setup_window(glade_path);
|
||||
gtk_widget_show_all(filters_widgets->Window);
|
||||
}
|
||||
}
|
||||
|
||||
void View_filters::btn_cancel() {
|
||||
wndFilters->hide();
|
||||
gboolean* filters_get_flag() {
|
||||
flag_filters[0] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterName));
|
||||
flag_filters[1] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterSoftLimitFile));
|
||||
flag_filters[2] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterFiles));
|
||||
flag_filters[3] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitSizeDelay));
|
||||
flag_filters[4] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitSize));
|
||||
flag_filters[5] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterQuotas));
|
||||
flag_filters[6] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterSoftLimitSize));
|
||||
flag_filters[7] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterSize));
|
||||
flag_filters[8] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitFile));
|
||||
flag_filters[9] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitFileDelay));
|
||||
return flag_filters;
|
||||
}
|
||||
|
||||
map<string, bool> View_filters::get_filters() {
|
||||
return map_filters_flag;
|
||||
void filters_init_flag() {
|
||||
flag_filters[0] = 1;
|
||||
flag_filters[1] = 1;
|
||||
flag_filters[2] = 1;
|
||||
flag_filters[3] = 1;
|
||||
flag_filters[4] = 1;
|
||||
flag_filters[5] = 1;
|
||||
flag_filters[6] = 1;
|
||||
flag_filters[7] = 1;
|
||||
flag_filters[8] = 1;
|
||||
flag_filters[9] = 1;
|
||||
}
|
||||
|
||||
void View_filters::set_map_flag_false() {
|
||||
for (auto& [key, value]: map_filters_flag) {
|
||||
map_filters_flag[key] = false;
|
||||
}
|
||||
void filters_set_flag() {
|
||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterName),flag_filters[0] );
|
||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterSoftLimitFile), flag_filters[1]);
|
||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterFiles), flag_filters[2]);
|
||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitSizeDelay), flag_filters[3]);
|
||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitSize), flag_filters[4]);
|
||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterQuotas), flag_filters[5]);
|
||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterSoftLimitSize), flag_filters[6]);
|
||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterSize), flag_filters[7]);
|
||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitFile), flag_filters[8]);
|
||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filters_widgets->chbFilterHardLimitFileDelay), flag_filters[9]);
|
||||
}
|
@ -1,46 +1,48 @@
|
||||
#ifndef VIEW_FILTERS_H
|
||||
#define VIEW_FILTERS_H
|
||||
#include "../project_lib.h"
|
||||
#include "../var.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
class View_filters
|
||||
{
|
||||
private:
|
||||
map<string, bool> map_filters_flag;
|
||||
private:
|
||||
Glib::RefPtr<Gtk::Builder> builder;
|
||||
Gtk::Window *wndFilters;
|
||||
Gtk::CheckButton *chbFilterName;
|
||||
Gtk::CheckButton *chbFilterQuotas;
|
||||
Gtk::CheckButton *chbFilterSize;
|
||||
Gtk::CheckButton *chbFilterSoftLimitSize;
|
||||
Gtk::CheckButton *chbFilterHardLimitSize;
|
||||
Gtk::CheckButton *chbFilterHardLimitSizeDelay;
|
||||
Gtk::CheckButton *filtersHardSizeActivationFilterCheckbox;
|
||||
Gtk::CheckButton *chbFilterFiles;
|
||||
Gtk::CheckButton *chbFilterSoftLimitFile;
|
||||
Gtk::CheckButton *chbFilterHardLimitFile;
|
||||
Gtk::CheckButton *chbFilterHardLimitFileDelay;
|
||||
Gtk::Label *lblFiltersHead;
|
||||
Gtk::Button *btnFiltersSave;
|
||||
Gtk::Button *btnFiltersCancel;
|
||||
public:
|
||||
View_filters(/* args */);
|
||||
~View_filters();
|
||||
void lacalization();
|
||||
void event();
|
||||
void get_builder();
|
||||
void settings();
|
||||
void show();
|
||||
private:
|
||||
void set_map_flag(Gtk::CheckButton* check_button);
|
||||
void btn_save();
|
||||
void btn_cancel();
|
||||
void set_map_flag_false();
|
||||
map<string, bool> get_filters();
|
||||
};
|
||||
#endif
|
||||
#ifndef FILTERS_H
|
||||
#define FILTERS_H
|
||||
#include <gtk/gtk.h>
|
||||
#include <gtk/gtkx.h>
|
||||
#include "ubl-utils.h"
|
||||
#include "ubl-strings.h"
|
||||
#include <locale.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <libintl.h>
|
||||
#include <getopt.h>
|
||||
#include <libintl.h>
|
||||
#include "philos_utils.h"
|
||||
#include <string.h>
|
||||
|
||||
// Переменные
|
||||
typedef struct {
|
||||
GtkWidget* Window;
|
||||
GtkWidget* btnFiltersSave;
|
||||
GtkWidget* btnFiltersCancel;
|
||||
GtkWidget* chbFilterName;
|
||||
GtkWidget* chbFilterQuotas;
|
||||
GtkWidget* chbFilterSize;
|
||||
GtkWidget* chbFilterSoftLimitSize;
|
||||
GtkWidget* chbFilterHardLimitSize;
|
||||
GtkWidget* chbFilterHardLimitSizeDelay;
|
||||
GtkWidget* chbFilterFiles;
|
||||
GtkWidget* chbFilterSoftLimitFile;
|
||||
GtkWidget* chbFilterHardLimitFile;
|
||||
GtkWidget* chbFilterHardLimitFileDelay;
|
||||
GtkWidget* chbTemplate;
|
||||
string *name;
|
||||
} filters_window;
|
||||
|
||||
// Функции
|
||||
filters_window *filters_setup_window(char* glade_path);
|
||||
void filters_event(filters_window *widgets);
|
||||
void filters_localization(filters_window *widgets);
|
||||
void filters_on_hide_subwindow(GtkWidget *self);
|
||||
filters_window *get_widget_filters();
|
||||
void filters_show(GtkWidget *self, char* glade_path);
|
||||
void filters_destroy(GtkWidget *self);
|
||||
int* filters_get_flag();
|
||||
void filters_init_flag();
|
||||
void filters_set_flag();
|
||||
void filters_set_name(char *name)
|
||||
#endif
|
@ -1,121 +0,0 @@
|
||||
#include "view_open_browser.h"
|
||||
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
View_open_browser::~View_open_browser() {
|
||||
}
|
||||
|
||||
void View_open_browser::settings() {
|
||||
obj_open_browser = this;
|
||||
this->get_builder();
|
||||
#ifdef WEBKIT_FOUND
|
||||
my_web_kit = WEBKIT_WEB_VIEW( webkit_web_view_new() );
|
||||
three = Glib::wrap(GTK_WIDGET(my_web_kit));
|
||||
wndWeb->add(*three);
|
||||
#endif
|
||||
this->lacalization();
|
||||
this->event();
|
||||
}
|
||||
|
||||
void View_open_browser::set_obj_about(View_about* obj_view_about) {
|
||||
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() {
|
||||
#ifdef WEBKIT_FOUND
|
||||
builder->get_widget("wndWeb", wndWeb);
|
||||
#endif
|
||||
builder->get_widget("lblHeadeWndWeb", lblHeadeWndWeb);
|
||||
builder->get_widget("lblwebHeaderName", lblwebHeaderName);
|
||||
builder->get_widget("lblhelpText", lblhelpText);
|
||||
builder->get_widget("lblhelpHeader", lblhelpHeader);
|
||||
builder->get_widget("chkAlwaysOpenHelp", chkAlwaysOpenHelp);
|
||||
builder->get_widget("btnReadHelp", btnReadHelp);
|
||||
builder->get_widget("btnCancelHelp", btnCancelHelp);
|
||||
builder->get_widget("wndShowWeb", wndShowWeb);
|
||||
|
||||
}
|
||||
void View_open_browser::lacalization() {
|
||||
lblwebHeaderName->set_label(name_app);
|
||||
lblhelpText->set_text(redirected_documentation);
|
||||
btnReadHelp->set_label(read_online);
|
||||
btnCancelHelp->set_label(cancel);
|
||||
chkAlwaysOpenHelp->set_label(always_redirect);
|
||||
lblhelpHeader->set_text(read_documentation_web);
|
||||
}
|
||||
|
||||
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();});
|
||||
chkAlwaysOpenHelp->signal_toggled().connect([&]() {flag_open_browser = true;});
|
||||
btnReadHelp->signal_clicked().connect(sigc::mem_fun(*this, &View_open_browser::open_browser));
|
||||
}
|
||||
|
||||
void View_open_browser::temp_help_show() {
|
||||
if (flag_open_browser == true) {
|
||||
this->open_browser();
|
||||
}
|
||||
else {
|
||||
wndShowWeb->show_all();
|
||||
}
|
||||
}
|
||||
|
||||
void View_open_browser::open_browser() {
|
||||
#ifdef WEBKIT_FOUND
|
||||
if (my_web_kit) {
|
||||
gtk_widget_destroy(GTK_WIDGET(my_web_kit));
|
||||
}
|
||||
my_web_kit = WEBKIT_WEB_VIEW(webkit_web_view_new());
|
||||
three = Glib::wrap(GTK_WIDGET(my_web_kit));
|
||||
wndWeb->add(*three);
|
||||
webkit_web_view_load_uri(my_web_kit, _(global_lick_doc.c_str()));
|
||||
wndWeb->show_all();
|
||||
webkit_web_view_load_uri(my_web_kit, _(global_lick_doc.c_str()));
|
||||
wndWeb->show_all();
|
||||
webkit_web_view_load_uri(my_web_kit, _(global_lick_doc.c_str()));
|
||||
wndWeb->show_all();
|
||||
#else
|
||||
this->template_open_browser(global_lick_doc);
|
||||
#endif
|
||||
this->wndShowWeb->hide();
|
||||
}
|
||||
|
||||
int View_open_browser::template_open_browser(string str_link_doc) {
|
||||
string cmd = cmd_xdg + string(_(str_link_doc.c_str())) + " &";
|
||||
string buf = "";
|
||||
if (geteuid() == 0) {
|
||||
string response_user = getlogin();
|
||||
int size_s = std::snprintf(nullptr, 0, cmd_execute, response_user.c_str(), cmd.c_str()) + 1;
|
||||
auto size = static_cast<size_t>(size_s);
|
||||
std::unique_ptr<char[]> buf(new char[ size ]);
|
||||
std::snprintf(buf.get(), size, cmd_execute, response_user.c_str(), cmd.c_str());
|
||||
cmd = string(buf.get(), buf.get() + size - 1);
|
||||
}
|
||||
return system(cmd.c_str());
|
||||
|
||||
}
|
||||
void View_open_browser::open_help() {
|
||||
global_lick_doc = const_link_doc;
|
||||
temp_help_show();
|
||||
}
|
||||
|
||||
View_about* View_open_browser::get_about() {
|
||||
return obj_view_about;
|
||||
}
|
@ -1,50 +0,0 @@
|
||||
#ifndef VIEW_OPEN_BROWSER_H
|
||||
#define VIEW_OPEN_BROWSER_H
|
||||
|
||||
#include "../project_lib.h"
|
||||
#include "view_about.h"
|
||||
#ifdef WEBKIT_FOUND
|
||||
#include <webkit2/webkit2.h>
|
||||
#endif
|
||||
#include "../var.h"
|
||||
|
||||
class View_open_browser {
|
||||
private:
|
||||
bool flag_open_browser = false;
|
||||
View_about* obj_view_about;
|
||||
private:
|
||||
Glib::RefPtr<Gtk::Builder> builder;
|
||||
Gtk::Button *btnReadHelp;
|
||||
Gtk::Button *btnCancelHelp;
|
||||
Gtk::CheckButton *chkAlwaysOpenHelp;
|
||||
Gtk::Label *lblwebHeaderName;
|
||||
Gtk::Label *lblhelpText;
|
||||
Gtk::Label *lblhelpHeader;
|
||||
Gtk::Label *lblHeadeWndWeb;
|
||||
public:
|
||||
string global_lick_doc;
|
||||
Gtk::Window *wndShowWeb;
|
||||
#ifdef WEBKIT_FOUND
|
||||
Gtk::Window *wndWeb;
|
||||
Gtk::Widget *three;
|
||||
WebKitWebView *my_web_kit = NULL;
|
||||
#endif
|
||||
public:
|
||||
View_open_browser(/* args */);
|
||||
~View_open_browser();
|
||||
void lacalization();
|
||||
void event();
|
||||
void get_builder();
|
||||
void settings();
|
||||
void show();
|
||||
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:
|
||||
int template_open_browser(string str_link_doc);
|
||||
void open_browser();
|
||||
};
|
||||
void wrapper_help_show(GtkWidget *self, char* link, gpointer user_data);
|
||||
#endif
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
@ -1,154 +1,108 @@
|
||||
.textHead{
|
||||
text-shadow: 2px 2px @theme_bg_color;
|
||||
color: @theme_text_color;
|
||||
}
|
||||
.boxInfoMessError{
|
||||
background-color: #ea9999;
|
||||
}
|
||||
.boxInfoMessOK{
|
||||
background-color: #f3f0ac;
|
||||
}
|
||||
.bannerbackground {
|
||||
background-color: #404040;
|
||||
}
|
||||
.view_app {
|
||||
background-color: @theme_bg_color;
|
||||
}
|
||||
.view_app.view.cell:selected {
|
||||
background-color:@theme_selected_bg_color;
|
||||
color:@theme_selected_text_color;
|
||||
transition: 10ms ease-out;
|
||||
border-radius: 3px;
|
||||
}
|
||||
#GnomeIcon{
|
||||
border-style:solid;
|
||||
border-bottom-width: 1px;
|
||||
border-image: linear-gradient(90deg, alpha(@theme_text_color,0.4) 55%, alpha(@theme_bg_color, 0) 100%);
|
||||
border-image-slice: 1;
|
||||
}
|
||||
|
||||
#SepIcon{
|
||||
background-color: alpha(@theme_text_color, 0.6);
|
||||
}
|
||||
|
||||
#iconlabel {
|
||||
font-size:14px;
|
||||
font-weight: bold;
|
||||
|
||||
}
|
||||
.roundborder * {
|
||||
border-width:0px;
|
||||
border-radius:5px;
|
||||
.thin {
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
}
|
||||
.noborder {
|
||||
border: none;
|
||||
border:none;
|
||||
}
|
||||
.menu:hover {
|
||||
border-color:alpha(@theme_text_color, 0.01);
|
||||
.nobackground {
|
||||
background:transparent;
|
||||
}
|
||||
.menu {
|
||||
border-color:alpha(@theme_text_color, 0.01);
|
||||
.nobackground:active {
|
||||
background:transparent;
|
||||
}
|
||||
.menu:hover >* {
|
||||
border-color:alpha(@theme_text_color, 0.01);
|
||||
}
|
||||
.menuitembottom{
|
||||
margin-top:0px;
|
||||
margin-bottom:3px;
|
||||
}
|
||||
.menuitemmiddle{
|
||||
margin-top:0px;
|
||||
margin-bottom:0px;
|
||||
.textHead{
|
||||
text-shadow: 2px 2px @theme_bg_color;
|
||||
color: @theme_text_color;
|
||||
}
|
||||
|
||||
.menuitemtop{
|
||||
margin-bottom:0px;
|
||||
}
|
||||
.menuitemtop *{
|
||||
margin:2px 2px 0 2px;
|
||||
padding: 5px 10px 3px 5px;
|
||||
}
|
||||
.menuitemmiddle *{
|
||||
margin:0 2px 0 2px;
|
||||
padding: 3px 10px 3px 5px;
|
||||
.inherited>* {
|
||||
border:none;
|
||||
background:inherit;
|
||||
}
|
||||
.menuitembottom *{
|
||||
margin:0 2px 2px 2px;
|
||||
padding: 3px 10px 5px 5px;
|
||||
.workingbg {
|
||||
background:@theme_base_color;
|
||||
}
|
||||
.menuitemtop:hover {
|
||||
background:@theme_bg_color;
|
||||
border-color:inherit;
|
||||
border-left-width:inherit;
|
||||
border-right-width:inherit;
|
||||
}
|
||||
.menuitemmiddle:hover {
|
||||
background:@theme_bg_color;
|
||||
border-color:inherit;
|
||||
border-left-width:inherit;
|
||||
border-right-width:inherit;
|
||||
}
|
||||
.menuitembottom:hover {
|
||||
background:@theme_bg_color;
|
||||
border-color:inherit;
|
||||
border-left-width:inherit;
|
||||
border-right-width:inherit;
|
||||
.menuitembottom{
|
||||
margin-top:0px;
|
||||
margin-bottom:3px;
|
||||
border-color:inherit;
|
||||
border-left-width:inherit;
|
||||
border-right-width:inherit;
|
||||
}
|
||||
.menuitemmiddle{
|
||||
margin-top:0px;
|
||||
margin-bottom:0px;
|
||||
border-color:inherit;
|
||||
border-left-width:inherit;
|
||||
border-right-width:inherit;
|
||||
}
|
||||
|
||||
}
|
||||
.menuitemtop:hover* {
|
||||
margin:2px 2px 0 2px;
|
||||
padding: 5px 10px 3px 5px;
|
||||
background:@theme_selected_bg_color;
|
||||
border-radius:2px;
|
||||
}
|
||||
.menuitemmiddle:hover* {
|
||||
margin:0 2px 0 2px;
|
||||
padding: 3px 10px 3px 5px;
|
||||
background:@theme_selected_bg_color;
|
||||
border-radius:2px;
|
||||
}
|
||||
.menuitembottom:hover* {
|
||||
margin:0 2px 2px 2px;
|
||||
padding: 3px 10px 5px 5px;
|
||||
background:@theme_selected_bg_color;
|
||||
border-radius:2px;
|
||||
}
|
||||
|
||||
.workingbg, #workingbg {
|
||||
background-color:@theme_base_color;
|
||||
}
|
||||
.workingbg.view.cell:selected {
|
||||
background-color:@theme_selected_bg_color;
|
||||
}
|
||||
.workingbg.view.cell:hover {
|
||||
background-color:darker(@theme_selected_bg_color);
|
||||
color:@theme_selected_text_color;
|
||||
border-radius:3px;
|
||||
}
|
||||
.bkim {
|
||||
transition: 200ms ease-out;
|
||||
background-image: none;
|
||||
}
|
||||
.noborder{
|
||||
border:none;
|
||||
}
|
||||
|
||||
.bkim{
|
||||
opacity:0.99;
|
||||
border:none;
|
||||
.menuitemtop{
|
||||
margin-bottom:0px;
|
||||
border-color:inherit;
|
||||
border-top-width:inherit;
|
||||
border-left-width:inherit;
|
||||
border-right-width:inherit;
|
||||
}
|
||||
.menuitemtop *{
|
||||
margin:2px 2px 0 2px;
|
||||
padding: 5px 10px 3px 5px;
|
||||
border:transparent;
|
||||
}
|
||||
.menuitemmiddle *{
|
||||
margin:0 2px 0 2px;
|
||||
padding: 3px 10px 3px 5px;
|
||||
border:transparent;
|
||||
}
|
||||
.menuitembottom *{
|
||||
margin:0 2px 2px 2px;
|
||||
padding: 3px 10px 5px 5px;
|
||||
}
|
||||
.menuitemtop:hover {
|
||||
background:@theme_bg_color;
|
||||
border-color:inherit;
|
||||
border-top-width:inherit;
|
||||
border-left-width:inherit;
|
||||
border-right-width:inherit;
|
||||
}
|
||||
.menuitemmiddle:hover {
|
||||
background:@theme_bg_color;
|
||||
border-color:inherit;
|
||||
border-left-width:inherit;
|
||||
border-right-width:inherit;
|
||||
}
|
||||
.menuitembottom:hover {
|
||||
background:@theme_bg_color;
|
||||
border-color:inherit;
|
||||
border-bottom-width:0px;
|
||||
border-left-width:inherit;
|
||||
border-right-width:inherit;
|
||||
|
||||
}
|
||||
.menuitemtop:hover* {
|
||||
margin:2px 2px 0 2px;
|
||||
padding: 5px 10px 3px 5px;
|
||||
background:@theme_selected_bg_color;
|
||||
border-radius:2px;
|
||||
}
|
||||
.menuitemmiddle:hover* {
|
||||
margin:0 2px 0 2px;
|
||||
padding: 3px 10px 3px 5px;
|
||||
background:@theme_selected_bg_color;
|
||||
border-radius:2px;
|
||||
}
|
||||
.menuitembottom:hover* {
|
||||
margin:0 2px 2px 2px;
|
||||
padding: 3px 10px 5px 5px;
|
||||
background:@theme_selected_bg_color;
|
||||
border-radius:2px;
|
||||
}
|
||||
.boxInfoMessError{
|
||||
background-color: #ea9999;
|
||||
}
|
||||
|
||||
.bkim_no_plug{
|
||||
background-color: transparent;
|
||||
opacity:0.99;
|
||||
}
|
||||
.thin{
|
||||
margin:0px;
|
||||
padding: 0px;
|
||||
}
|
||||
.nobg{
|
||||
background: none;
|
||||
}
|
||||
.addbg * {
|
||||
background-color: @theme_bg_color;
|
||||
.boxInfoMessOK{
|
||||
background-color: #f3f0ac;
|
||||
}
|
@ -1,15 +1,15 @@
|
||||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
Name=Setting user quotas
|
||||
Name[ru]=Настройка квот пользователей
|
||||
GenericName=Setting user quotas
|
||||
GenericName[ru]=Настройка квот пользователей
|
||||
Comment=Configuring disk quota settings for system groups and users
|
||||
Comment[ru]=Настройка параметров дисковых квот для системных групп и пользователей системы
|
||||
Name=ubl-settings-diskquota
|
||||
Name[ru]=TEMPLATE
|
||||
GenericName=ubl-settings-diskquota
|
||||
GenericName[ru]=TEMPLATE
|
||||
Comment=ubl-settings-diskquota
|
||||
Comment[ru]=Приложение для TEMPLATE
|
||||
Type=Application
|
||||
Exec=pkexec ubl-settings-diskquota
|
||||
Icon=com.ublinux.ubl-settings-diskquota
|
||||
Terminal=false
|
||||
X-XfcePluggable=true
|
||||
X-UBLPluggable=true
|
||||
Categories=XFCE;GTK;Settings;DesktopSettings;X-XFCE-SettingsDialog;X-XFCE-SystemSettings;X-UBL-SettingsManager;X-UBL-SystemSettings;
|
||||
Categories=XFCE;GTK;Settings;DesktopSettings;X-XFCE-SettingsDialog;X-XFCE-SystemSettings;X-UBL-SettingsManager;X-UBL-Personal-Settings;
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue