Added 'Documentation' button in menus which opens documentation web page in browser or with its own window if user has webkit2gtk library installed

pull/45/head
parent b6143994ab
commit ba8ade7671

@ -7,6 +7,22 @@ pkg_check_modules(GTK REQUIRED gtk+-3.0)
include_directories(${GTK_INCLUDE_DIRS}) include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS}) link_directories(${GTK_LIBRARY_DIRS})
add_definitions(${GTK_CFLAGS_OTHER}) add_definitions(${GTK_CFLAGS_OTHER})
option(WEBKIT_FOUND "No" OFF)
find_library(WEBKIT_LIBRARIES_FOUND webkit2gtk-4.0 webkit2gtk-web-extension-4.0)
message("${WEBKIT_LIBRARIES_FOUND}")
if(WEBKIT_LIBRARIES_FOUND)
option(WEBKIT_FOUND "Yes" ON)
message("Webkit is located at ${WEBKIT_LIBRARIES_FOUND}")
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 -std=c++2a")
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always -lm") #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always -lm")
@ -17,13 +33,17 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissin
set(SOURCE_FILES set(SOURCE_FILES
ubl-settings-manager.c ubl-settings-manager.c
ubl-settings-manager.h) ubl-settings-manager.h
ubl-settings-manager-cm.h)
set(LIBRARIES set(LIBRARIES
${GTK_LIBRARIES} ${GTK_LIBRARIES}
pthread) pthread)
add_executable(ubl-settings-manager ${SOURCE_FILES}) 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) install(TARGETS ubl-settings-manager DESTINATION bin)

@ -136,7 +136,16 @@ void on_item_selection_changed(GtkIconView *IV, actionWidgets *widgets){
void on_ButtonOpenHelp_activated(GtkWidget *button, GtkBuilder *builder){ void on_ButtonOpenHelp_activated(GtkWidget *button, GtkBuilder *builder){
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder,"AlwaysOpenHelpCheckbox")))) 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
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);
#else
if(system(UBLINUX_WIKI_COMMAND)){};
#endif
} else } else
{ {
GtkWidget *window = GTK_WIDGET(gtk_builder_get_object(builder,"HelpSureWindow")); GtkWidget *window = GTK_WIDGET(gtk_builder_get_object(builder,"HelpSureWindow"));
@ -159,7 +168,17 @@ void on_CancelHelpButton_activated(GtkWidget *button,GtkBuilder *builder){
}; };
void on_ReadHelpButton_activated(GtkWidget *button, GtkBuilder *builder){ void on_ReadHelpButton_activated(GtkWidget *button, GtkBuilder *builder){
if(system("xdg-open http://ublinux.com")){}; #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"));
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)){};
#endif
GtkWidget *window = GTK_WIDGET(gtk_builder_get_object(builder,"HelpSureWindow")); GtkWidget *window = GTK_WIDGET(gtk_builder_get_object(builder,"HelpSureWindow"));
gtk_widget_hide(window); gtk_widget_hide(window);
}; };
@ -1763,6 +1782,7 @@ dictionary *yon_theme_new(dictionary **widgetss, GtkBuilder *builder, char *them
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_about), curWidgets->builder); //on_ButtonOpenHelp_activated
g_signal_connect(G_OBJECT(curWidgets->MenuItemSettings), "activate", G_CALLBACK(on_settingsOpen), curWidgets); 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->BannerRevealer), "clicked", G_CALLBACK(on_reveal_banner), curWidgets);
g_signal_connect(G_OBJECT(curWidgets->MenuItemAboutSystem), "activate", G_CALLBACK(on_ButtonOpenHelp_activated), curWidgets->builder);
if (gnld==0){ if (gnld==0){
gnld=1; gnld=1;

@ -4,6 +4,13 @@
#include <gtk/gtk.h> #include <gtk/gtk.h>
#include <time.h> #include <time.h>
#include <getopt.h> #include <getopt.h>
#include "ubl-settings-manager-cm.h"
#ifdef WEBKIT_FOUND
#include <webkit2/webkit2.h>
#endif
#define UBLINUX_WIKI_COMMAND "xdg-open http://ublinux.com"
#define UBLINUX_WIKI_LINK " http://ublinux.ru"
#define cmdVersionText yon_char_get_augumented(yon_char_get_augumented(_("Version: "),version_application),"\n") #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 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"))

@ -388,6 +388,66 @@
</object> </object>
</child> </child>
</object> </object>
<object class="GtkWindow" id="Web_Window">
<property name="width-request">800</property>
<property name="height-request">558</property>
<property name="can-focus">False</property>
<property name="default-width">800</property>
<property name="default-height">558</property>
<property name="icon-name">ubconfig-gui</property>
<child>
<object class="GtkBox" id="Web_Place">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
</object>
</child>
<child type="titlebar">
<object class="GtkHeaderBar">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="show-close-button">True</property>
<child type="title">
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="hexpand">True</property>
<child>
<object class="GtkLabel" id="LoaderHeaderNameLabel1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">UBLinux Settings Web View</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="pixel-size">32</property>
<property name="icon-name">com.ublinux.ubl-settings-manager</property>
<property name="icon_size">5</property>
</object>
</child>
</object>
</child>
<style>
<class name="bg"/>
<class name="noborder"/>
</style>
</object>
<object class="GtkMenu"> <object class="GtkMenu">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>

Loading…
Cancel
Save