#include #include #include "ubl-utils.h" #include #include #include #include #include #include #include #include #include "ubl-cmake.h" #include "view_add.h" #include "filters.h" #include "view_edit.h" #include "my_device.h" #ifdef WEBKIT_FOUND #include #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);