gentoo-ebuilds/app-office/calligra/files/calligra-25.08.2-poppler-25.10.patch
Andreas Sturmlechner 5e3a8540c7
app-office/calligra: add 25.08.2, build w/ eigen-5, cmake-4, poppler-25.10
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
2025-10-19 00:36:45 +02:00

183 lines
6.4 KiB
Diff

From 45e8b302bce1d318f310ea13599d7ce84acc477e Mon Sep 17 00:00:00 2001
From: Carl Schwan <carl@carlschwan.eu>
Date: Sun, 5 Oct 2025 14:21:49 +0200
Subject: [PATCH] Bump poppler to 25.02.0
---
CMakeLists.txt | 2 +-
filters/karbon/pdf/Pdf2OdgImport.cpp | 18 +++++-------------
filters/karbon/pdf/PdfImport.cpp | 27 +++++++++------------------
filters/karbon/pdf/SvgOutputDev.cpp | 18 ++++++++++++------
4 files changed, 27 insertions(+), 38 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 237308baa5d..878caf74af4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -618,7 +618,7 @@ set_package_properties(LibEtonyek PROPERTIES
##
## Test for qt-poppler
##
-macro_optional_find_package(Poppler "22.02.0" COMPONENTS Qt6)
+macro_optional_find_package(Poppler "25.02.0" COMPONENTS Qt6)
set_package_properties(Poppler PROPERTIES
PURPOSE "Required by the Karbon PDF import filter and CSTester PDF feature"
TYPE RECOMMENDED
diff --git a/filters/karbon/pdf/Pdf2OdgImport.cpp b/filters/karbon/pdf/Pdf2OdgImport.cpp
index 22124b5bc03..be9db2db942 100644
--- a/filters/karbon/pdf/Pdf2OdgImport.cpp
+++ b/filters/karbon/pdf/Pdf2OdgImport.cpp
@@ -31,8 +31,6 @@
#include <KPluginFactory>
-#include <poppler-version.h>
-
// Don't show this warning: it's an issue in poppler
#ifdef __GNUC__
#pragma GCC diagnostic ignored "-Wunused-parameter"
@@ -42,8 +40,6 @@
#include <GlobalParams.h>
#include <PDFDoc.h>
-#define POPPLER_VERSION_MACRO ((POPPLER_VERSION_MAJOR << 16) | (POPPLER_VERSION_MINOR << 8) | (POPPLER_VERSION_MICRO))
-
K_PLUGIN_FACTORY_WITH_JSON(Pdf2OdgImportFactory, "calligra_filter_pdf2odg.json", registerPlugin<Pdf2OdgImport>();)
Pdf2OdgImport::Pdf2OdgImport(QObject *parent, const QVariantList &)
@@ -70,17 +66,13 @@ KoFilter::ConversionStatus Pdf2OdgImport::convert(const QByteArray &from, const
Q_ASSERT(m_document->pages().isEmpty());
// read config file
- globalParams = std::unique_ptr<GlobalParams>(new GlobalParams);
- if (!globalParams)
+ globalParams = std::make_unique<GlobalParams>();
+ if (!globalParams) {
return KoFilter::NotImplemented;
+ }
-#if POPPLER_VERSION_MACRO < QT_VERSION_CHECK(22, 03, 0)
- GooString *fname = new GooString(QFile::encodeName(m_chain->inputFile()).data());
- PDFDoc *pdfDoc = new PDFDoc(fname, 0, 0, 0);
-#else
std::unique_ptr<GooString> fname = std::make_unique<GooString>(QFile::encodeName(m_chain->inputFile()).data());
- PDFDoc *pdfDoc = new PDFDoc(std::move(fname));
-#endif
+ auto pdfDoc = new PDFDoc(std::move(fname));
if (!pdfDoc) {
globalParams.reset();
return KoFilter::StupidError;
@@ -109,7 +101,7 @@ KoFilter::ConversionStatus Pdf2OdgImport::convert(const QByteArray &from, const
}
tmpFile.close();
debugPdf << "tmpFile:" << tmpFile.fileName();
- SvgOutputDev *dev = new SvgOutputDev(tmpFile.fileName());
+ auto dev = new SvgOutputDev(tmpFile.fileName());
if (dev->isOk()) {
int rotate = 0;
bool useMediaBox = true;
diff --git a/filters/karbon/pdf/PdfImport.cpp b/filters/karbon/pdf/PdfImport.cpp
index d41eb163250..511962cc0b6 100644
--- a/filters/karbon/pdf/PdfImport.cpp
+++ b/filters/karbon/pdf/PdfImport.cpp
@@ -17,10 +17,6 @@
#include <KPluginFactory>
-#include <poppler-version.h>
-
-#define POPPLER_VERSION_MACRO ((POPPLER_VERSION_MAJOR << 16) | (POPPLER_VERSION_MINOR << 8) | (POPPLER_VERSION_MICRO))
-
// Don't show this warning: it's an issue in poppler
#ifdef __GNUC__
#pragma GCC diagnostic ignored "-Wunused-parameter"
@@ -51,17 +47,13 @@ KoFilter::ConversionStatus PdfImport::convert(const QByteArray &from, const QByt
}
// read config file
- globalParams = std::unique_ptr<GlobalParams>(new GlobalParams);
- if (!globalParams)
+ globalParams = std::make_unique<GlobalParams>();
+ if (!globalParams) {
return KoFilter::NotImplemented;
+ }
-#if POPPLER_VERSION_MACRO < QT_VERSION_CHECK(22, 03, 0)
- GooString *fname = new GooString(QFile::encodeName(m_chain->inputFile()).data());
- PDFDoc *pdfDoc = new PDFDoc(fname, 0, 0, 0);
-#else
- std::unique_ptr<GooString> fname = std::make_unique<GooString>(QFile::encodeName(m_chain->inputFile()).data());
- PDFDoc *pdfDoc = new PDFDoc(std::move(fname));
-#endif
+ auto fname = std::make_unique<GooString>(QFile::encodeName(m_chain->inputFile()).data());
+ auto pdfDoc = new PDFDoc(std::move(fname));
if (!pdfDoc) {
globalParams.reset();
return KoFilter::StupidError;
@@ -81,19 +73,18 @@ KoFilter::ConversionStatus PdfImport::convert(const QByteArray &from, const QByt
debugPdf << "converting pages" << firstPage << "-" << lastPage;
- SvgOutputDev *dev = new SvgOutputDev(m_chain->outputFile());
- if (dev->isOk()) {
+ SvgOutputDev dev(m_chain->outputFile());
+ if (dev.isOk()) {
int rotate = 0;
bool useMediaBox = true;
bool crop = false;
bool printing = false;
- pdfDoc->displayPages(dev, firstPage, lastPage, hDPI, vDPI, rotate, useMediaBox, crop, printing);
- dev->dumpContent();
+ pdfDoc->displayPages(&dev, firstPage, lastPage, hDPI, vDPI, rotate, useMediaBox, crop, printing);
+ dev.dumpContent();
}
debugPdf << "wrote file to" << m_chain->outputFile();
- delete dev;
delete pdfDoc;
globalParams.reset();
diff --git a/filters/karbon/pdf/SvgOutputDev.cpp b/filters/karbon/pdf/SvgOutputDev.cpp
index 1e553ab391e..436243da7bd 100644
--- a/filters/karbon/pdf/SvgOutputDev.cpp
+++ b/filters/karbon/pdf/SvgOutputDev.cpp
@@ -386,23 +386,29 @@ void SvgOutputDev::drawString(GfxState *state, const GooString *s)
{
int render = state->getRender();
// check for invisible text -- this is used by Acrobat Capture
- if (render == 3)
+ if (render == 3) {
return;
+ }
// ignore empty strings
- if (s->getLength() == 0)
+#if POPPLER_VERSION_MACRO < QT_VERSION_CHECK(25, 10, 0)
+ if (s->getLength() == 0) {
+#else
+ if (s->size() == 0) {
+#endif
return;
+ }
-#if POPPLER_VERSION_MACRO < QT_VERSION_CHECK(22, 04, 0)
- GfxFont *font = state->getFont();
-#else
std::shared_ptr<GfxFont> font = state->getFont();
-#endif
QString str;
const char *p = s->c_str();
+#if POPPLER_VERSION_MACRO < QT_VERSION_CHECK(25, 10, 0)
int len = s->getLength();
+#else
+ int len = s->size();
+#endif
CharCode code;
const Unicode *u = nullptr;
int uLen;
--
GitLab