1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
|
From e45b4a51f7fd17d3ecc0cc73a014280646f810c8 Mon Sep 17 00:00:00 2001
From: Andreas Cord-Landwehr <cordlandwehr@kde.org>
Date: Sun, 18 Feb 2024 09:37:10 +0100
Subject: [PATCH] Provide option to disable browser integration
The web browser integration is only used for a small feature in the
editor part and pulls in a very big dependency via webengine that
sometimes is not wanted.
(cherry picked from commit 8b66372fec610b1d7470e6b2dda80fce4fc6c530)
---
CMakeLists.txt | 6 +++++-
src/CMakeLists.txt | 22 ++++++++++++++++++----
src/browserintegration.h.in | 4 ++++
src/editor/editor.cpp | 5 +++++
4 files changed, 32 insertions(+), 5 deletions(-)
create mode 100644 src/browserintegration.h.in
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a2624488..db8c5a1d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -30,13 +30,17 @@ add_definitions(-DQT_NO_URL_CAST_FROM_STRING)
add_definitions(-DQT_NO_FOREACH)
add_definitions(-DKNEWSTUFFWIDGETS_DISABLE_DEPRECATED_BEFORE_AND_AT=0x055A00)
+option(BUILD_BROWSERINTEGRATION "Build integration for accessing the Internet (requires QtWebengine)" ON)
+
find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} CONFIG REQUIRED
Core
Svg
Concurrent
Multimedia
- WebEngineWidgets
)
+if (BUILD_BROWSERINTEGRATION)
+ find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} CONFIG REQUIRED WebEngineWidgets)
+endif()
find_package(KF${QT_MAJOR_VERSION} ${KF_MIN_VERSION} MODULE REQUIRED COMPONENTS
DocTools #to produce the docbook
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index bf1e66ad..bac3ce7b 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -4,6 +4,8 @@ add_subdirectory( settings )
# This library is used both by parley itself and the unit tests.
add_library(parley_LIB STATIC)
+configure_file(browserintegration.h.in browserintegration.h @ONLY)
+
target_sources(parley_LIB PRIVATE
collection/collection.cpp
collection/collection.h
@@ -43,8 +45,6 @@ target_sources(parley_LIB PRIVATE
dashboard/gradereferencewidget.h
editor/audiowidget.cpp
editor/audiowidget.h
- editor/browserwidget.cpp
- editor/browserwidget.h
editor/comparisonwidget.cpp
editor/comparisonwidget.h
editor/conjugationwidget.cpp
@@ -194,6 +194,12 @@ target_sources(parley_LIB PRIVATE
utils.cpp
utils.h
)
+if (BUILD_BROWSERINTEGRATION)
+ target_sources(parley_LIB PRIVATE
+ editor/browserwidget.cpp
+ editor/browserwidget.h
+ )
+endif()
ki18n_wrap_ui(parley_LIB
collection/entryfilterdialog.ui
@@ -204,7 +210,6 @@ ki18n_wrap_ui(parley_LIB
editor/imagechooserwidget.ui
editor/audiowidget.ui
editor/synonymwidget.ui
- editor/browserwidget.ui
editor/summarywordwidget.ui
editor/latexwidget.ui
practice/practicesummarywidget.ui
@@ -228,6 +233,11 @@ ki18n_wrap_ui(parley_LIB
statistics/statisticsmainwindow.ui
dashboard/dashboard.ui
)
+if (BUILD_BROWSERINTEGRATION)
+ ki18n_wrap_ui(parley_LIB
+ editor/browserwidget.ui
+ )
+endif()
kconfig_add_kcfg_files(parley_LIB
settings/prefs.kcfgc
@@ -298,8 +308,12 @@ target_link_libraries(parley_LIB
Qt${QT_MAJOR_VERSION}::Widgets
Qt${QT_MAJOR_VERSION}::Concurrent
Qt${QT_MAJOR_VERSION}::Multimedia
- Qt${QT_MAJOR_VERSION}::WebEngineWidgets
)
+if (BUILD_BROWSERINTEGRATION)
+ target_link_libraries(parley_LIB
+ Qt${QT_MAJOR_VERSION}::WebEngineWidgets
+ )
+endif()
add_executable(parley
main.cpp
diff --git a/src/browserintegration.h.in b/src/browserintegration.h.in
new file mode 100644
index 00000000..2b350055
--- /dev/null
+++ b/src/browserintegration.h.in
@@ -0,0 +1,4 @@
+// SPDX-License-Identifier: MIT
+// SPDX-FileCopyrightText: Andreas Cord-Landwehr <cordlandwehr@kde.org>
+
+#cmakedefine BUILD_BROWSERINTEGRATION
diff --git a/src/editor/editor.cpp b/src/editor/editor.cpp
index 65d3146b..8a087c48 100644
--- a/src/editor/editor.cpp
+++ b/src/editor/editor.cpp
@@ -7,6 +7,7 @@
*/
#include "editor.h"
+#include "browserintegration.h"
#include <config-parley.h>
@@ -24,7 +25,9 @@
#include "wordtypeview.h"
#include "audiowidget.h"
+#ifdef BUILD_BROWSERINTEGRATION
#include "browserwidget.h"
+#endif
#include "comparisonwidget.h"
#include "imagechooserwidget.h"
#include "inflectionwidget.h"
@@ -321,6 +324,7 @@ void EditorWindow::initDockWidgets()
m_mainWindow->tabifyDockWidget(imageDock, audioDock);
// browser
+#ifdef BUILD_BROWSERINTEGRATION
QDockWidget *browserDock = new QDockWidget(i18n("Internet"), this);
browserDock->setObjectName(QStringLiteral("BrowserDock"));
BrowserWidget *htmlPart = new BrowserWidget(browserDock);
@@ -334,6 +338,7 @@ void EditorWindow::initDockWidgets()
browserDock->setVisible(false);
connect(m_vocabularyView, &VocabularyView::translationChanged, htmlPart, &BrowserWidget::setTranslation);
m_mainWindow->tabifyDockWidget(summaryDock, browserDock);
+#endif
// LaTeX
QDockWidget *latexDock = new QDockWidget(i18n("LaTeX"), this);
--
2.44.0
|