From eb753a7eb0f49c6ac5b349f81387ca4b4c64342b 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 ++++++- umbrello/CMakeLists.txt | 4 +++- umbrello/umlappprivate.h | 13 +++++++++++++ 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 398415f09..7144f0990 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -95,9 +95,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/umbrello/CMakeLists.txt b/umbrello/CMakeLists.txt index 264b25fde..f3286ae46 100644 --- a/umbrello/CMakeLists.txt +++ b/umbrello/CMakeLists.txt @@ -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 a85de1f22..a7212cc8d 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")); -- 2.29.2