summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Sturmlechner <asturm@gentoo.org>2024-12-06 22:29:19 +0100
committerAndreas Sturmlechner <asturm@gentoo.org>2024-12-06 22:33:24 +0100
commiteddeea4b483a20a09665ae9b8e7ea1ce7ab03c24 (patch)
tree5ea026b646011c42561d9da4a9d7fc2ba61aea3e /www-client
parentkde-plasma/plasma-sdk: Set ECM_HANDBOOK=forceoptional (diff)
downloadgentoo-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.ebuild85
-rw-r--r--www-client/falkon/files/falkon-24.08.3-fix-printing.patch100
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
+