From 148d2d94c11da2079477a2d9e4aec9a5032b0269 Mon Sep 17 00:00:00 2001 From: David Rosca Date: Mon, 14 May 2018 13:53:05 +0200 Subject: [PATCH] Use QTWEBENGINE_VERSION instead of QT_VERSION Allows to build against separate QtWebEngine releases. --- CMakeLists.txt | 4 +--- config.h.cmake | 3 --- src/lib/CMakeLists.txt | 3 +++ src/lib/app/mainapplication.cpp | 4 ++-- src/lib/app/qzcommon.h | 1 + src/lib/cookies/cookiejar.cpp | 6 +++--- src/lib/cookies/cookiejar.h | 2 +- src/lib/cookies/cookiemanager.cpp | 2 +- src/lib/preferences/jsoptions.cpp | 4 ++-- src/lib/preferences/preferences.cpp | 2 +- src/lib/webengine/webinspector.cpp | 4 ++-- src/lib/webengine/webview.cpp | 4 ++-- 12 files changed, 19 insertions(+), 20 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index da8aca466..ca7c9b0e7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -45,7 +45,7 @@ add_definitions(-DQT_NO_URL_CAST_FROM_STRING -DQT_USE_QSTRINGBUILDER -DQT_NO_CAS # Mandatory: Qt5 set(QT_MIN_VERSION "5.9.0") -find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS Core Widgets Network Sql QuickWidgets PrintSupport WebEngineWidgets WebChannel) +find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS Core Widgets Network Sql QuickWidgets PrintSupport WebEngine WebEngineWidgets WebChannel) if (BUILD_TESTING) find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS Test) endif() @@ -85,8 +85,6 @@ if (WIN32) add_definitions(-D_WIN32_WINNT=${ver}) endif() -set(HAVE_QTWEBENGINE_5_10 NOT Qt5WebEngineWidgets_VERSION VERSION_LESS 5.10.0) - # Mandatory: OpenSSL find_package(OpenSSL REQUIRED) diff --git a/config.h.cmake b/config.h.cmake index 3cc5d3484..d35648e5b 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -9,6 +9,3 @@ /* Disable DBus support */ #cmakedefine DISABLE_DBUS - -/* QtWebEngine is at least version 5.10 */ -#cmakedefine01 HAVE_QTWEBENGINE_5_10 diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index 81cc5c8ad..ee82c94e2 100644 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -293,6 +293,9 @@ qt5_add_resources(SRCS add_library(FalkonPrivate SHARED ${SRCS}) +get_property(QT_WEBENGINE_INCLUDE_DIRS TARGET Qt5::WebEngine PROPERTY INTERFACE_INCLUDE_DIRECTORIES) +target_include_directories(FalkonPrivate SYSTEM PUBLIC ${QT_WEBENGINE_INCLUDE_DIRS}) + target_link_libraries(FalkonPrivate Qt5::Widgets Qt5::WebEngineWidgets diff --git a/src/lib/app/mainapplication.cpp b/src/lib/app/mainapplication.cpp index 03ba6292e..f9b5d94be 100644 --- a/src/lib/app/mainapplication.cpp +++ b/src/lib/app/mainapplication.cpp @@ -921,11 +921,11 @@ void MainApplication::loadSettings() webSettings->setAttribute(QWebEngineSettings::LocalContentCanAccessRemoteUrls, true); webSettings->setAttribute(QWebEngineSettings::FocusOnNavigationEnabled, false); -#if QT_VERSION >= QT_VERSION_CHECK(5, 10, 0) +#if QTWEBENGINE_VERSION >= QT_VERSION_CHECK(5, 10, 0) webSettings->setAttribute(QWebEngineSettings::AllowWindowActivationFromJavaScript, settings.value("allowJavaScriptActivateWindow", false).toBool()); #endif -#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) +#if QTWEBENGINE_VERSION >= QT_VERSION_CHECK(5, 11, 0) webSettings->setAttribute(QWebEngineSettings::JavascriptCanPaste, settings.value("allowJavaScriptPaste", true).toBool()); webSettings->setAttribute(QWebEngineSettings::PlaybackRequiresUserGesture, settings.value("DisableVideoAutoPlay", false).toBool()); webSettings->setAttribute(QWebEngineSettings::WebRTCPublicInterfacesOnly, settings.value("WebRTCPublicIpOnly", true).toBool()); diff --git a/src/lib/app/qzcommon.h b/src/lib/app/qzcommon.h index fe49aff57..a6d008b90 100644 --- a/src/lib/app/qzcommon.h +++ b/src/lib/app/qzcommon.h @@ -20,6 +20,7 @@ #include #include +#include #ifdef FALKON_SHAREDLIBRARY #define FALKON_EXPORT Q_DECL_EXPORT diff --git a/src/lib/cookies/cookiejar.cpp b/src/lib/cookies/cookiejar.cpp index ac87aa94e..f8688e8e1 100644 --- a/src/lib/cookies/cookiejar.cpp +++ b/src/lib/cookies/cookiejar.cpp @@ -36,7 +36,7 @@ CookieJar::CookieJar(QObject* parent) loadSettings(); m_client->loadAllCookies(); -#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) +#if QTWEBENGINE_VERSION >= QT_VERSION_CHECK(5, 11, 0) m_client->setCookieFilter(std::bind(&CookieJar::cookieFilter, this, std::placeholders::_1)); #endif @@ -46,7 +46,7 @@ CookieJar::CookieJar(QObject* parent) CookieJar::~CookieJar() { -#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) +#if QTWEBENGINE_VERSION >= QT_VERSION_CHECK(5, 11, 0) m_client->setCookieFilter(nullptr); #endif } @@ -127,7 +127,7 @@ void CookieJar::slotCookieRemoved(const QNetworkCookie &cookie) emit cookieRemoved(cookie); } -#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) +#if QTWEBENGINE_VERSION >= QT_VERSION_CHECK(5, 11, 0) bool CookieJar::cookieFilter(const QWebEngineCookieStore::FilterRequest &request) const { if (!m_allowCookies) { diff --git a/src/lib/cookies/cookiejar.h b/src/lib/cookies/cookiejar.h index bbb041501..9fcde6503 100644 --- a/src/lib/cookies/cookiejar.h +++ b/src/lib/cookies/cookiejar.h @@ -55,7 +55,7 @@ private: void slotCookieAdded(const QNetworkCookie &cookie); void slotCookieRemoved(const QNetworkCookie &cookie); -#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) +#if QTWEBENGINE_VERSION >= QT_VERSION_CHECK(5, 11, 0) bool cookieFilter(const QWebEngineCookieStore::FilterRequest &request) const; #endif diff --git a/src/lib/cookies/cookiemanager.cpp b/src/lib/cookies/cookiemanager.cpp index dd4a65f5c..96579af24 100644 --- a/src/lib/cookies/cookiemanager.cpp +++ b/src/lib/cookies/cookiemanager.cpp @@ -75,7 +75,7 @@ CookieManager::CookieManager(QWidget *parent) ui->blackList->addItems(settings.value("blacklist", QStringList()).toStringList()); settings.endGroup(); -#if QT_VERSION < QT_VERSION_CHECK(5, 11, 0) +#if QTWEBENGINE_VERSION < QT_VERSION_CHECK(5, 11, 0) ui->filter3rdParty->hide(); #endif diff --git a/src/lib/preferences/jsoptions.cpp b/src/lib/preferences/jsoptions.cpp index 57a18529a..e000185e6 100644 --- a/src/lib/preferences/jsoptions.cpp +++ b/src/lib/preferences/jsoptions.cpp @@ -29,11 +29,11 @@ JsOptions::JsOptions(QWidget* parent) ui->setupUi(this); -#if QT_VERSION < QT_VERSION_CHECK(5, 10, 0) +#if QTWEBENGINE_VERSION < QT_VERSION_CHECK(5, 10, 0) ui->jscanActivateWindow->setVisible(false); #endif -#if QT_VERSION < QT_VERSION_CHECK(5, 11, 0) +#if QTWEBENGINE_VERSION < QT_VERSION_CHECK(5, 11, 0) ui->jscanPaste->setVisible(false); #endif diff --git a/src/lib/preferences/preferences.cpp b/src/lib/preferences/preferences.cpp index 87d40acd1..194da0310 100644 --- a/src/lib/preferences/preferences.cpp +++ b/src/lib/preferences/preferences.cpp @@ -110,7 +110,7 @@ Preferences::Preferences(BrowserWindow* window) ui->checkUpdates->setVisible(false); #endif -#if QT_VERSION < QT_VERSION_CHECK(5, 11, 0) +#if QTWEBENGINE_VERSION < QT_VERSION_CHECK(5, 11, 0) ui->disableVideoAutoPlay->setVisible(false); ui->webRTCPublicIpOnly->setVisible(false); #endif diff --git a/src/lib/webengine/webinspector.cpp b/src/lib/webengine/webinspector.cpp index 1ef70e4d3..ed4b5c8f8 100644 --- a/src/lib/webengine/webinspector.cpp +++ b/src/lib/webengine/webinspector.cpp @@ -67,7 +67,7 @@ void WebInspector::setView(WebView *view) m_view = view; Q_ASSERT(isEnabled()); -#if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) +#if QTWEBENGINE_VERSION >= QT_VERSION_CHECK(5, 11, 0) page()->setInspectedPage(m_view->page()); connect(m_view, &WebView::pageChanged, this, &WebInspector::deleteLater); #else @@ -97,7 +97,7 @@ void WebInspector::inspectElement() bool WebInspector::isEnabled() { -#if QT_VERSION < QT_VERSION_CHECK(5, 11, 0) +#if QTWEBENGINE_VERSION < QT_VERSION_CHECK(5, 11, 0) if (!qEnvironmentVariableIsSet("QTWEBENGINE_REMOTE_DEBUGGING")) { return false; } diff --git a/src/lib/webengine/webview.cpp b/src/lib/webengine/webview.cpp index a570c34d2..a94b5268b 100644 --- a/src/lib/webengine/webview.cpp +++ b/src/lib/webengine/webview.cpp @@ -495,7 +495,7 @@ void WebView::copyLinkToClipboard() void WebView::savePageAs() { -#if HAVE_QTWEBENGINE_5_10 +#if QTWEBENGINE_VERSION >= QT_VERSION_CHECK(5, 10, 0) page()->runJavaScript(QSL("document.contentType"), WebPage::SafeJsWorld, [this](const QVariant &res) { const QSet webPageTypes = { QSL("text/html"), @@ -1250,7 +1250,7 @@ void WebView::contextMenuEvent(QContextMenuEvent *event) bool WebView::focusNextPrevChild(bool next) { -#if QT_VERSION < QT_VERSION_CHECK(5, 11, 0) +#if QTWEBENGINE_VERSION < QT_VERSION_CHECK(5, 11, 0) // QTBUG-67043 // Workaround QtWebEngine issue where QWebEngineView loses focus on second load() call. if (next) {