Добавлена проверка наличия webkit

pull/11/head
Igor Belitskiy 3 years ago
parent 412495a222
commit 2de795e080

@ -61,4 +61,5 @@
#define str_description _("Description") #define str_description _("Description")
#define str_help_h _("GTK settings bootloader for UBLinux\n""\n""Usage: ubl-settings-bootloader [OPTIONS...]\n""Options:\n"" -h, --help\t Show this help\n"" -V, --version\t Show package version\n"" --lock-help Lock utility help\n"" --lock-save Lock saving local and global configuration\n"" --lock-save-local Lock save global configuration\n"" --lock-save-global Lock load global configuration\n"" --lock-load-global Lock load global configuration\n") #define str_help_h _("GTK settings bootloader for UBLinux\n""\n""Usage: ubl-settings-bootloader [OPTIONS...]\n""Options:\n"" -h, --help\t Show this help\n"" -V, --version\t Show package version\n"" --lock-help Lock utility help\n"" --lock-save Lock saving local and global configuration\n"" --lock-save-local Lock save global configuration\n"" --lock-save-global Lock load global configuration\n"" --lock-load-global Lock load global configuration\n")
#define no_recognized _("Argument not recognized\n") #define no_recognized _("Argument not recognized\n")
#endif #endif

@ -89,9 +89,13 @@ void MainWindow::settings(){
btnBoxAboutDialog->set_visible(false); btnBoxAboutDialog->set_visible(false);
ubl_make_plugs(boxSave,boxButton, socket_ext_id_I, socket_trd_id_I); ubl_make_plugs(boxSave,boxButton, socket_ext_id_I, socket_trd_id_I);
#ifdef WEBKIT_FOUND #ifdef WEBKIT_FOUND
one = WEBKIT_WEB_VIEW( webkit_web_view_new() ); void *handle=NULL;
three = Glib::wrap(GTK_WIDGET(one)); handle = dlopen("libwebkit2gtk-4.0.so", RTLD_LAZY);
wndWeb->add(*three); if (handle) {
one = WEBKIT_WEB_VIEW( webkit_web_view_new() );
three = Glib::wrap(GTK_WIDGET(one));
wndWeb->add(*three);
}
#endif #endif
this->flag_block_gui(); this->flag_block_gui();
if (this->check_root() == 0) { if (this->check_root() == 0) {
@ -423,7 +427,11 @@ void MainWindow::get_builder() {
builder->get_widget("entrySecurityLogin", entrySecurityLogin); builder->get_widget("entrySecurityLogin", entrySecurityLogin);
builder->get_widget("cmbDefaultDonw", cmbDefaultDonw); builder->get_widget("cmbDefaultDonw", cmbDefaultDonw);
#ifdef WEBKIT_FOUND #ifdef WEBKIT_FOUND
builder->get_widget("wndWeb", wndWeb); void *handle=NULL;
handle = dlopen("libwebkit2gtk-4.0.so", RTLD_LAZY);
if (handle) {
builder->get_widget("wndWeb", wndWeb);
}
#endif #endif
builder->get_widget("lblHeadeWndWeb", lblHeadeWndWeb); builder->get_widget("lblHeadeWndWeb", lblHeadeWndWeb);
@ -918,23 +926,33 @@ void MainWindow::synopsis_show() {
void MainWindow::open_browser() { void MainWindow::open_browser() {
#ifdef WEBKIT_FOUND #ifdef WEBKIT_FOUND
webkit_web_view_load_uri(one, link_doc); void *handle=NULL;
wndWeb->show_all(); handle = dlopen("libwebkit2gtk-4.0.so", RTLD_LAZY);
#else if (handle) {
string cmd = cmd_xdg + string(_(link_doc)) + " &"; webkit_web_view_load_uri(one, link_doc);
string buf = ""; wndWeb->show_all();
if (geteuid() == 0) { }
string response_user = getlogin(); else {
int size_s = std::snprintf(nullptr, 0, cmd_execute, response_user.c_str(), cmd.c_str()) + 1; this->template_open_browser();
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 );
} }
obj_process_system.call(cmd, "&"); #else
this->template_open_browser();
#endif #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_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 );
}
index_error = system(cmd.c_str());
}
void MainWindow::info_status_app(string stule) { void MainWindow::info_status_app(string stule) {
boxInfo->remove_class("boxInfoMessOK"); boxInfo->remove_class("boxInfoMessOK");
boxInfo->remove_class("boxInfoMessError"); boxInfo->remove_class("boxInfoMessError");
@ -995,7 +1013,11 @@ void MainWindow::info_warning_error(int mess) {
} }
MainWindow::~MainWindow() { MainWindow::~MainWindow() {
#ifdef WEBKIT_FOUND #ifdef WEBKIT_FOUND
free(one); void *handle=NULL;
handle = dlopen("libwebkit2gtk-4.0.so", RTLD_LAZY);
if (handle) {
free(one);
}
#endif #endif
} }

@ -18,6 +18,7 @@
#include "save.h" #include "save.h"
#include "load.h" #include "load.h"
#include "ubl-settings-bootloader-cm.h" #include "ubl-settings-bootloader-cm.h"
#include <dlfcn.h>
#ifdef WEBKIT_FOUND #ifdef WEBKIT_FOUND
#include <webkit2/webkit2.h> #include <webkit2/webkit2.h>
#endif #endif
@ -152,6 +153,7 @@ class MainWindow : public Gtk::ApplicationWindow {
bool flag_blocked_tree_view = false; bool flag_blocked_tree_view = false;
bool flag_save_block = false; bool flag_save_block = false;
bool flag_open_browser = false; bool flag_open_browser = false;
int index_error = 0;
size_t size_kernel = 0; size_t size_kernel = 0;
size_t size_IPT = 0; size_t size_IPT = 0;
size_t size_OTT = 0; size_t size_OTT = 0;
@ -196,6 +198,7 @@ class MainWindow : public Gtk::ApplicationWindow {
void view_add_colums(Gtk::TreeView &treeView); void view_add_colums(Gtk::TreeView &treeView);
vector<string> read_file_and_view(string file_name ,Gtk::TreeModel::Row &row, Glib::RefPtr<Gtk::ListStore> list_store_m); vector<string> read_file_and_view(string file_name ,Gtk::TreeModel::Row &row, Glib::RefPtr<Gtk::ListStore> list_store_m);
void download_local_cfg(); void download_local_cfg();
void template_open_browser();
void download_globl_cfg(); void download_globl_cfg();
void flag_block_gui(); void flag_block_gui();
void info_status_app(string stule); void info_status_app(string stule);

Loading…
Cancel
Save