diff --git a/source/project_lib.h b/source/project_lib.h index bc0b1d2..79c5c4d 100644 --- a/source/project_lib.h +++ b/source/project_lib.h @@ -23,4 +23,5 @@ #include #include #include "ubl-util-standard.c" +#include "ubl-settings-diskquota-cm.h" #endif \ No newline at end of file diff --git a/source/ubl-settings-diskquota.cc b/source/ubl-settings-diskquota.cc index ba1d46b..e21f793 100755 --- a/source/ubl-settings-diskquota.cc +++ b/source/ubl-settings-diskquota.cc @@ -47,11 +47,7 @@ void MainWindow::settings() { ,quotegroupFilesHarLimitLabel); obj_quotas_sys.set_map_gui(map_gui_cfg); obj_quotas_ubconfig.set_map_gui(map_gui_cfg); - #ifdef WEBKIT_FOUND - one = WEBKIT_WEB_VIEW( webkit_web_view_new() ); - three = Glib::wrap(GTK_WIDGET(one)); - wndWeb->add(*three); - #endif + if (geteuid() == 0) { this->load_system_cfg(); this->load_global_cfg(); @@ -234,12 +230,6 @@ void MainWindow::lacalization() { btnSaveLocal->set_label(save_local); ProjectTabLabel->set_label(str_projects); usersProjectLabel->set_text(str_device); - lblhelpHeader->set_text(read_documentation_web); - lblhelpText->set_text(redirected_documentation); - btnReadHelp->set_label(read_online); - btnCancelHelp->set_label(cancel); - chkAlwaysOpenHelp->set_label(always_redirect); - lblwebHeaderName->set_label(name_app); chbMangSystemFile->set_label(str_quotas_mode); lblSetDevice->set_text(str_device); lblQuotasStatus->set_text(str_quota_status); @@ -366,7 +356,6 @@ void MainWindow::get_builder() { 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); @@ -429,17 +418,6 @@ void MainWindow::get_builder() { builder->get_widget("btnFilterProject", btnFilterProject); builder->get_widget("btnFilterUsers", btnFilterUsers); builder->get_widget("btnFilterGroups", btnFilterGroups); - #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); builder->get_widget("chbMangSystemFile", chbMangSystemFile); builder->get_widget("btnDelGroups", btnDelGroups); builder->get_widget("btnDelProject", btnDelProject); @@ -460,16 +438,13 @@ void MainWindow::get_builder() { } void MainWindow::event() { - btnCancelHelp->signal_clicked().connect([&]() {wndShowWeb->hide();}); - chkAlwaysOpenHelp->signal_toggled().connect([&]() {flag_open_browser = true;}); - btnReadHelp->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::open_browser)); btnFilterGroups->signal_clicked().connect([&]() {this->filters_show();}); btnFilterUsers->signal_clicked().connect([&]() {this->filters_show();}); btnFilterProject->signal_clicked().connect([&]() {this->filters_show();}); quotegroupSaveButton->signal_clicked().connect([&]() {}); btnLoadGlob->signal_activate().connect([&]() {this->load_global_cfg();}); btnLoadLocal->signal_activate().connect([&]() {this->load_system_cfg();}); - btnSynopsis->signal_activate().connect([&]() {this->synopsis_show();}); + //btnSynopsis->signal_activate().connect([&]() {this->synopsis_show();}); btnAbout->signal_activate().connect([&]() {aboutWindows->show();}); btnSaveLocalGlob->signal_activate().connect([&]() {this->wrapper_save_all_cfg();}); btnSaveGlob->signal_activate().connect([&]() {this->wrapper_save_global_cfg();}); @@ -678,39 +653,6 @@ void MainWindow::wrapper_save_global_cfg() { } -void MainWindow::synopsis_show() { - if (flag_open_browser == true) { - this->open_browser(); - } - else { - wndShowWeb->show_all(); - } - -} - -void MainWindow::open_browser() { - #ifdef WEBKIT_FOUND - webkit_web_view_load_uri(one, link_doc); - wndWeb->show_all(); - #else - this->template_open_browser(); - #endif -} - -void MainWindow::template_open_browser() { - string cmd = cmd_xdg + string(_(link_doc)) + " &"; - 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_s); - std::unique_ptr buf(new char[ size ]); - std::snprintf( buf.get(), size, cmd_execute, response_user.c_str(), cmd.c_str() ); - cmd = std::string( buf.get(), buf.get() + size - 1 ); - } - obj_process_system.call(cmd, ""); -} - void MainWindow::wrapper_save_system_cfg() { this->set_data_cfg(); if (this->save_template("boot", "system")) { diff --git a/source/ubl-settings-diskquota.h b/source/ubl-settings-diskquota.h index 3b34e49..3851143 100644 --- a/source/ubl-settings-diskquota.h +++ b/source/ubl-settings-diskquota.h @@ -10,7 +10,7 @@ #include "system_quotas.h" #include "ubconfig_quotas.h" #include -#include "ubl-settings-diskquota-cm.h" + #ifdef WEBKIT_FOUND #include #endif @@ -131,10 +131,6 @@ #define icon_checked "com.ublinux.ubl-settings-diskquota.checked" #define icon_warning "com.ublinux.ubl-settings-diskquota.warning" -#define link_doc "https://wiki.ublinux.com/ru/Программное_обеспечение/Программы_и_утилиты/Все/ubl-settings-diskquota" -#define cmd_xdg "xdg-open " -#define cmd_execute "su -l %s -c \" DISPLAY=$DISPLAY %s \"" - #define path_app "/usr/bin/" #define path_glade "/usr/share/ubl-settings-diskquota/ui/ubl-settings-diskquota.glade" #define path_css "/usr/share/ubl-settings-diskquota/css/ubl-settings-diskquota.css" @@ -315,15 +311,6 @@ class MainWindow : public Gtk::ApplicationWindow { Gtk::Button *btnFilterGroups; Gtk::Button *btnFilterUsers; Gtk::Button *btnFilterProject; - Gtk::Label *lblHeadeWndWeb; - - Gtk::Label *lblwebHeaderName; - Gtk::Label *lblhelpText; - Gtk::Label *lblhelpHeader; - Gtk::CheckButton *chkAlwaysOpenHelp; - Gtk::Button *btnReadHelp; - Gtk::Button *btnCancelHelp; - Gtk::Window *wndShowWeb; Gtk::CheckMenuItem *chbMangSystemFile; Gtk::Button* btnDelGroups; Gtk::Button* btnDelProject; @@ -363,7 +350,6 @@ class MainWindow : public Gtk::ApplicationWindow { string save_user_or_group; string sys_or_ubconfig; string hw_or_sw = ""; - bool flag_open_browser = false; string mode_quota = "ubconfig"; Glib::RefPtr list_store_groups; Glib::RefPtr list_store_users; @@ -391,13 +377,10 @@ class MainWindow : public Gtk::ApplicationWindow { void remove_template(Glib::RefPtr* 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 synopsis_show(); void fill_in_pow_memory(Gtk::ComboBoxText *cb_text); void info_status_app(string stule); void filters_show(); void init_tree_view(); - void template_open_browser(); - void open_browser(); void del_columns(); void set_add_tv_g_u_p(Gtk::TreeModel::Row &row, Glib::RefPtr list_store, struct tv_g_u_p obj_tv_g_u_p); void load_template(map_str_str* map_temp, string cmd); diff --git a/source/view_filters.h b/source/view_filters.h index c6c2514..83be054 100644 --- a/source/view_filters.h +++ b/source/view_filters.h @@ -12,8 +12,10 @@ class view_filters { private: - Glib::RefPtr const& builder; string path_glade; + std::map map_filters_flag; +private: + Glib::RefPtr const& builder; Gtk::Window *wndFilters; Gtk::CheckButton *chbFilterName; Gtk::CheckButton *chbFilterQuotas; @@ -29,7 +31,6 @@ private: Gtk::Label *lblFiltersHead; Gtk::Button *btnFiltersSave; Gtk::Button *btnFiltersCancel; - std::map map_filters_flag; public: view_filters(/* args */); ~view_filters(); @@ -38,6 +39,7 @@ public: void get_builder(); void settings(); void show(); +private: void set_map_flag(Gtk::CheckButton* check_button); void save(); void cancel(); diff --git a/source/view_open_browser.cc b/source/view_open_browser.cc new file mode 100644 index 0000000..c891653 --- /dev/null +++ b/source/view_open_browser.cc @@ -0,0 +1,86 @@ +#include "view_open_browser.h" + +view_open_browser::view_open_browser(/* args */) { + builder = Gtk::Builder::create_from_file(path_glade); + this->settings(); +} + +view_open_browser::~view_open_browser() { +} + +void settings() { + this->get_builder(); + #ifdef WEBKIT_FOUND + one = WEBKIT_WEB_VIEW( webkit_web_view_new() ); + three = Glib::wrap(GTK_WIDGET(one)); + wndWeb->add(*three); + #endif + this->lacalization(); + this->event(); +} + +void view_open_browser::show() { + 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() { + 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::show() { + if (flag_open_browser == true) { + this->open_browser(); + } + else { + wndShowWeb->show_all(); + } +} + +void view_open_browser::open_browser() { + #ifdef WEBKIT_FOUND + webkit_web_view_load_uri(one, link_doc); + wndWeb->show_all(); + #else + if (this->template_open_browser() != 0) { + + } + #endif +} + +int view_open_browser::template_open_browser() { + string cmd = cmd_xdg + string(_(link_doc)) + " &"; + 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_s); + std::unique_ptr buf(new char[ size ]); + std::snprintf( buf.get(), size, cmd_execute, response_user.c_str(), cmd.c_str() ); + cmd = std::string( buf.get(), buf.get() + size - 1 ); + } + return system(cmd); +} \ No newline at end of file diff --git a/source/view_open_browser.h b/source/view_open_browser.h new file mode 100644 index 0000000..59f986c --- /dev/null +++ b/source/view_open_browser.h @@ -0,0 +1,34 @@ +#include "project_lib.h" + +#define link_doc "https://wiki.ublinux.com/ru/Программное_обеспечение/Программы_и_утилиты/Все/ubl-settings-diskquota" +#define cmd_xdg "xdg-open " +#define cmd_execute "su -l %s -c \" DISPLAY=$DISPLAY %s \"" + +class view_open_browser +{ +private: + string path_glade; + bool flag_open_browser = false; +private: + Glib::RefPtr const& builder; + Gtk::Button *btnReadHelp; + Gtk::Button *btnCancelHelp; + Gtk::Window *wndShowWeb; + Gtk::CheckButton *chkAlwaysOpenHelp; + Gtk::Label *lblwebHeaderName; + Gtk::Label *lblhelpText; + Gtk::Label *lblhelpHeader; + Gtk::Label *lblHeadeWndWeb; +public: + view_open_browser(/* args */); + ~view_open_browser(); + void lacalization(); + void event(); + void get_builder(); + void settings(); + void show(); + void synopsis_show(); +private: + int template_open_browser(); + void open_browser(); +}; \ No newline at end of file diff --git a/ubl-settings-diskquota.glade b/ubl-settings-diskquota.glade index f487184..9ecaebd 100644 --- a/ubl-settings-diskquota.glade +++ b/ubl-settings-diskquota.glade @@ -2842,7 +2842,7 @@ - + True False