parent
aa5e8a51c5
commit
111a7927cd
@ -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_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 = std::string( buf.get(), buf.get() + size - 1 );
|
||||
}
|
||||
return system(cmd);
|
||||
}
|
Loading…
Reference in new issue