diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2024-12-06 22:29:19 +0100 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2024-12-06 22:33:24 +0100 |
commit | eddeea4b483a20a09665ae9b8e7ea1ce7ab03c24 (patch) | |
tree | 5ea026b646011c42561d9da4a9d7fc2ba61aea3e /www-client | |
parent | kde-plasma/plasma-sdk: Set ECM_HANDBOOK=forceoptional (diff) | |
download | gentoo-eddeea4b483a20a09665ae9b8e7ea1ce7ab03c24.tar.gz gentoo-eddeea4b483a20a09665ae9b8e7ea1ce7ab03c24.tar.bz2 gentoo-eddeea4b483a20a09665ae9b8e7ea1ce7ab03c24.zip |
www-client/falkon: Fix printing to printer other than PDF printer
KDE-bug: https://bugs.kde.org/show_bug.cgi?id=497051
Closes: https://bugs.gentoo.org/945887
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'www-client')
-rw-r--r-- | www-client/falkon/falkon-24.08.3-r1.ebuild | 85 | ||||
-rw-r--r-- | www-client/falkon/files/falkon-24.08.3-fix-printing.patch | 100 |
2 files changed, 185 insertions, 0 deletions
diff --git a/www-client/falkon/falkon-24.08.3-r1.ebuild b/www-client/falkon/falkon-24.08.3-r1.ebuild new file mode 100644 index 000000000000..4da6bc55c8ea --- /dev/null +++ b/www-client/falkon/falkon-24.08.3-r1.ebuild @@ -0,0 +1,85 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +ECM_TEST="true" +KFMIN=6.5.0 +QTMIN=6.7.2 +PYTHON_COMPAT=( python3_{10..12} ) +inherit ecm gear.kde.org python-single-r1 + +DESCRIPTION="Cross-platform web browser using QtWebEngine" +HOMEPAGE="https://www.falkon.org/ https://apps.kde.org/falkon/" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~amd64 ~arm64" +IUSE="dbus kde python +X" + +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" +RESTRICT="test" # bug 653046 + +COMMON_DEPEND=" + dev-libs/openssl:0= + >=dev-qt/qt5compat-${QTMIN}:6 + >=dev-qt/qtbase-${QTMIN}:6[dbus?,gui,network,sql,sqlite,ssl,widgets] + >=dev-qt/qtdeclarative-${QTMIN}:6[widgets] + >=dev-qt/qtwebchannel-${QTMIN}:6 + >=dev-qt/qtwebengine-${QTMIN}:6=[widgets] + >=kde-frameworks/karchive-${KFMIN}:6 + virtual/libintl + kde? ( + >=kde-frameworks/kcoreaddons-${KFMIN}:6 + >=kde-frameworks/kcrash-${KFMIN}:6 + >=kde-frameworks/kio-${KFMIN}:6 + >=kde-frameworks/kjobwidgets-${KFMIN}:6 + >=kde-frameworks/kwallet-${KFMIN}:6 + >=kde-frameworks/purpose-${KFMIN}:6 + ) + python? ( + ${PYTHON_DEPS} + $(python_gen_cond_dep " + >=dev-python/pyside6-${QTMIN}[designer,gui,positioning,webengine,widgets,\${PYTHON_USEDEP}] \ + >=dev-python/shiboken6-${QTMIN}[\${PYTHON_USEDEP}] + ") + ) + X? ( + x11-libs/libxcb:= + x11-libs/xcb-util + ) +" +DEPEND="${COMMON_DEPEND} + >=dev-qt/qtbase-${QTMIN}:6[concurrent] +" +if [[ ${KDE_BUILD_TYPE} != live ]]; then + DEPEND+=" >=kde-frameworks/ki18n-${KFMIN}:6" +fi +RDEPEND="${COMMON_DEPEND} + >=dev-qt/qtsvg-${QTMIN}:6 +" +BDEPEND=">=dev-qt/qttools-${QTMIN}:6[linguist]" + +PATCHES=( "${FILESDIR}/${P}-fix-printing.patch" ) # bug 945887 + +pkg_setup() { + use python && python-single-r1_pkg_setup + ecm_pkg_setup +} + +src_configure() { + local mycmakeargs=( + -DBUILD_KEYRING=OFF + -DDISABLE_DBUS=$(usex !dbus) + $(cmake_use_find_package kde KF6Wallet) + $(cmake_use_find_package kde KF6KIO) + -DBUILD_PYTHON_SUPPORT=$(usex python) + -DNO_X11=$(usex !X) + ) + use python && mycmakeargs+=( + -DPYTHON_CONFIG_SUFFIX="-${EPYTHON}" # shiboken_helpers.cmake quirk + -DPython3_INCLUDE_DIR=$(python_get_includedir) + -DPython3_LIBRARY=$(python_get_library_path) + ) + ecm_src_configure +} diff --git a/www-client/falkon/files/falkon-24.08.3-fix-printing.patch b/www-client/falkon/files/falkon-24.08.3-fix-printing.patch new file mode 100644 index 000000000000..8e5aecd366d8 --- /dev/null +++ b/www-client/falkon/files/falkon-24.08.3-fix-printing.patch @@ -0,0 +1,100 @@ +From cbf47b0625c9b67b3608e24600273693bd59462a Mon Sep 17 00:00:00 2001 +From: Juraj Oravec <jurajoravec@mailo.com> +Date: Wed, 4 Dec 2024 21:34:31 +0100 +Subject: [PATCH] Fix printing to printer other than PDF printer + +BUG: 497051 +FIXED-IN: 24.12 + +Chery picked from: eaa807023517e1d62dae41f9b1cdd93806d77d64 + +Signed-off-by: Juraj Oravec <jurajoravec@mailo.com> +--- + src/lib/webengine/webview.cpp | 22 ++++++++++++++-------- + src/lib/webengine/webview.h | 4 ++++ + 2 files changed, 18 insertions(+), 8 deletions(-) + +diff --git a/src/lib/webengine/webview.cpp b/src/lib/webengine/webview.cpp +index d2b5d7ee0..4871e8b3f 100644 +--- a/src/lib/webengine/webview.cpp ++++ b/src/lib/webengine/webview.cpp +@@ -67,6 +67,7 @@ WebView::WebView(QWidget* parent) + connect(this, &QWebEngineView::iconChanged, this, &WebView::slotIconChanged); + connect(this, &QWebEngineView::urlChanged, this, &WebView::slotUrlChanged); + connect(this, &QWebEngineView::titleChanged, this, &WebView::slotTitleChanged); ++ connect(this, &QWebEngineView::printFinished, this, &WebView::slotPrintFinished); + + m_currentZoomLevel = zoomLevels().indexOf(100); + +@@ -386,11 +387,11 @@ void WebView::printPage() + { + Q_ASSERT(m_page); + +- auto *printer = new QPrinter(); +- printer->setCreator(tr("Falkon %1 (%2)").arg(QString::fromLatin1(Qz::VERSION), QString::fromLatin1(Qz::WWWADDRESS))); +- printer->setDocName(QzTools::filterCharsFromFilename(title())); ++ m_printer = new QPrinter(); ++ m_printer->setCreator(tr("Falkon %1 (%2)").arg(QString::fromLatin1(Qz::VERSION), QString::fromLatin1(Qz::WWWADDRESS))); ++ m_printer->setDocName(QzTools::filterCharsFromFilename(title())); + +- auto *dialog = new QPrintDialog(printer, this); ++ auto *dialog = new QPrintDialog(m_printer, this); + dialog->setOptions(QAbstractPrintDialog::PrintToFile | QAbstractPrintDialog::PrintShowPageSize); + #ifndef Q_OS_WIN + dialog->setOption(QAbstractPrintDialog::PrintPageRange); +@@ -402,14 +403,19 @@ void WebView::printPage() + m_page->printToPdf(dialog->printer()->outputFileName(), dialog->printer()->pageLayout()); + delete dialog; + } else { +- connect(this, &QWebEngineView::printFinished, this, [&dialog](bool success) { +- Q_UNUSED(success); +- delete dialog; +- }); ++ print(m_printer); ++ delete dialog; + } + } + } + ++void WebView::slotPrintFinished(bool success) ++{ ++ Q_UNUSED(success); ++ delete m_printer; ++ m_printer = nullptr; ++} ++ + void WebView::slotLoadStarted() + { + m_progress = 0; +diff --git a/src/lib/webengine/webview.h b/src/lib/webengine/webview.h +index 37138cd6d..61e7281f8 100644 +--- a/src/lib/webengine/webview.h ++++ b/src/lib/webengine/webview.h +@@ -25,6 +25,7 @@ + #include "loadrequest.h" + #include "wheelhelper.h" + ++class QPrinter; + class WebPage; + class LoadRequest; + class WebHitTestResult; +@@ -118,6 +119,7 @@ protected Q_SLOTS: + void slotIconChanged(); + void slotUrlChanged(const QUrl &url); + void slotTitleChanged(const QString &title); ++ void slotPrintFinished(bool success); + + // Context menu slots + void openUrlInNewWindow(); +@@ -193,6 +195,8 @@ private: + WheelHelper m_wheelHelper; + + static bool s_forceContextMenuOnMouseRelease; ++ ++ QPrinter* m_printer; + }; + + #endif // WEBVIEW_H +-- +GitLab + |