149 lines
4.8 KiB
Diff
149 lines
4.8 KiB
Diff
From bc20a61b530b39a4a0dde9fd69a46fb4b3f27585 Mon Sep 17 00:00:00 2001
|
|
From: Andreas Sturmlechner <asturm@gentoo.org>
|
|
Date: Mon, 12 Oct 2020 11:46:24 +0200
|
|
Subject: [PATCH] Make QtWebKit usage in WelcomePage optional, with
|
|
QTextBrowser fallback
|
|
|
|
Thanks-to: Ralf Habacker <ralf.habacker@freenet.de> for QTextBrowser fallback code.
|
|
|
|
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
|
|
---
|
|
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 <QFileInfo>
|
|
#include <QListWidget>
|
|
#include <QObject>
|
|
+#ifdef WEBKIT_WELCOMEPAGE
|
|
#include <QWebView>
|
|
+#else
|
|
+#include <QTextBrowser>
|
|
+#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<QWidget*>(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<KToggleAction>(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
|
|
|