Author: Pino Toscano <pino@debian.org>
Description: Make QtWebEngine an optional requirement
 This makes it possible to build konqueror, albeith without an HTML component,
 also on architectures that do not have QtWebEngine.
 .
 2024-10-18: Updated for Qt6/KF6 by Aurélien COUDERC <coucouf@debiano.org>
Forwarded: no
Last-Update: 2024-10-18

--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -38,7 +38,8 @@ include(GenerateExportHeader)
 set(KONQUEROR_LIB_VERSION "${RELEASE_SERVICE_VERSION}")
 set(KONQUEROR_VERSION "${KONQUEROR_LIB_VERSION}")
 
-find_package(Qt${KF_MAJOR_VERSION} ${QT_MIN_VERSION} REQUIRED COMPONENTS Core Widgets WebEngineWidgets)
+find_package(Qt${KF_MAJOR_VERSION} ${QT_MIN_VERSION} REQUIRED COMPONENTS Core Widgets)
+find_package(Qt6WebEngineWidgets ${QT_MIN_VERSION})
 find_package(KF${KF_MAJOR_VERSION} ${KF_MIN_VERSION} REQUIRED COMPONENTS Parts KCMUtils Archive Crash WindowSystem IconThemes DBusAddons GuiAddons I18n Sonnet TextWidgets Codecs)

 find_package(KF${KF_MAJOR_VERSION} ${KF_MIN_VERSION} COMPONENTS DocTools) # Optional
@@ -70,7 +70,9 @@ add_subdirectory( client )
 if(BUILD_TESTING)
     add_subdirectory( autotests )
 endif()
-add_subdirectory( webenginepart )
+if(Qt6WebEngineWidgets_FOUND)
+    add_subdirectory( webenginepart )
+endif()
 
 add_subdirectory( pics )
 add_subdirectory( sidebar )
--- a/autotests/CMakeLists.txt
+++ b/autotests/CMakeLists.txt
@@ -9,8 +9,10 @@ ########### konqviewmgrtest ###############
 
 ########### konqviewmgrtest ###############
 
-ecm_add_test(konqviewmgrtest.cpp
-    LINK_LIBRARIES konqueror_internal_lib Qt${KF_MAJOR_VERSION}::Core Qt${KF_MAJOR_VERSION}::Gui kwebenginepartlib Qt${KF_MAJOR_VERSION}::WebEngineWidgets Qt${KF_MAJOR_VERSION}::Test)
+if (Qt6WebEngineWidgets_FOUND)
+  ecm_add_test(konqviewmgrtest.cpp
+      LINK_LIBRARIES konqueror_internal_lib Qt${KF_MAJOR_VERSION}::Core Qt${KF_MAJOR_VERSION}::Gui kwebenginepartlib Qt${KF_MAJOR_VERSION}::WebEngineWidgets Qt${KF_MAJOR_VERSION}::Test)
+endif()
 
 ########### historymanagertest ###############
 
@@ -24,8 +26,10 @@ ########### konqhtmltest ###############
 
 ########### konqhtmltest ###############
 
-ecm_add_test(konqhtmltest.cpp
-    LINK_LIBRARIES konqueror_internal_lib kwebenginepartlib Qt${KF_MAJOR_VERSION}::Core Qt${KF_MAJOR_VERSION}::Test)
+if (Qt6WebEngineWidgets_FOUND)
+  ecm_add_test(konqhtmltest.cpp
+      LINK_LIBRARIES konqueror_internal_lib kwebenginepartlib Qt${KF_MAJOR_VERSION}::Core Qt${KF_MAJOR_VERSION}::Test)
+endif()
 
 ########### konqviewtest ###############
 
--- a/plugins/CMakeLists.txt
+++ b/plugins/CMakeLists.txt
@@ -23,7 +23,11 @@ add_subdirectory( kimgalleryplugin )
 add_subdirectory( dirfilter )
 add_subdirectory( uachanger )
 add_subdirectory( babelfish )
-add_subdirectory( webarchiver )
+
+if (Qt6WebEngineWidgets_FOUND)
+   add_subdirectory( webarchiver )
+endif()
+
 add_subdirectory( kget )
 add_subdirectory( akregator )
 add_subdirectory( searchbar )
--- a/libkonq/src/CMakeLists.txt
+++ b/libkonq/src/CMakeLists.txt
@@ -44,14 +44,16 @@ target_link_libraries(KF${KF_MAJOR_VERSION}Konq
     KF${KF_MAJOR_VERSION}::CoreAddons
     KF${KF_MAJOR_VERSION}::Service
     KF${KF_MAJOR_VERSION}::Parts
-    Qt${KF_MAJOR_VERSION}::WebEngineWidgets
     KF${KF_MAJOR_VERSION}::TextWidgets
     KF${KF_MAJOR_VERSION}::KonqSettings
     PRIVATE
     KF${KF_MAJOR_VERSION}::Bookmarks
     KF${KF_MAJOR_VERSION}::I18n
     ${ZLIB_LIBRARY}
 )
+if(Qt6WebEngineWidgets_FOUND)
+  target_link_libraries(KF${KF_MAJOR_VERSION}Konq PUBLIC Qt${KF_MAJOR_VERSION}::WebEngineWidgets)
+endif()

 target_link_libraries(KF${KF_MAJOR_VERSION}Konq PRIVATE KF${KF_MAJOR_VERSION}::BookmarksWidgets)

--- a/src/urlloader.cpp
+++ b/src/urlloader.cpp
@@ -40,9 +40,7 @@
 
 #include <QDebug>
 #include <QArgument>
-#include <QWebEngineProfile>
 #include <QMimeDatabase>
-#include <QWebEngineProfile>
 #include <QFileDialog>
 #include <QFileInfo>
 #include <QLoggingCategory>
@@ -102,7 +102,11 @@ UrlLoader::UrlLoader(KonqMainWindow *mai
         m_downloadJob->setParent(this);
     }
     determineStartingMimetype();
+#ifndef NO_WEBENGINE
     m_ignoreDefaultHtmlPart = m_request.browserArgs.ignoreDefaultHtmlPart();
+#else
+    m_dontPassToWebEnginePart = true;
+#endif
 }
 
 UrlLoader::~UrlLoader()
