From 70d1deeebe8d3d262693f60203068845a0083728 Mon Sep 17 00:00:00 2001 From: Andreas Sturmlechner Date: Mon, 26 Oct 2020 17:59:47 +0100 Subject: kde-apps/kdenlive: Port to dev-qt/qtwebengine Package-Manager: Portage-3.0.8, Repoman-3.0.2 Signed-off-by: Andreas Sturmlechner --- .../files/kdenlive-20.08.3-webengine.patch | 213 +++++++++++++++++++++ kde-apps/kdenlive/kdenlive-20.08.2-r1.ebuild | 92 +++++++++ kde-apps/kdenlive/metadata.xml | 1 + 3 files changed, 306 insertions(+) create mode 100644 kde-apps/kdenlive/files/kdenlive-20.08.3-webengine.patch create mode 100644 kde-apps/kdenlive/kdenlive-20.08.2-r1.ebuild (limited to 'kde-apps') diff --git a/kde-apps/kdenlive/files/kdenlive-20.08.3-webengine.patch b/kde-apps/kdenlive/files/kdenlive-20.08.3-webengine.patch new file mode 100644 index 000000000000..0ffff1b4a384 --- /dev/null +++ b/kde-apps/kdenlive/files/kdenlive-20.08.3-webengine.patch @@ -0,0 +1,213 @@ +From 51feccf3cc0939d42c3ff237eb17f9a6091f1dd8 Mon Sep 17 00:00:00 2001 +From: Andreas Sturmlechner +Date: Fri, 23 Oct 2020 15:32:39 +0200 +Subject: [PATCH] Port to QtWebEngineWidgets + +Fixes https://invent.kde.org/multimedia/kdenlive/-/issues/775 + +Signed-off-by: Andreas Sturmlechner +--- + CMakeLists.txt | 2 +- + src/CMakeLists.txt | 12 ++++++------ + src/qt-oauth-lib/logindialog.cpp | 4 ++-- + src/qt-oauth-lib/logindialog.h | 3 +-- + src/qt-oauth-lib/oauth2.h | 4 ++-- + src/ui/logindialog_ui.ui | 6 +++--- + src/utils/resourcewidget.cpp | 14 +++++++------- + 7 files changed, 22 insertions(+), 23 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d434f1e31..a3f838433 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -71,7 +71,7 @@ if(WIN32) + set(MLT_PREFIX "..") + else() + set(MLT_PREFIX ${MLT_ROOT_DIR}) +- find_package(Qt5 OPTIONAL_COMPONENTS WebKitWidgets QUIET) ++ find_package(Qt5 OPTIONAL_COMPONENTS WebEngineWidgets QUIET) + endif() + + if(KF5FileMetaData_FOUND) +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 551178133..8356d4e47 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -65,7 +65,7 @@ add_subdirectory(transitions) + add_subdirectory(utils) + add_subdirectory(widgets) + add_subdirectory(xml) +-if(Qt5WebKitWidgets_FOUND) ++if(Qt5WebEngineWidgets_FOUND) + add_subdirectory(qt-oauth-lib) + endif() + ## top_SRCS +@@ -178,12 +178,12 @@ if(KF5_PURPOSE) + target_link_libraries(kdenliveLib KF5::Purpose KF5::PurposeWidgets) + endif() + +-if(Qt5WebKitWidgets_FOUND) +- message(STATUS "Found Qt5 WebKitWidgets. You can use your Freesound.org credentials to download files") +- target_compile_definitions(kdenliveLib PRIVATE -DQT5_USE_WEBKIT) +- target_link_libraries(kdenliveLib Qt5::WebKitWidgets) ++if(Qt5WebEngineWidgets_FOUND) ++ message(STATUS "Found Qt5 WebEngineWidgets. You can use your Freesound.org credentials to download files") ++ target_compile_definitions(kdenliveLib PRIVATE -DQT5_USE_WEBENGINE) ++ target_link_libraries(kdenliveLib Qt5::WebEngineWidgets) + else() +- message(STATUS "Qt5 WebKitWidgets not found. You cannot use your Freesound.org credentials, only preview files can be downloaded from the Online Resources Widget") ++ message(STATUS "Qt5 WebEngineWidgets not found. You cannot use your Freesound.org credentials, only preview files can be downloaded from the Online Resources Widget") + endif() + + if(Q_WS_X11) +diff --git a/src/qt-oauth-lib/logindialog.cpp b/src/qt-oauth-lib/logindialog.cpp +index a41aa420b..111978831 100644 +--- a/src/qt-oauth-lib/logindialog.cpp ++++ b/src/qt-oauth-lib/logindialog.cpp +@@ -38,7 +38,7 @@ + #include "ui_logindialog_ui.h" + + #include "kdenlive_debug.h" +-#include ++#include + + LoginDialog::LoginDialog(QWidget *parent) + : QDialog(parent) +@@ -54,7 +54,7 @@ LoginDialog::LoginDialog(QWidget *parent) + i18n("Enter your freesound account details to download the highest quality version of this file. Or use the High Quality " + "preview file instead (no freesound account required).")); + // m_ui->textBrowser +- connect(m_ui->webView, &QWebView::urlChanged, this, &LoginDialog::urlChanged); ++ connect(m_ui->webView, &QWebEngineView::urlChanged, this, &LoginDialog::urlChanged); + } + + LoginDialog::~LoginDialog() +diff --git a/src/qt-oauth-lib/logindialog.h b/src/qt-oauth-lib/logindialog.h +index 963b38ec5..c34383bf2 100644 +--- a/src/qt-oauth-lib/logindialog.h ++++ b/src/qt-oauth-lib/logindialog.h +@@ -47,11 +47,10 @@ class LoginDialog; + + /** + \brief This is the dialog that is used to login to freesound +- \details It contains a QWebView object to display the freesound web page. I did try using a QTextBrowser ++ \details It contains a QWebEngineView object to display the freesound web page. I did try using a QTextBrowser + for this purpose but it responds to the URL that is used to connect with + "No document for + https://www.freesound.org/apiv2/oauth2/authorize/?client_id=3duhagdr874c&redirect_uri=https://www.freesound.org/home/app_permissions/permission_granted/&response_type=code" +- The use of QWebView adds a dependency on the KF5WebKit to kdenlive. Need install libkf5webkit5-dev package on ubuntu + */ + class LoginDialog : public QDialog + { +diff --git a/src/qt-oauth-lib/oauth2.h b/src/qt-oauth-lib/oauth2.h +index f28724455..03993a214 100644 +--- a/src/qt-oauth-lib/oauth2.h ++++ b/src/qt-oauth-lib/oauth2.h +@@ -45,7 +45,7 @@ + const QLatin1String OAuth2_strClientSecret("441d88374716e7a3503997151e4780566f007313"); // obtained when ttguy registered the kdenlive application with freesound + #endif + +-#ifdef QT5_USE_WEBKIT ++#ifdef QT5_USE_WEBENGINE + + class LoginDialog; + +@@ -135,6 +135,6 @@ private: + void buildLoginDialog(); + }; + +-#endif // QT5_USE_WEBKIT ++#endif // QT5_USE_WEBENGINE + + #endif // OAUTH2_H +diff --git a/src/ui/logindialog_ui.ui b/src/ui/logindialog_ui.ui +index 20827d686..e98a68ed2 100644 +--- a/src/ui/logindialog_ui.ui ++++ b/src/ui/logindialog_ui.ui +@@ -15,7 +15,7 @@ + + + +- ++ + + + about:blank +@@ -51,9 +51,9 @@ + + + +- QWebView ++ QWebEngineView + QWidget +-
QtWebKitWidgets/QWebView
++
QtWebEngineWidgets/QWebEngineView
+
+
+ +diff --git a/src/utils/resourcewidget.cpp b/src/utils/resourcewidget.cpp +index 79bb48898..d0eaa225b 100644 +--- a/src/utils/resourcewidget.cpp ++++ b/src/utils/resourcewidget.cpp +@@ -49,7 +49,7 @@ + #include + #include + +-#ifdef QT5_USE_WEBKIT ++#ifdef QT5_USE_WEBENGINE + #include "qt-oauth-lib/oauth2.h" + #endif + +@@ -103,7 +103,7 @@ ResourceWidget::ResourceWidget(QString folder, QWidget *parent) + search_text->setFocus(); + connect(search_text, SIGNAL(returnPressed()), this, SLOT(slotStartSearch())); + +-#ifdef QT5_USE_WEBKIT ++#ifdef QT5_USE_WEBENGINE + m_pOAuth2 = new OAuth2(this); + connect(m_pOAuth2, &OAuth2::accessTokenReceived, this, &ResourceWidget::slotAccessTokenReceived); + connect(m_pOAuth2, &OAuth2::accessDenied, this, &ResourceWidget::slotFreesoundAccessDenied); +@@ -375,7 +375,7 @@ void ResourceWidget::slotSaveItem(const QString &originalUrl) + path.append(m_currentService->getDefaultDownloadName(item)); + + if (m_currentService->serviceType == AbstractService::FREESOUND) { +-#ifdef QT5_USE_WEBKIT ++#ifdef QT5_USE_WEBENGINE + sFileExt = m_currentService->getExtension(search_results->currentItem()); + #else + sFileExt = QStringLiteral("*.") + m_currentInfo.HQpreview.section(QLatin1Char('.'), -1); +@@ -402,7 +402,7 @@ void ResourceWidget::slotSaveItem(const QString &originalUrl) + } + slotSetDescription(QString()); + button_import->setEnabled(false); // disable buttons while download runs. enabled in slotGotFile +-#ifdef QT5_USE_WEBKIT ++#ifdef QT5_USE_WEBENGINE + if (m_currentService->serviceType == AbstractService::FREESOUND) { // open a dialog to authenticate with free sound and download the file + m_pOAuth2->obtainAccessToken(); // when job finished ResourceWidget::slotAccessTokenReceived will be called + } else { // not freesound - do file download via a KIO file copy job +@@ -841,7 +841,7 @@ void ResourceWidget::DownloadRequestFinished(QNetworkReply *reply) + m_desc.append(m_saveLocation); + updateLayout(); + } else { +-#ifdef QT5_USE_WEBKIT ++#ifdef QT5_USE_WEBENGINE + m_pOAuth2->ForgetAccessToken(); + #endif + m_desc.append(QStringLiteral("
") + i18n("Error Saving File")); +@@ -850,11 +850,11 @@ void ResourceWidget::DownloadRequestFinished(QNetworkReply *reply) + } else { + + if (reply->error() == QNetworkReply::AuthenticationRequiredError) { +-#ifdef QT5_USE_WEBKIT ++#ifdef QT5_USE_WEBENGINE + m_pOAuth2->obtainNewAccessToken(); + #endif + } else { +-#ifdef QT5_USE_WEBKIT ++#ifdef QT5_USE_WEBENGINE + m_pOAuth2->ForgetAccessToken(); + #endif + m_desc.append(QStringLiteral("
") + i18n("Error Downloading File. Error code: %1", reply->error()) + QStringLiteral("
")); +-- +2.29.1 + diff --git a/kde-apps/kdenlive/kdenlive-20.08.2-r1.ebuild b/kde-apps/kdenlive/kdenlive-20.08.2-r1.ebuild new file mode 100644 index 000000000000..02a490772edf --- /dev/null +++ b/kde-apps/kdenlive/kdenlive-20.08.2-r1.ebuild @@ -0,0 +1,92 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +ECM_HANDBOOK="optional" +ECM_TEST="true" +KFMIN=5.74.0 +QTMIN=5.15.1 +VIRTUALX_REQUIRED="test" +inherit ecm kde.org + +DESCRIPTION="Non-linear video editing suite by KDE" +HOMEPAGE="https://kdenlive.org/en/" + +LICENSE="GPL-2" +SLOT="5" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" +IUSE="gles2-only semantic-desktop share v4l webengine" + +BDEPEND=" + sys-devel/gettext +" +DEPEND=" + dev-cpp/rttr + >=dev-qt/qtconcurrent-${QTMIN}:5 + >=dev-qt/qtdbus-${QTMIN}:5 + >=dev-qt/qtdeclarative-${QTMIN}:5 + >=dev-qt/qtgui-${QTMIN}:5[gles2-only=] + >=dev-qt/qtmultimedia-${QTMIN}:5 + >=dev-qt/qtnetwork-${QTMIN}:5 + >=dev-qt/qtquickcontrols2-${QTMIN}:5 + >=dev-qt/qtsvg-${QTMIN}:5 + >=dev-qt/qtwidgets-${QTMIN}:5 + >=dev-qt/qtxml-${QTMIN}:5 + >=kde-frameworks/karchive-${KFMIN}:5 + >=kde-frameworks/kbookmarks-${KFMIN}:5 + >=kde-frameworks/kcompletion-${KFMIN}:5 + >=kde-frameworks/kconfig-${KFMIN}:5 + >=kde-frameworks/kconfigwidgets-${KFMIN}:5 + >=kde-frameworks/kcoreaddons-${KFMIN}:5 + >=kde-frameworks/kcrash-${KFMIN}:5 + >=kde-frameworks/kdbusaddons-${KFMIN}:5 + >=kde-frameworks/kdeclarative-${KFMIN}:5 + >=kde-frameworks/kguiaddons-${KFMIN}:5 + >=kde-frameworks/ki18n-${KFMIN}:5 + >=kde-frameworks/kiconthemes-${KFMIN}:5 + >=kde-frameworks/kio-${KFMIN}:5 + >=kde-frameworks/kitemviews-${KFMIN}:5 + >=kde-frameworks/kjobwidgets-${KFMIN}:5 + >=kde-frameworks/knewstuff-${KFMIN}:5 + >=kde-frameworks/knotifications-${KFMIN}:5 + >=kde-frameworks/knotifyconfig-${KFMIN}:5 + >=kde-frameworks/kservice-${KFMIN}:5 + >=kde-frameworks/ktextwidgets-${KFMIN}:5 + >=kde-frameworks/kwidgetsaddons-${KFMIN}:5 + >=kde-frameworks/kxmlgui-${KFMIN}:5 + >=kde-frameworks/solid-${KFMIN}:5 + >=media-libs/mlt-6.20.0[ffmpeg,frei0r,kdenlive,melt,qt5,sdl,xml] + semantic-desktop? ( >=kde-frameworks/kfilemetadata-${KFMIN}:5 ) + share? ( >=kde-frameworks/purpose-${KFMIN}:5 ) + v4l? ( media-libs/libv4l ) + webengine? ( >=dev-qt/qtwebengine-${QTMIN}:5 ) +" +RDEPEND="${DEPEND} + >=dev-qt/qtquickcontrols-${QTMIN}:5 + media-video/ffmpeg[encode,sdl,X] +" + +RESTRICT+=" test" # segfaults, bug 684132 + +PATCHES=( "${FILESDIR}/${PN}-20.08.3-webengine.patch" ) # pending upstream + +src_configure() { + local mycmakeargs=( + $(cmake_use_find_package semantic-desktop KF5FileMetaData) + $(cmake_use_find_package share KF5Purpose) + $(cmake_use_find_package v4l LibV4L2) + $(cmake_use_find_package webengine Qt5WebEngineWidgets) + ) + + ecm_src_configure +} + +pkg_postinst() { + ecm_pkg_postinst + + # Gentoo bug 603168 + if ! has_version "media-libs/mlt[fftw]" ; then + elog "For 'Crop and Transform/Rotate and Shear' effect, please build media-libs/mlt with USE=fftw enabled." + fi +} diff --git a/kde-apps/kdenlive/metadata.xml b/kde-apps/kdenlive/metadata.xml index 350073ec742f..c8d8c36fc391 100644 --- a/kde-apps/kdenlive/metadata.xml +++ b/kde-apps/kdenlive/metadata.xml @@ -8,5 +8,6 @@ Enable freesound.org credentials support via dev-qt/qtwebkit to download files Enable support for a share menu using kde-frameworks/purpose + Enable freesound.org credentials support via dev-qt/qtwebengine to download files -- cgit v1.2.3-65-gdbad