diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index 1859049..d693d17 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -7,6 +7,16 @@ 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) + PKG_CHECK_MODULES(WEBKIT REQUIRED webkit2gtk-4.0 webkit2gtk-web-extension-4.0) + include_directories(${WEBKIT_INCLUDE_DIRS}) + link_directories(${WEBKIT_LIBRARY_DIRS}) + add_definitions(${WEBKIT_CFLAGS_OTHER}) +endif() + +configure_file(ubl-settings-manager.h.in ubl-settings-manager-cm.h) #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always -std=c++2a") #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always -lm") @@ -17,13 +27,17 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissin set(SOURCE_FILES ubl-settings-manager.c - ubl-settings-manager.h) + ubl-settings-manager.h + ubl-settings-manager-cm.h) set(LIBRARIES ${GTK_LIBRARIES} pthread) - add_executable(ubl-settings-manager ${SOURCE_FILES}) -target_link_libraries(ubl-settings-manager ${LIBRARIES}) +target_link_libraries(ubl-settings-manager PUBLIC ${WEBKIT_LIBRARIES} ${LIBRARIES}) +target_include_directories(ubl-settings-manager PUBLIC + "${PROJECT_BINARY_DIR}" + ${WEBKIT_INCLUDE_DIRS} + ) install(TARGETS ubl-settings-manager DESTINATION bin) \ No newline at end of file diff --git a/source/ubl-settings-manager.c b/source/ubl-settings-manager.c index 06eb850..0f97af3 100644 --- a/source/ubl-settings-manager.c +++ b/source/ubl-settings-manager.c @@ -136,7 +136,22 @@ void on_item_selection_changed(GtkIconView *IV, actionWidgets *widgets){ void on_ButtonOpenHelp_activated(GtkWidget *button, GtkBuilder *builder){ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder,"AlwaysOpenHelpCheckbox")))) { - if(system("xdg-open http://ublinux.com")){}; + #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 + if(system(UBLINUX_WIKI_COMMAND)){}; + #else + if(system(UBLINUX_WIKI_COMMAND)){}; + #endif } else { GtkWidget *window = GTK_WIDGET(gtk_builder_get_object(builder,"HelpSureWindow")); @@ -159,7 +174,22 @@ void on_CancelHelpButton_activated(GtkWidget *button,GtkBuilder *builder){ }; void on_ReadHelpButton_activated(GtkWidget *button, GtkBuilder *builder){ - if(system("xdg-open http://ublinux.com")){}; + #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 + if(system(UBLINUX_WIKI_COMMAND)){}; + #else + if(system(UBLINUX_WIKI_COMMAND)){}; + #endif GtkWidget *window = GTK_WIDGET(gtk_builder_get_object(builder,"HelpSureWindow")); gtk_widget_hide(window); }; @@ -1760,9 +1790,10 @@ dictionary *yon_theme_new(dictionary **widgetss, GtkBuilder *builder, char *them gtk_window_resize(GTK_WINDOW(curWidgets->window),main_config.windowWidth,main_config.windowHeight); gtk_window_set_icon(GTK_WINDOW(curWidgets->window),gtk_icon_info_load_icon(gtk_icon_theme_lookup_icon_for_scale(icthm, AppIconPath,yon_get_icon_size(32),1,GTK_ICON_LOOKUP_FORCE_SVG),NULL)); gtk_window_set_icon(GTK_WINDOW(curWidgets->SectionSettingsWindow),gtk_icon_info_load_icon(gtk_icon_theme_lookup_icon_for_scale(icthm, AppIconPath,yon_get_icon_size(32),1,GTK_ICON_LOOKUP_FORCE_SVG),NULL)); - g_signal_connect(G_OBJECT(curWidgets->MenuItemDocumentation), "activate", G_CALLBACK(on_about), curWidgets->builder); //on_ButtonOpenHelp_activated + g_signal_connect(G_OBJECT(curWidgets->MenuItemDocumentation), "activate", G_CALLBACK(on_ButtonOpenHelp_activated), curWidgets->builder); //on_ButtonOpenHelp_activated g_signal_connect(G_OBJECT(curWidgets->MenuItemSettings), "activate", G_CALLBACK(on_settingsOpen), curWidgets); g_signal_connect(G_OBJECT(curWidgets->BannerRevealer), "clicked", G_CALLBACK(on_reveal_banner), curWidgets); + g_signal_connect(G_OBJECT(curWidgets->MenuItemAboutSystem), "activate", G_CALLBACK(on_about), curWidgets->builder); if (gnld==0){ gnld=1; diff --git a/source/ubl-settings-manager.h b/source/ubl-settings-manager.h index d748bac..6b7bc06 100644 --- a/source/ubl-settings-manager.h +++ b/source/ubl-settings-manager.h @@ -4,6 +4,14 @@ #include #include #include +#include +#include "ubl-settings-manager-cm.h" +#ifdef WEBKIT_FOUND +#include +#endif + +#define UBLINUX_WIKI_COMMAND "xdg-open http://wiki.ublinux.ru" +#define UBLINUX_WIKI_LINK " http://wiki.ublinux.ru" #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")) diff --git a/source/ubl-settings-manager.h.in b/source/ubl-settings-manager.h.in new file mode 100644 index 0000000..d4623a7 --- /dev/null +++ b/source/ubl-settings-manager.h.in @@ -0,0 +1 @@ +#cmakedefine WEBKIT_FOUND diff --git a/ubl-settings-manager.glade b/ubl-settings-manager.glade index de0e853..0619ddf 100644 --- a/ubl-settings-manager.glade +++ b/ubl-settings-manager.glade @@ -5,7 +5,6 @@ False - start False dialog-information-symbolic False @@ -150,8 +149,6 @@ False - start - start False 450 250 @@ -388,6 +385,66 @@ + + 800 + 558 + False + 800 + 558 + ubconfig-gui + + + True + False + vertical + + + + + + + + True + False + True + + + True + False + True + + + True + False + UBLinux Settings Web View + + + + + + True + True + 0 + + + + + + + True + False + 32 + com.ublinux.ubl-settings-manager + 5 + + + + + + True False diff --git a/ubl-settings-manager.pot b/ubl-settings-manager.pot index b948874..9d0f5f9 100644 --- a/ubl-settings-manager.pot +++ b/ubl-settings-manager.pot @@ -1,18 +1,18 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. +# Russian translations for ubl-settings-manager package. +# Copyright (C) 2022, UBTech LLC +# This file is distributed under the same license as the ubl-settings-manager package. +# UBLinux Team , 2022 # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" +"Project-Id-Version: ubl-settings-manager 1.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-04-21 12:33+0000\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" +"PO-Revision-Date: 2023-01-01 00:00+0600\n" +"Last-Translator: UBLinux Team \n" +"Language-Team: Russian - UBLinux Team \n" +"Language: Russian\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n"