From c7aa427451a1a8483b842cd692b4298d224fdb89 Mon Sep 17 00:00:00 2001 From: demmm Date: Wed, 23 Mar 2016 18:17:09 -0400 Subject: [PATCH 1/5] port the webview page away from QtWebkit it is no longer maintained upstream this change is tested with QtWebEngine 5.6.0, it builds and runs displays the webview page correctly, clicking next however does not refresh that new page completely --- src/modules/webview/CMakeLists.txt | 8 ++++---- src/modules/webview/WebViewStep.cpp | 4 ++-- src/modules/webview/WebViewStep.h | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/modules/webview/CMakeLists.txt b/src/modules/webview/CMakeLists.txt index eb5c81a68..a1aa659b4 100644 --- a/src/modules/webview/CMakeLists.txt +++ b/src/modules/webview/CMakeLists.txt @@ -1,7 +1,7 @@ -find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED WebKit WebKitWidgets ) +find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED WebEngine WebEngineWidgets ) include_directories( ${PROJECT_BINARY_DIR}/src/libcalamaresui - ${QT_QTWEBKIT_INCLUDE_DIR} ) + ${QT_QTWEBENGINE_INCLUDE_DIR} ) set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules ) @@ -14,7 +14,7 @@ calamares_add_plugin( webview WebViewStep.cpp LINK_LIBRARIES calamaresui - Qt5::WebKit - Qt5::WebKitWidgets + Qt5::WebEngine + Qt5::WebEngineWidgets SHARED_LIB ) diff --git a/src/modules/webview/WebViewStep.cpp b/src/modules/webview/WebViewStep.cpp index 7fa5b5989..e0726bfa0 100644 --- a/src/modules/webview/WebViewStep.cpp +++ b/src/modules/webview/WebViewStep.cpp @@ -19,7 +19,7 @@ #include "WebViewStep.h" #include -#include +#include CALAMARES_PLUGIN_FACTORY_DEFINITION( WebViewStepFactory, registerPlugin(); ) @@ -27,7 +27,7 @@ WebViewStep::WebViewStep( QObject* parent ) : Calamares::ViewStep( parent ) { emit nextStatusChanged( true ); - m_view = new QWebView; + m_view = new QWebEngineView; } diff --git a/src/modules/webview/WebViewStep.h b/src/modules/webview/WebViewStep.h index af95ea269..4b6f3011d 100644 --- a/src/modules/webview/WebViewStep.h +++ b/src/modules/webview/WebViewStep.h @@ -28,7 +28,7 @@ #include -class QWebView; +class QWebEngineView; class PLUGINDLLEXPORT WebViewStep : public Calamares::ViewStep { @@ -57,7 +57,7 @@ public: void setConfigurationMap( const QVariantMap& configurationMap ) override; private: - QWebView *m_view; + QWebEngineView *m_view; QString m_url; QString m_prettyName; }; From 831e2be3f26443a25148782f279eade3d6712244 Mon Sep 17 00:00:00 2001 From: Teo Mrnjavac Date: Thu, 24 Mar 2016 16:53:18 +0100 Subject: [PATCH 2/5] Use QtWebEngine on Qt >= 5.6.0 and QtWebKit otherwise. --- src/modules/webview/CMakeLists.txt | 41 ++++++++++++++++++++++---- src/modules/webview/WebViewConfig.h.in | 7 +++++ src/modules/webview/WebViewStep.cpp | 8 ++++- src/modules/webview/WebViewStep.h | 13 ++++++-- 4 files changed, 59 insertions(+), 10 deletions(-) create mode 100644 src/modules/webview/WebViewConfig.h.in diff --git a/src/modules/webview/CMakeLists.txt b/src/modules/webview/CMakeLists.txt index a1aa659b4..a573d151c 100644 --- a/src/modules/webview/CMakeLists.txt +++ b/src/modules/webview/CMakeLists.txt @@ -1,11 +1,42 @@ -find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED WebEngine WebEngineWidgets ) +list( APPEND CALA_WEBVIEW_INCLUDE_DIRECTORIES + ${PROJECT_BINARY_DIR}/src/libcalamaresui +) +list( APPEND CALA_WEBVIEW_LINK_LIBRARIES + calamaresui +) -include_directories( ${PROJECT_BINARY_DIR}/src/libcalamaresui - ${QT_QTWEBENGINE_INCLUDE_DIR} ) + +if ( ${QT_VERSION} VERSION_LESS 5.6.0 ) + find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED WebKit WebKitWidgets ) + + list( APPEND CALA_WEBVIEW_INCLUDE_DIRECTORIES + ${QT_QTWEBKIT_INCLUDE_DIR} + ) + list( APPEND CALA_WEBVIEW_LINK_LIBRARIES + Qt5::WebKit + Qt5::WebKitWidgets + ) + set( WEBVIEW_WITH_WEBKIT 1 ) +else() + find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED WebEngine WebEngineWidgets ) + + list( APPEND CALA_WEBVIEW_INCLUDE_DIRECTORIES + ${QT_QTWEBENGINE_INCLUDE_DIR} + ) + list( APPEND CALA_WEBVIEW_LINK_LIBRARIES + Qt5::WebEngine + Qt5::WebEngineWidgets + ) + set( WEBVIEW_WITH_WEBENGINE 1 ) +endif() + +include_directories( ${CALA_WEBVIEW_INCLUDE_DIRECTORIES} ) set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules ) +configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/WebViewConfig.h.in + ${CMAKE_CURRENT_BINARY_DIR}/WebViewConfig.h ) calamares_add_plugin( webview TYPE viewmodule @@ -13,8 +44,6 @@ calamares_add_plugin( webview SOURCES WebViewStep.cpp LINK_LIBRARIES - calamaresui - Qt5::WebEngine - Qt5::WebEngineWidgets + ${CALA_WEBVIEW_LINK_LIBRARIES} SHARED_LIB ) diff --git a/src/modules/webview/WebViewConfig.h.in b/src/modules/webview/WebViewConfig.h.in new file mode 100644 index 000000000..6611e44c0 --- /dev/null +++ b/src/modules/webview/WebViewConfig.h.in @@ -0,0 +1,7 @@ +#ifndef CALAMARESWEBVIEWCONFIG_H +#define CALAMARESWEBVIEWCONFIG_H + +#cmakedefine WEBVIEW_WITH_WEBENGINE +#cmakedefine WEBVIEW_WITH_WEBKIT + +#endif // CALAMARESWEBVIEWCONFIG_H diff --git a/src/modules/webview/WebViewStep.cpp b/src/modules/webview/WebViewStep.cpp index e0726bfa0..b5625b8fa 100644 --- a/src/modules/webview/WebViewStep.cpp +++ b/src/modules/webview/WebViewStep.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2015, Rohan Garg + * Copyright 2016, Teo Mrnjavac * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -19,7 +20,12 @@ #include "WebViewStep.h" #include + +#ifdef WEBVIEW_WITH_WEBKIT +#include +#else #include +#endif CALAMARES_PLUGIN_FACTORY_DEFINITION( WebViewStepFactory, registerPlugin(); ) @@ -27,7 +33,7 @@ WebViewStep::WebViewStep( QObject* parent ) : Calamares::ViewStep( parent ) { emit nextStatusChanged( true ); - m_view = new QWebEngineView; + m_view = new C_QWEBVIEW(); } diff --git a/src/modules/webview/WebViewStep.h b/src/modules/webview/WebViewStep.h index 4b6f3011d..9d8405a97 100644 --- a/src/modules/webview/WebViewStep.h +++ b/src/modules/webview/WebViewStep.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2015, Rohan Garg + * Copyright 2016, Teo Mrnjavac * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -19,7 +20,7 @@ #ifndef WEBVIEWPLUGIN_H #define WEBVIEWPLUGIN_H -#include +#include "WebViewConfig.h" #include #include @@ -28,7 +29,13 @@ #include -class QWebEngineView; +#ifdef WEBVIEW_WITH_WEBKIT +#define C_QWEBVIEW QWebView +#else +#define C_QWEBVIEW QWebEngineView +#endif + +class C_QWEBVIEW; class PLUGINDLLEXPORT WebViewStep : public Calamares::ViewStep { @@ -57,7 +64,7 @@ public: void setConfigurationMap( const QVariantMap& configurationMap ) override; private: - QWebEngineView *m_view; + C_QWEBVIEW *m_view; QString m_url; QString m_prettyName; }; From 80bb47d27f70b9a2fa9a1486563d63bf824af6c2 Mon Sep 17 00:00:00 2001 From: Teo Mrnjavac Date: Thu, 24 Mar 2016 16:58:13 +0100 Subject: [PATCH 3/5] Make fonts prettier on QtWebKit. --- src/modules/webview/WebViewStep.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/modules/webview/WebViewStep.cpp b/src/modules/webview/WebViewStep.cpp index b5625b8fa..b1d50bf7c 100644 --- a/src/modules/webview/WebViewStep.cpp +++ b/src/modules/webview/WebViewStep.cpp @@ -34,6 +34,16 @@ WebViewStep::WebViewStep( QObject* parent ) { emit nextStatusChanged( true ); m_view = new C_QWEBVIEW(); +#ifdef WEBVIEW_WITH_WEBKIT + m_view->settings()->setFontFamily( QWebSettings::StandardFont, + m_view->settings()-> + fontFamily( QWebSettings::SansSerifFont ) ); + m_view->setRenderHints( QPainter::Antialiasing | + QPainter::TextAntialiasing | + QPainter::HighQualityAntialiasing | + QPainter::SmoothPixmapTransform | + QPainter::NonCosmeticDefaultPen ); +#endif } From 1ec747555c62c46e01f6ebe4fb6a41e0f3b7e99a Mon Sep 17 00:00:00 2001 From: Teo Mrnjavac Date: Thu, 24 Mar 2016 17:20:05 +0100 Subject: [PATCH 4/5] Version comparison. --- src/modules/webview/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/webview/CMakeLists.txt b/src/modules/webview/CMakeLists.txt index a573d151c..ef21403ff 100644 --- a/src/modules/webview/CMakeLists.txt +++ b/src/modules/webview/CMakeLists.txt @@ -6,7 +6,7 @@ list( APPEND CALA_WEBVIEW_LINK_LIBRARIES ) -if ( ${QT_VERSION} VERSION_LESS 5.6.0 ) +if ( "${QT_VERSION}" VERSION_LESS "5.6" ) find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED WebKit WebKitWidgets ) list( APPEND CALA_WEBVIEW_INCLUDE_DIRECTORIES From f91f22e6f6862c93734a9a8b6bd1c64eb1ee6978 Mon Sep 17 00:00:00 2001 From: Teo Mrnjavac Date: Thu, 24 Mar 2016 19:11:53 +0100 Subject: [PATCH 5/5] Use Qt5Core version. --- src/modules/webview/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/webview/CMakeLists.txt b/src/modules/webview/CMakeLists.txt index ef21403ff..c4b0107a3 100644 --- a/src/modules/webview/CMakeLists.txt +++ b/src/modules/webview/CMakeLists.txt @@ -6,7 +6,7 @@ list( APPEND CALA_WEBVIEW_LINK_LIBRARIES ) -if ( "${QT_VERSION}" VERSION_LESS "5.6" ) +if ( Qt5Core_VERSION VERSION_LESS 5.6 ) find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED WebKit WebKitWidgets ) list( APPEND CALA_WEBVIEW_INCLUDE_DIRECTORIES