diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index d693d17..8caec66 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -7,9 +7,13 @@ pkg_check_modules(GTK REQUIRED gtk+-3.0) include_directories(${GTK_INCLUDE_DIRS}) link_directories(${GTK_LIBRARY_DIRS}) add_definitions(${GTK_CFLAGS_OTHER}) -option(USE_WEBKIT "Force turn on or turn off webkit" ON) -if (USE_WEBKIT) +option(WEBKIT_FOUND "No" OFF) + +find_library(WEBKIT_LIBRARIES_FOUND webkit2gtk-4.0 webkit2gtk-web-extension-4.0) + +if(WEBKIT_LIBRARIES_FOUND) + option(WEBKIT_FOUND "Yes" ON) PKG_CHECK_MODULES(WEBKIT REQUIRED webkit2gtk-4.0 webkit2gtk-web-extension-4.0) include_directories(${WEBKIT_INCLUDE_DIRS}) link_directories(${WEBKIT_LIBRARY_DIRS}) diff --git a/source/ubl-settings-manager-cm.h b/source/ubl-settings-manager-cm.h new file mode 100644 index 0000000..26a7931 --- /dev/null +++ b/source/ubl-settings-manager-cm.h @@ -0,0 +1 @@ +#define WEBKIT_FOUND diff --git a/source/ubl-settings-manager.c b/source/ubl-settings-manager.c index 0f97af3..b22b357 100644 --- a/source/ubl-settings-manager.c +++ b/source/ubl-settings-manager.c @@ -137,20 +137,15 @@ void on_ButtonOpenHelp_activated(GtkWidget *button, GtkBuilder *builder){ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder,"AlwaysOpenHelpCheckbox")))) { #ifdef WEBKIT_FOUND - void *handle=NULL; - handle = dlopen("libwebkit2gtk-4.0.so", RTLD_LAZY); - if (handle) { - GtkBuilder *web_builder=gtk_builder_new_from_file(GladePath); - GtkWidget *browser=GTK_WIDGET(gtk_builder_get_object(web_builder,"Web_Window")); - GtkWidget *web_place=GTK_WIDGET(gtk_builder_get_object(web_builder,"Web_Place")); - GtkWidget *WebView=webkit_web_view_new(); - webkit_web_view_load_uri(WEBKIT_WEB_VIEW(WebView),UBLINUX_WIKI_LINK); - gtk_box_pack_start(GTK_BOX(web_place),WebView,1,1,0); - gtk_widget_show_all(browser); - } else + GtkBuilder *web_builder=gtk_builder_new_from_file(GladePath); + GtkWidget *browser=GTK_WIDGET(gtk_builder_get_object(web_builder,"Web_Window")); + GtkWidget *web_place=GTK_WIDGET(gtk_builder_get_object(web_builder,"Web_Place")); + GtkWidget *WebView=webkit_web_view_new(); + webkit_web_view_load_uri(WEBKIT_WEB_VIEW(WebView),UBLINUX_WIKI_LINK); + gtk_box_pack_start(GTK_BOX(web_place),WebView,1,1,0); + gtk_widget_show_all(browser); + #else if(system(UBLINUX_WIKI_COMMAND)){}; - #else - if(system(UBLINUX_WIKI_COMMAND)){}; #endif } else { @@ -174,10 +169,7 @@ void on_CancelHelpButton_activated(GtkWidget *button,GtkBuilder *builder){ }; void on_ReadHelpButton_activated(GtkWidget *button, GtkBuilder *builder){ - #ifdef WEBKIT_FOUND - void *handle=NULL; - handle = dlopen("libwebkit2gtk-4.0.so", RTLD_LAZY); - if (handle) { + #ifdef WEBKIT_FOUND GtkBuilder *web_builder=gtk_builder_new_from_file(GladePath); GtkWidget *browser=GTK_WIDGET(gtk_builder_get_object(web_builder,"Web_Window")); GtkWidget *web_place=GTK_WIDGET(gtk_builder_get_object(web_builder,"Web_Place")); @@ -185,11 +177,9 @@ void on_ReadHelpButton_activated(GtkWidget *button, GtkBuilder *builder){ webkit_web_view_load_uri(WEBKIT_WEB_VIEW(WebView),UBLINUX_WIKI_LINK); gtk_box_pack_start(GTK_BOX(web_place),WebView,1,1,0); gtk_widget_show_all(browser); - } else + #else if(system(UBLINUX_WIKI_COMMAND)){}; - #else - if(system(UBLINUX_WIKI_COMMAND)){}; - #endif + #endif GtkWidget *window = GTK_WIDGET(gtk_builder_get_object(builder,"HelpSureWindow")); gtk_widget_hide(window); }; diff --git a/source/ubl-settings-manager.h b/source/ubl-settings-manager.h index 6b7bc06..b10f3dd 100644 --- a/source/ubl-settings-manager.h +++ b/source/ubl-settings-manager.h @@ -13,6 +13,8 @@ #define UBLINUX_WIKI_COMMAND "xdg-open http://wiki.ublinux.ru" #define UBLINUX_WIKI_LINK " http://wiki.ublinux.ru" +#define check_web2kit_command "ldconfig -p |grep webkit2" + #define cmdVersionText yon_char_get_augumented(yon_char_get_augumented(_("Version: "),version_application),"\n") #define cmdHelpText yon_char_get_augumented(yon_char_get_augumented(_("ubl-settings-manager version: "),version_application),_("\nGTK settings manager for UBLinux\nUsage: ubl-settings-manager [OPTIONS...]\nOptions:\n -h, --help Show this help\n -V, --version Show package version\n --lock-settings Lock menu settings\n")) #define GladePath "/usr/share/ubl-settings-manager/ui/ubl-settings-manager.glade"