mirror of
https://anongit.gentoo.org/git/repo/gentoo.git
synced 2025-12-18 16:08:17 +00:00
183 lines
6.4 KiB
Diff
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
|
|
|