From bc20a61b530b39a4a0dde9fd69a46fb4b3f27585 Mon Sep 17 00:00:00 2001 From: Andreas Sturmlechner Date: Mon, 12 Oct 2020 11:46:24 +0200 Subject: [PATCH] Make QtWebKit usage in WelcomePage optional, with QTextBrowser fallback Thanks-to: Ralf Habacker for QTextBrowser fallback code. Signed-off-by: Andreas Sturmlechner --- CMakeLists.txt | 7 ++++++- cmake/modules/ECMKDE4Macros.cmake | 7 ++++++- umbrello/CMakeLists.txt | 8 ++++++-- umbrello/umlappprivate.h | 13 +++++++++++++ unittests/CMakeLists.txt | 1 - 5 files changed, 31 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d98036c..59873cd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -102,9 +102,14 @@ find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS Test Widgets Xml - WebKitWidgets ) +find_package(Qt5WebKitWidgets ${QT_MIN_VERSION}) +if(Qt5WebKitWidgets_FOUND) + add_definitions(-DWEBKIT_WELCOMEPAGE) + set(WEBKIT_WELCOMEPAGE 1) +endif() + # search packages used by KDE find_package(KF5 REQUIRED COMPONENTS Archive diff --git a/cmake/modules/ECMKDE4Macros.cmake b/cmake/modules/ECMKDE4Macros.cmake index 3de4722..e1a31b4 100644 --- a/cmake/modules/ECMKDE4Macros.cmake +++ b/cmake/modules/ECMKDE4Macros.cmake @@ -106,7 +106,12 @@ macro(find_package package) #message("-- ${ARGV} --") if("${package}" MATCHES "^(Qt5)") #message("-- replaced by finding Qt4 --") - _find_package(Qt4 4.4.3 REQUIRED QtCore QtGui QtXml QtTest QtWebKit) + _find_package(Qt4 4.4.3 REQUIRED QtCore QtGui QtXml QtTest) + _find_package(Qt4QtWebKit 4.4.3) + if(Qt4QtWebKit_FOUND) + add_definitions(-DWEBKIT_WELCOMEPAGE) + set(WEBKIT_WELCOMEPAGE 1) + endif() elseif("${package}" MATCHES "^(KF5)$") #message("-- replaced by finding KDE4 --") _find_package(KDE4 REQUIRED) diff --git a/umbrello/CMakeLists.txt b/umbrello/CMakeLists.txt index 4a21685..56ae7d8 100644 --- a/umbrello/CMakeLists.txt +++ b/umbrello/CMakeLists.txt @@ -525,13 +525,15 @@ if(NOT BUILD_KF5) Qt4::QtCore Qt4::QtGui Qt4::QtXml - Qt4::QtWebKit ${LIBXML2_LIBRARIES} ${LIBXSLT_LIBRARIES} ${KDE4_KTEXTEDITOR_LIBS} ${KDE4_KFILE_LIBS} codeimport ) + if(WEBKIT_WELCOMEPAGE) + target_link_libraries(libumbrello Qt4::QtWebKit) + endif() kde4_add_app_icon(umbrello_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/pics/global/hi*-apps-umbrello.png") kde4_add_executable(umbrello ${umbrello_SRCS}) @@ -549,7 +551,6 @@ else() Qt5::Xml Qt5::PrintSupport Qt5::Svg - Qt5::WebKitWidgets KF5::Archive KF5::Completion KF5::CoreAddons @@ -565,6 +566,9 @@ else() ${LIBXML2_LIBRARIES} codeimport ) + if(WEBKIT_WELCOMEPAGE) + target_link_libraries(libumbrello Qt5::WebKitWidgets) + endif() ecm_add_app_icon(umbrello_SRCS ICONS ${CMAKE_CURRENT_SOURCE_DIR}/pics/global/16-apps-umbrello.png diff --git a/umbrello/umlappprivate.h b/umbrello/umlappprivate.h index a85de1f..a7212cc 100644 --- a/umbrello/umlappprivate.h +++ b/umbrello/umlappprivate.h @@ -42,7 +42,11 @@ #include #include #include +#ifdef WEBKIT_WELCOMEPAGE #include +#else +#include +#endif class QWidget; @@ -160,6 +164,7 @@ public slots: // qDebug() << html; welcomeWindow = new QDockWidget(i18n("Welcome"), parent); welcomeWindow->setObjectName(QLatin1String("WelcomeDock")); +#ifdef WEBKIT_WELCOMEPAGE QWebView *view = new QWebView; view->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks); view->setContextMenuPolicy(Qt::NoContextMenu); @@ -167,6 +172,14 @@ public slots: view->setHtml(html); view->show(); welcomeWindow->setWidget(view); +#else + QTextBrowser *tb = new QTextBrowser(dynamic_cast(this)); + tb->setOpenExternalLinks(true); + tb->setOpenLinks(false); + tb->setHtml(html); + connect(tb, SIGNAL(anchorClicked(const QUrl)), this, SLOT(slotWelcomeWindowLinkClicked(const QUrl))); + welcomeWindow->setWidget(tb); +#endif parent->addDockWidget(Qt::RightDockWidgetArea, welcomeWindow); viewWelcomeWindow = parent->actionCollection()->add(QLatin1String("view_show_welcome")); diff --git a/unittests/CMakeLists.txt b/unittests/CMakeLists.txt index 08cd43a..e96659f 100644 --- a/unittests/CMakeLists.txt +++ b/unittests/CMakeLists.txt @@ -60,7 +60,6 @@ else() Qt5::Xml Qt5::Test Qt5::Widgets - Qt5::WebKitWidgets KF5::I18n KF5::Crash ${LIBXML2_LIBRARIES} -- 2.32.0