Gentoo Archives: gentoo-commits

From: Andreas Sturmlechner <asturm@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/kde:master commit in: kde-apps/kdenlive/, kde-apps/kdenlive/files/
Date: Mon, 26 Oct 2020 17:12:41
Message-Id: 1603731515.d346cec73292bb618a4e649fad6ef64cdc8ae803.asturm@gentoo
1 commit: d346cec73292bb618a4e649fad6ef64cdc8ae803
2 Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
3 AuthorDate: Mon Oct 26 16:58:35 2020 +0000
4 Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
5 CommitDate: Mon Oct 26 16:58:35 2020 +0000
6 URL: https://gitweb.gentoo.org/proj/kde.git/commit/?id=d346cec7
7
8 kde-apps/kdenlive: Port to dev-qt/qtwebengine
9
10 Package-Manager: Portage-3.0.8, Repoman-3.0.2
11 Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>
12
13 .../files/kdenlive-20.08.3-webengine.patch | 213 +++++++++++++++++++++
14 kde-apps/kdenlive/kdenlive-20.08.49.9999.ebuild | 8 +-
15 kde-apps/kdenlive/kdenlive-9999.ebuild | 8 +-
16 kde-apps/kdenlive/metadata.xml | 2 +-
17 4 files changed, 224 insertions(+), 7 deletions(-)
18
19 diff --git a/kde-apps/kdenlive/files/kdenlive-20.08.3-webengine.patch b/kde-apps/kdenlive/files/kdenlive-20.08.3-webengine.patch
20 new file mode 100644
21 index 0000000000..0ffff1b4a3
22 --- /dev/null
23 +++ b/kde-apps/kdenlive/files/kdenlive-20.08.3-webengine.patch
24 @@ -0,0 +1,213 @@
25 +From 51feccf3cc0939d42c3ff237eb17f9a6091f1dd8 Mon Sep 17 00:00:00 2001
26 +From: Andreas Sturmlechner <asturm@g.o>
27 +Date: Fri, 23 Oct 2020 15:32:39 +0200
28 +Subject: [PATCH] Port to QtWebEngineWidgets
29 +
30 +Fixes https://invent.kde.org/multimedia/kdenlive/-/issues/775
31 +
32 +Signed-off-by: Andreas Sturmlechner <asturm@g.o>
33 +---
34 + CMakeLists.txt | 2 +-
35 + src/CMakeLists.txt | 12 ++++++------
36 + src/qt-oauth-lib/logindialog.cpp | 4 ++--
37 + src/qt-oauth-lib/logindialog.h | 3 +--
38 + src/qt-oauth-lib/oauth2.h | 4 ++--
39 + src/ui/logindialog_ui.ui | 6 +++---
40 + src/utils/resourcewidget.cpp | 14 +++++++-------
41 + 7 files changed, 22 insertions(+), 23 deletions(-)
42 +
43 +diff --git a/CMakeLists.txt b/CMakeLists.txt
44 +index d434f1e31..a3f838433 100644
45 +--- a/CMakeLists.txt
46 ++++ b/CMakeLists.txt
47 +@@ -71,7 +71,7 @@ if(WIN32)
48 + set(MLT_PREFIX "..")
49 + else()
50 + set(MLT_PREFIX ${MLT_ROOT_DIR})
51 +- find_package(Qt5 OPTIONAL_COMPONENTS WebKitWidgets QUIET)
52 ++ find_package(Qt5 OPTIONAL_COMPONENTS WebEngineWidgets QUIET)
53 + endif()
54 +
55 + if(KF5FileMetaData_FOUND)
56 +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
57 +index 551178133..8356d4e47 100644
58 +--- a/src/CMakeLists.txt
59 ++++ b/src/CMakeLists.txt
60 +@@ -65,7 +65,7 @@ add_subdirectory(transitions)
61 + add_subdirectory(utils)
62 + add_subdirectory(widgets)
63 + add_subdirectory(xml)
64 +-if(Qt5WebKitWidgets_FOUND)
65 ++if(Qt5WebEngineWidgets_FOUND)
66 + add_subdirectory(qt-oauth-lib)
67 + endif()
68 + ## top_SRCS
69 +@@ -178,12 +178,12 @@ if(KF5_PURPOSE)
70 + target_link_libraries(kdenliveLib KF5::Purpose KF5::PurposeWidgets)
71 + endif()
72 +
73 +-if(Qt5WebKitWidgets_FOUND)
74 +- message(STATUS "Found Qt5 WebKitWidgets. You can use your Freesound.org credentials to download files")
75 +- target_compile_definitions(kdenliveLib PRIVATE -DQT5_USE_WEBKIT)
76 +- target_link_libraries(kdenliveLib Qt5::WebKitWidgets)
77 ++if(Qt5WebEngineWidgets_FOUND)
78 ++ message(STATUS "Found Qt5 WebEngineWidgets. You can use your Freesound.org credentials to download files")
79 ++ target_compile_definitions(kdenliveLib PRIVATE -DQT5_USE_WEBENGINE)
80 ++ target_link_libraries(kdenliveLib Qt5::WebEngineWidgets)
81 + else()
82 +- message(STATUS "Qt5 WebKitWidgets not found. You cannot use your Freesound.org credentials, only preview files can be downloaded from the Online Resources Widget")
83 ++ message(STATUS "Qt5 WebEngineWidgets not found. You cannot use your Freesound.org credentials, only preview files can be downloaded from the Online Resources Widget")
84 + endif()
85 +
86 + if(Q_WS_X11)
87 +diff --git a/src/qt-oauth-lib/logindialog.cpp b/src/qt-oauth-lib/logindialog.cpp
88 +index a41aa420b..111978831 100644
89 +--- a/src/qt-oauth-lib/logindialog.cpp
90 ++++ b/src/qt-oauth-lib/logindialog.cpp
91 +@@ -38,7 +38,7 @@
92 + #include "ui_logindialog_ui.h"
93 +
94 + #include "kdenlive_debug.h"
95 +-#include <QWebView>
96 ++#include <QWebEngineView>
97 +
98 + LoginDialog::LoginDialog(QWidget *parent)
99 + : QDialog(parent)
100 +@@ -54,7 +54,7 @@ LoginDialog::LoginDialog(QWidget *parent)
101 + i18n("Enter your freesound account details to download the highest quality version of this file. Or use the High Quality "
102 + "preview file instead (no freesound account required)."));
103 + // m_ui->textBrowser
104 +- connect(m_ui->webView, &QWebView::urlChanged, this, &LoginDialog::urlChanged);
105 ++ connect(m_ui->webView, &QWebEngineView::urlChanged, this, &LoginDialog::urlChanged);
106 + }
107 +
108 + LoginDialog::~LoginDialog()
109 +diff --git a/src/qt-oauth-lib/logindialog.h b/src/qt-oauth-lib/logindialog.h
110 +index 963b38ec5..c34383bf2 100644
111 +--- a/src/qt-oauth-lib/logindialog.h
112 ++++ b/src/qt-oauth-lib/logindialog.h
113 +@@ -47,11 +47,10 @@ class LoginDialog;
114 +
115 + /**
116 + \brief This is the dialog that is used to login to freesound
117 +- \details It contains a QWebView object to display the freesound web page. I did try using a QTextBrowser
118 ++ \details It contains a QWebEngineView object to display the freesound web page. I did try using a QTextBrowser
119 + for this purpose but it responds to the URL that is used to connect with
120 + "No document for
121 + https://www.freesound.org/apiv2/oauth2/authorize/?client_id=3duhagdr874c&redirect_uri=https://www.freesound.org/home/app_permissions/permission_granted/&response_type=code"
122 +- The use of QWebView adds a dependency on the KF5WebKit to kdenlive. Need install libkf5webkit5-dev package on ubuntu
123 + */
124 + class LoginDialog : public QDialog
125 + {
126 +diff --git a/src/qt-oauth-lib/oauth2.h b/src/qt-oauth-lib/oauth2.h
127 +index f28724455..03993a214 100644
128 +--- a/src/qt-oauth-lib/oauth2.h
129 ++++ b/src/qt-oauth-lib/oauth2.h
130 +@@ -45,7 +45,7 @@
131 + const QLatin1String OAuth2_strClientSecret("441d88374716e7a3503997151e4780566f007313"); // obtained when ttguy registered the kdenlive application with freesound
132 + #endif
133 +
134 +-#ifdef QT5_USE_WEBKIT
135 ++#ifdef QT5_USE_WEBENGINE
136 +
137 + class LoginDialog;
138 +
139 +@@ -135,6 +135,6 @@ private:
140 + void buildLoginDialog();
141 + };
142 +
143 +-#endif // QT5_USE_WEBKIT
144 ++#endif // QT5_USE_WEBENGINE
145 +
146 + #endif // OAUTH2_H
147 +diff --git a/src/ui/logindialog_ui.ui b/src/ui/logindialog_ui.ui
148 +index 20827d686..e98a68ed2 100644
149 +--- a/src/ui/logindialog_ui.ui
150 ++++ b/src/ui/logindialog_ui.ui
151 +@@ -15,7 +15,7 @@
152 + </property>
153 + <layout class="QGridLayout" name="gridLayout">
154 + <item row="1" column="0">
155 +- <widget class="QWebView" name="webView">
156 ++ <widget class="QWebEngineView" name="webView">
157 + <property name="url">
158 + <url>
159 + <string>about:blank</string>
160 +@@ -51,9 +51,9 @@
161 + </widget>
162 + <customwidgets>
163 + <customwidget>
164 +- <class>QWebView</class>
165 ++ <class>QWebEngineView</class>
166 + <extends>QWidget</extends>
167 +- <header>QtWebKitWidgets/QWebView</header>
168 ++ <header>QtWebEngineWidgets/QWebEngineView</header>
169 + </customwidget>
170 + </customwidgets>
171 + <resources/>
172 +diff --git a/src/utils/resourcewidget.cpp b/src/utils/resourcewidget.cpp
173 +index 79bb48898..d0eaa225b 100644
174 +--- a/src/utils/resourcewidget.cpp
175 ++++ b/src/utils/resourcewidget.cpp
176 +@@ -49,7 +49,7 @@
177 + #include <QPixmap>
178 + #include <klocalizedstring.h>
179 +
180 +-#ifdef QT5_USE_WEBKIT
181 ++#ifdef QT5_USE_WEBENGINE
182 + #include "qt-oauth-lib/oauth2.h"
183 + #endif
184 +
185 +@@ -103,7 +103,7 @@ ResourceWidget::ResourceWidget(QString folder, QWidget *parent)
186 + search_text->setFocus();
187 + connect(search_text, SIGNAL(returnPressed()), this, SLOT(slotStartSearch()));
188 +
189 +-#ifdef QT5_USE_WEBKIT
190 ++#ifdef QT5_USE_WEBENGINE
191 + m_pOAuth2 = new OAuth2(this);
192 + connect(m_pOAuth2, &OAuth2::accessTokenReceived, this, &ResourceWidget::slotAccessTokenReceived);
193 + connect(m_pOAuth2, &OAuth2::accessDenied, this, &ResourceWidget::slotFreesoundAccessDenied);
194 +@@ -375,7 +375,7 @@ void ResourceWidget::slotSaveItem(const QString &originalUrl)
195 + path.append(m_currentService->getDefaultDownloadName(item));
196 +
197 + if (m_currentService->serviceType == AbstractService::FREESOUND) {
198 +-#ifdef QT5_USE_WEBKIT
199 ++#ifdef QT5_USE_WEBENGINE
200 + sFileExt = m_currentService->getExtension(search_results->currentItem());
201 + #else
202 + sFileExt = QStringLiteral("*.") + m_currentInfo.HQpreview.section(QLatin1Char('.'), -1);
203 +@@ -402,7 +402,7 @@ void ResourceWidget::slotSaveItem(const QString &originalUrl)
204 + }
205 + slotSetDescription(QString());
206 + button_import->setEnabled(false); // disable buttons while download runs. enabled in slotGotFile
207 +-#ifdef QT5_USE_WEBKIT
208 ++#ifdef QT5_USE_WEBENGINE
209 + if (m_currentService->serviceType == AbstractService::FREESOUND) { // open a dialog to authenticate with free sound and download the file
210 + m_pOAuth2->obtainAccessToken(); // when job finished ResourceWidget::slotAccessTokenReceived will be called
211 + } else { // not freesound - do file download via a KIO file copy job
212 +@@ -841,7 +841,7 @@ void ResourceWidget::DownloadRequestFinished(QNetworkReply *reply)
213 + m_desc.append(m_saveLocation);
214 + updateLayout();
215 + } else {
216 +-#ifdef QT5_USE_WEBKIT
217 ++#ifdef QT5_USE_WEBENGINE
218 + m_pOAuth2->ForgetAccessToken();
219 + #endif
220 + m_desc.append(QStringLiteral("<br>") + i18n("Error Saving File"));
221 +@@ -850,11 +850,11 @@ void ResourceWidget::DownloadRequestFinished(QNetworkReply *reply)
222 + } else {
223 +
224 + if (reply->error() == QNetworkReply::AuthenticationRequiredError) {
225 +-#ifdef QT5_USE_WEBKIT
226 ++#ifdef QT5_USE_WEBENGINE
227 + m_pOAuth2->obtainNewAccessToken();
228 + #endif
229 + } else {
230 +-#ifdef QT5_USE_WEBKIT
231 ++#ifdef QT5_USE_WEBENGINE
232 + m_pOAuth2->ForgetAccessToken();
233 + #endif
234 + m_desc.append(QStringLiteral("<br>") + i18n("Error Downloading File. Error code: %1", reply->error()) + QStringLiteral("<br>"));
235 +--
236 +2.29.1
237 +
238
239 diff --git a/kde-apps/kdenlive/kdenlive-20.08.49.9999.ebuild b/kde-apps/kdenlive/kdenlive-20.08.49.9999.ebuild
240 index a35478dc65..8603178029 100644
241 --- a/kde-apps/kdenlive/kdenlive-20.08.49.9999.ebuild
242 +++ b/kde-apps/kdenlive/kdenlive-20.08.49.9999.ebuild
243 @@ -16,7 +16,7 @@ HOMEPAGE="https://kdenlive.org/en/"
244 LICENSE="GPL-2"
245 SLOT="5"
246 KEYWORDS=""
247 -IUSE="freesound gles2-only semantic-desktop share v4l"
248 +IUSE="gles2-only semantic-desktop share v4l webengine"
249
250 BDEPEND="
251 sys-devel/gettext
252 @@ -57,10 +57,10 @@ DEPEND="
253 >=kde-frameworks/kxmlgui-${KFMIN}:5
254 >=kde-frameworks/solid-${KFMIN}:5
255 >=media-libs/mlt-6.20.0[ffmpeg,frei0r,kdenlive,melt,qt5,sdl,xml]
256 - freesound? ( >=dev-qt/qtwebkit-5.212.0_pre20180120:5 )
257 semantic-desktop? ( >=kde-frameworks/kfilemetadata-${KFMIN}:5 )
258 share? ( >=kde-frameworks/purpose-${KFMIN}:5 )
259 v4l? ( media-libs/libv4l )
260 + webengine? ( >=dev-qt/qtwebengine-${QTMIN}:5 )
261 "
262 RDEPEND="${DEPEND}
263 >=dev-qt/qtquickcontrols-${QTMIN}:5
264 @@ -69,12 +69,14 @@ RDEPEND="${DEPEND}
265
266 RESTRICT+=" test" # segfaults, bug 684132
267
268 +PATCHES=( "${FILESDIR}/${PN}-20.08.3-webengine.patch" ) # pending upstream
269 +
270 src_configure() {
271 local mycmakeargs=(
272 - $(cmake_use_find_package freesound Qt5WebKitWidgets)
273 $(cmake_use_find_package semantic-desktop KF5FileMetaData)
274 $(cmake_use_find_package share KF5Purpose)
275 $(cmake_use_find_package v4l LibV4L2)
276 + $(cmake_use_find_package webengine Qt5WebEngineWidgets)
277 )
278
279 ecm_src_configure
280
281 diff --git a/kde-apps/kdenlive/kdenlive-9999.ebuild b/kde-apps/kdenlive/kdenlive-9999.ebuild
282 index 57bf760131..0d00d6ae2d 100644
283 --- a/kde-apps/kdenlive/kdenlive-9999.ebuild
284 +++ b/kde-apps/kdenlive/kdenlive-9999.ebuild
285 @@ -16,7 +16,7 @@ HOMEPAGE="https://kdenlive.org/en/"
286 LICENSE="GPL-2"
287 SLOT="5"
288 KEYWORDS=""
289 -IUSE="freesound gles2-only semantic-desktop share v4l"
290 +IUSE="gles2-only semantic-desktop share v4l webengine"
291
292 BDEPEND="
293 sys-devel/gettext
294 @@ -57,10 +57,10 @@ DEPEND="
295 >=kde-frameworks/kxmlgui-${KFMIN}:5
296 >=kde-frameworks/solid-${KFMIN}:5
297 >=media-libs/mlt-6.20.0[ffmpeg,frei0r,kdenlive,melt,qt5,sdl,xml]
298 - freesound? ( >=dev-qt/qtwebkit-5.212.0_pre20180120:5 )
299 semantic-desktop? ( >=kde-frameworks/kfilemetadata-${KFMIN}:5 )
300 share? ( >=kde-frameworks/purpose-${KFMIN}:5 )
301 v4l? ( media-libs/libv4l )
302 + webengine? ( >=dev-qt/qtwebengine-${QTMIN}:5 )
303 "
304 RDEPEND="${DEPEND}
305 >=dev-qt/qtquickcontrols-${QTMIN}:5
306 @@ -69,12 +69,14 @@ RDEPEND="${DEPEND}
307
308 RESTRICT+=" test" # segfaults, bug 684132
309
310 +PATCHES=( "${FILESDIR}/${PN}-20.08.3-webengine.patch" ) # pending upstream
311 +
312 src_configure() {
313 local mycmakeargs=(
314 - $(cmake_use_find_package freesound Qt5WebKitWidgets)
315 $(cmake_use_find_package semantic-desktop KF5FileMetaData)
316 $(cmake_use_find_package share KF5Purpose)
317 $(cmake_use_find_package v4l LibV4L2)
318 + $(cmake_use_find_package webengine Qt5WebEngineWidgets)
319 )
320
321 ecm_src_configure
322
323 diff --git a/kde-apps/kdenlive/metadata.xml b/kde-apps/kdenlive/metadata.xml
324 index 350073ec74..c656c56e78 100644
325 --- a/kde-apps/kdenlive/metadata.xml
326 +++ b/kde-apps/kdenlive/metadata.xml
327 @@ -6,7 +6,7 @@
328 <name>Gentoo KDE Project</name>
329 </maintainer>
330 <use>
331 - <flag name="freesound">Enable freesound.org credentials support via <pkg>dev-qt/qtwebkit</pkg> to download files</flag>
332 <flag name="share">Enable support for a share menu using <pkg>kde-frameworks/purpose</pkg></flag>
333 + <flag name="webengine">Enable freesound.org credentials support via <pkg>dev-qt/qtwebengine</pkg> to download files</flag>
334 </use>
335 </pkgmetadata>