|
|
#include <gtk/gtk.h>
|
|
|
#include <gtk/gtkx.h>
|
|
|
#include "ubl-utils.h"
|
|
|
#include <locale.h>
|
|
|
#include <stdio.h>
|
|
|
#include <unistd.h>
|
|
|
#include <stdlib.h>
|
|
|
#include <libintl.h>
|
|
|
#include <getopt.h>
|
|
|
#include <libintl.h>
|
|
|
#include <vte/vte.h>
|
|
|
#include "ubl-cmake.h"
|
|
|
#include "view_add.h"
|
|
|
#include "filters.h"
|
|
|
#include "view_edit.h"
|
|
|
#include "my_device.h"
|
|
|
|
|
|
#ifdef WEBKIT_FOUND
|
|
|
#include <webkit2/webkit2.h>
|
|
|
#endif
|
|
|
#include "ubl-strings.h"
|
|
|
|
|
|
#define WIKI_LINK "https://wiki.ublinux.ru/ru/Программное_обеспечение/Программы_и_утилиты/Все/ubl-settings-resourcequota"
|
|
|
|
|
|
#define _(String) gettext(String)
|
|
|
|
|
|
#define glade_path "/usr/share/ubl-settings-resourcequota/ui/ubl-settings-resourcequota.glade"
|
|
|
#define banner_path "/usr/share/ubl-settings-resourcequota/images/ubl-settings-resourcequota-banner.png"
|
|
|
#define CssPath "/usr/share/ubl-settings-resourcequota/css/ubl-settings-resourcequota.css"
|
|
|
|
|
|
#define LocalePath "/usr/share/locale"
|
|
|
#define LocaleName "ubl-settings-resourcequota"
|
|
|
#define CMD_LOAD_GLOBAL "ubconfig --default --source global get security"
|
|
|
#define CMD_LOAD_SYSTEM "ubconfig --default --source system get security"
|
|
|
#define CMD_SAVE_GLOBAL "ubconfig --default --source global set security"
|
|
|
#define CMD_SAVE_SYSTEM "ubconfig --default --source system set security"
|
|
|
#define CMD_GET_SLICE_SERVICE "systemd-cgls --no-page"
|
|
|
#define CMD_GET_GROUP "cut -d: -f1 /etc/group"
|
|
|
typedef char *string;
|
|
|
string version_application = "";
|
|
|
|
|
|
static char *local;
|
|
|
|
|
|
typedef struct
|
|
|
{
|
|
|
int always_open_documentation;
|
|
|
int win_pos_x;
|
|
|
int win_pos_y;
|
|
|
int win_width;
|
|
|
int win_height;
|
|
|
|
|
|
int socket_id;
|
|
|
int load_socket_id;
|
|
|
int save_socket_id;
|
|
|
|
|
|
int lock_help;
|
|
|
int lock_save_local;
|
|
|
int lock_save_global;
|
|
|
int lock_load_global;
|
|
|
|
|
|
GtkListStore *list;
|
|
|
config_str load_system_value;
|
|
|
config_str load_global_value;
|
|
|
config_str cfg_gui_value;
|
|
|
|
|
|
config_str load_system_key;
|
|
|
config_str load_global_key;
|
|
|
|
|
|
render_data status_render;
|
|
|
config_str type_quota;
|
|
|
config_str quota_volume;
|
|
|
config_str soft_raw_limit;
|
|
|
config_str hard_raw_limit;
|
|
|
config_str swap;
|
|
|
config_str cpu_limit;
|
|
|
config_str i_o_limit_read;
|
|
|
config_str i_o_limit_write;
|
|
|
config_str disk;
|
|
|
|
|
|
int *type_quota_size;
|
|
|
int *quota_volume_size;
|
|
|
int *soft_raw_limit_size;
|
|
|
int *hard_raw_limit_size;
|
|
|
int *swap_size;
|
|
|
int *cpu_limit_size;
|
|
|
int *i_o_limit_read_size;
|
|
|
int *i_o_limit_write_size;
|
|
|
int size_tree_view;
|
|
|
dictionary *load_global_cfg;
|
|
|
dictionary *load_system_cfg;
|
|
|
dictionary *save_cfg_gui;
|
|
|
} config;
|
|
|
|
|
|
typedef struct
|
|
|
{
|
|
|
GtkWidget *Window;
|
|
|
|
|
|
GtkTreeViewColumn *tvc0;
|
|
|
GtkTreeViewColumn *tvc1;
|
|
|
GtkTreeViewColumn *tvc2;
|
|
|
GtkTreeViewColumn *tvc3;
|
|
|
GtkTreeViewColumn *tvc4;
|
|
|
GtkTreeViewColumn *tvc5;
|
|
|
GtkTreeViewColumn *tvc6;
|
|
|
GtkTreeViewColumn *tvc7;
|
|
|
|
|
|
GtkWidget *btnDelQuotas;
|
|
|
GtkWidget *cbtMainInfoLevel2;
|
|
|
GtkWidget *cbtMainInfo;
|
|
|
GtkWidget *vteProcesses;
|
|
|
GtkWidget *vteInformation;
|
|
|
GtkWidget *btnMainShowCoreStream;
|
|
|
GtkWidget *btnMainShowAllEmpty;
|
|
|
GtkWidget *vteDispatcher;
|
|
|
GtkWidget *spinUpdateDispatcher;
|
|
|
GtkWidget *btnUpdateDispatcher;
|
|
|
GtkWidget *treeViewMain;
|
|
|
GtkWidget *btnSaveCfg;
|
|
|
GtkWidget *btnShowFilters;
|
|
|
GtkWidget *notebookMain;
|
|
|
GtkWidget *btnEdit;
|
|
|
GtkWidget *btnInfo;
|
|
|
GtkWidget *btnAdd;
|
|
|
GtkWidget *HatLabel;
|
|
|
GtkWidget *PlugBox;
|
|
|
|
|
|
GtkWidget *HeadOverlay;
|
|
|
GtkWidget *HeadImage;
|
|
|
GtkWidget *HeadBox;
|
|
|
GtkWidget *HeadTitleLabel;
|
|
|
GtkWidget *HeadInfoLabel;
|
|
|
|
|
|
GtkWidget *StatusBox;
|
|
|
GtkWidget *StatusIcon;
|
|
|
GtkWidget *StatusLabel;
|
|
|
|
|
|
GtkWidget *SaveLabel;
|
|
|
GtkWidget *SaveMenuItem;
|
|
|
GtkWidget *SaveGlobalMenuItem;
|
|
|
GtkWidget *SaveLocalMenuItem;
|
|
|
GtkWidget *RightBox;
|
|
|
|
|
|
GtkWidget *LoadLabel;
|
|
|
GtkWidget *LoadGlobalMenuItem;
|
|
|
GtkWidget *LoadLocalMenuItem;
|
|
|
GtkWidget *LeftBox;
|
|
|
|
|
|
GtkWidget *DocumentationMenuItem;
|
|
|
GtkWidget *AboutMenuItem;
|
|
|
} main_window;
|
|
|
|
|
|
typedef struct
|
|
|
{
|
|
|
GtkWidget *Window;
|
|
|
|
|
|
GtkWidget *HatText;
|
|
|
GtkWidget *HeaderText;
|
|
|
GtkWidget *InfoText;
|
|
|
GtkWidget *AlwaysOpenCheck;
|
|
|
|
|
|
GtkWidget *CloseButton;
|
|
|
GtkWidget *AcceptButton;
|
|
|
|
|
|
} documentation_confirmation_window;
|
|
|
|
|
|
main_window *setup_window();
|
|
|
void main_update_processes();
|
|
|
void config_init();
|
|
|
void event_all(main_window *widgets);
|
|
|
void main_event(main_window *widgets);
|
|
|
void info_show(GtkWidget *self);
|
|
|
void main_localization(main_window *widgets);
|
|
|
void main_visible_columns();
|
|
|
void wrapper_filters_show(GtkWidget *self);
|
|
|
void main_update_dispatcher();
|
|
|
void main_update_information();
|
|
|
void main_fill_combo_box_text(GtkWidget *cbt, config_str list_data, int size);
|
|
|
void main_cbx_2_event();
|
|
|
void tree_view_select(GtkWidget *self, main_window *widgets);
|
|
|
void tree_view_add(int index);
|
|
|
int tree_view_edit();
|
|
|
void main_add_btn_save();
|
|
|
void wrapper_add_show(GtkWidget *self);
|
|
|
void main_edit_btn_save();
|
|
|
void tree_view_del_line();
|
|
|
void main_fill_tree_view_after_remove();
|
|
|
void load_system_cfg();
|
|
|
void load_global_cfg();
|
|
|
void template_cfg(char *cmd, dictionary *load_cfg);
|
|
|
void str_split_value(char *values, int index);
|
|
|
void set_pow_size(char *str_find, int **array_size, char ***array_data, int index);
|
|
|
void str_split_key(char *source_value, int index);
|
|
|
void fill_tree_view(int start, int size, int flag_gui_add);
|
|
|
void clear_array();
|
|
|
void init_cfg_array(int index);
|
|
|
void wrapper_template_save(char *check_flag);
|
|
|
void wrapper_system_save();
|
|
|
void wrapper_global_save();
|
|
|
void wrapper_all_save();
|
|
|
void template_format_str_save(dictionary *load_cfg, char *source_cmd);
|