From 347a9528a1e195a248d1e112597bbbcb67395b30 Mon Sep 17 00:00:00 2001 From: Igor Belitskiy Date: Mon, 15 May 2023 09:45:25 +0600 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=BE=D1=82=D0=BA=D1=80=D1=8B=D1=82=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=BB=D0=B8=D1=86=D0=B5=D0=BD=D0=B7=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/ublexec.cc | 28 +++++++++++++++++----------- source/ublexec.h | 9 ++++++--- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/source/ublexec.cc b/source/ublexec.cc index 93aa39b..aeba55d 100644 --- a/source/ublexec.cc +++ b/source/ublexec.cc @@ -9,9 +9,11 @@ int socket_ext_id_I = 0; int socket_trd_id_I = 0; MainWindow* obj_main; -void wrapper_help_show() { +void wrapper_help_show(GtkWidget *self, char* link, gpointer user_data) { + if (self && user_data) {} + obj_main->global_lick_doc = link; obj_main->aboutWindows->hide(); - obj_main->help_show(); + obj_main->temp_help_show(); } CmdArgParser::CmdArgParser(const std::string& p_name, const std::string& p_description, const std::string& p_help) @@ -227,7 +229,7 @@ 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)); - btnhelp->signal_activate().connect(sigc::mem_fun(*this, &MainWindow::help_show)); + btnhelp->signal_activate().connect(sigc::mem_fun(*this, &MainWindow::open_help)); btnFilemaneg->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::open_filemaneg)); btnListApp->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::open_list_app)); btnStart->signal_clicked().connect(sigc::mem_fun(*this, &MainWindow::entry_app)); @@ -252,7 +254,6 @@ void MainWindow::event() { iconOther->signal_selection_changed().connect(sigc::mem_fun(*this,&MainWindow::select_Other)); iconDevelopment->signal_selection_changed().connect(sigc::mem_fun(*this,&MainWindow::select_Development)); iconSystem->signal_selection_changed().connect(sigc::mem_fun(*this,&MainWindow::select_System)); - btnhelp->signal_activate().connect(sigc::mem_fun(*this, &MainWindow::help_show)); btnAbout->signal_activate().connect([&]() {aboutWindows->show();}); cmbUser->signal_changed().connect([&]() {changed_user();this->denamic_cmd();}); rbSudo->signal_toggled().connect(sigc::mem_fun(*this, &MainWindow::sudo_nice)); @@ -353,7 +354,7 @@ bool MainWindow::focus_in_txt_cmd(GdkEventFocus* event) { return true; } -void MainWindow::help_show() { +void MainWindow::temp_help_show() { if (flag_open_browser == true) { this->open_browser(); } @@ -363,26 +364,31 @@ void MainWindow::help_show() { } +void MainWindow::open_help() { + global_lick_doc = const_link_doc; + temp_help_show(); +} + void MainWindow::open_browser() { #ifdef WEBKIT_FOUND - webkit_web_view_load_uri(one, link_doc); + webkit_web_view_load_uri(one, _(global_lick_doc.c_str())); wndWeb->show_all(); #else - this->template_open_browser(); + this->template_open_browser(global_lick_doc); #endif wndShowWeb->hide(); } -void MainWindow::template_open_browser() { - string cmd = cmd_xdg + string(_(link_doc)) + " &"; +void MainWindow::template_open_browser(string link_doc) { + string cmd = cmd_xdg + string(_(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_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 ); + std::snprintf(buf.get(), size, cmd_execute, response_user.c_str(), cmd.c_str()); + cmd = string(buf.get(), buf.get() + size - 1); } index_error = system(cmd.c_str()); } diff --git a/source/ublexec.h b/source/ublexec.h index 57d4dfc..1ae41e1 100644 --- a/source/ublexec.h +++ b/source/ublexec.h @@ -79,7 +79,7 @@ #define str_localization_team _("Team:") #define str_run _("Run") -#define link_doc "https://wiki.ublinux.com/ru/Программное_обеспечение/Программы_и_утилиты/Все/ublexec" +#define const_link_doc "https://wiki.ublinux.com/ru/Программное_обеспечение/Программы_и_утилиты/Все/ublexec" #define cmd_xdg "xdg-open " #define cmd_execute "su -l %s -c \" DISPLAY=$DISPLAY %s \"" #define path_app "/usr/bin/" @@ -160,9 +160,11 @@ public: void delete_cmd(const int &x,const int &y); void help_show(); void denamic_cmd(); + void temp_help_show(); + void open_help(); void is_user_wheel(); void sudo_nice(); - void template_open_browser(); + void template_open_browser(string link_doc); void open_browser(); vector find_all(string &text, string &word); bool focus_out_txt_cmd(GdkEventFocus* event); @@ -309,6 +311,7 @@ public: bool flag_sudo = false; bool flag_open_browser = false; string path_file_name; + string global_lick_doc; struct struct_App { string Name_desktop; string Name; @@ -335,6 +338,6 @@ private: Gtk::Widget *parent; }; void help(); -void wrapper_help_show(); +void wrapper_help_show(GtkWidget *self, char* link, gpointer user_data);