summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2020-06-15 14:07:04 +0200
committerTomaž Vajngerl <quikee@gmail.com>2020-06-20 14:24:01 +0200
commit03f0ea92bc381ef5a8df7de1ae9edf4aed45a3b2 (patch)
tree5f2eea79b2db6582650a42e3af16d2e55fd3229c
parentbbc326841a833596c46b9b716fdf15d49c7578ee (diff)
vcl: add PDFGraphicResult instead of std::pair in ImportPDFUnloaded
ImportPDFUnloaded returned graphics as a vector of std::pair with Graphic and Size. Instead, use a new struct PDFGraphicResult, so it can be extended in the future. Change-Id: Idda00a3b98a8efcbd9b8c8d0ee3982becfdc1d7f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96755 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
-rw-r--r--include/vcl/pdfread.hxx18
-rw-r--r--sd/source/filter/pdf/sdpdffilter.cxx8
-rw-r--r--vcl/source/filter/ipdf/pdfread.cxx2
3 files changed, 21 insertions, 7 deletions
diff --git a/include/vcl/pdfread.hxx b/include/vcl/pdfread.hxx
index ba0eb1ca85be..a65d230279b9 100644
--- a/include/vcl/pdfread.hxx
+++ b/include/vcl/pdfread.hxx
@@ -13,13 +13,13 @@
#include <vector>
#include <tools/gen.hxx>
#include <tools/stream.hxx>
+#include <vcl/graph.hxx>
namespace com::sun::star::uno
{
template <typename> class Sequence;
}
class Bitmap;
-class Graphic;
namespace vcl
{
@@ -31,10 +31,24 @@ VCL_DLLPUBLIC size_t RenderPDFBitmaps(const void* pBuffer, int nSize, std::vecto
/// Imports a PDF stream into rGraphic as VectorGraphicData.
VCL_DLLPUBLIC bool ImportPDF(SvStream& rStream, Graphic& rGraphic);
+struct PDFGraphicResult
+{
+ Graphic maGraphic;
+
+ // Size in HMM
+ Size maSize;
+
+ PDFGraphicResult(Graphic const& rGraphic, Size const& rSize)
+ : maGraphic(rGraphic)
+ , maSize(rSize)
+ {
+ }
+};
+
/// Import PDF as Graphic images (1 per page), but not loaded yet.
/// Returns the number of pages read.
VCL_DLLPUBLIC size_t ImportPDFUnloaded(const OUString& rURL,
- std::vector<std::pair<Graphic, Size>>& rGraphics);
+ std::vector<PDFGraphicResult>& rGraphics);
}
#endif // INCLUDED_VCL_SOURCE_FILTER_IPDF_PDFREAD_HXX
diff --git a/sd/source/filter/pdf/sdpdffilter.cxx b/sd/source/filter/pdf/sdpdffilter.cxx
index 55d21f4057b8..2b09bc9e828e 100644
--- a/sd/source/filter/pdf/sdpdffilter.cxx
+++ b/sd/source/filter/pdf/sdpdffilter.cxx
@@ -41,7 +41,7 @@ bool SdPdfFilter::Import()
const OUString aFileName(
mrMedium.GetURLObject().GetMainURL(INetURLObject::DecodeMechanism::NONE));
- std::vector<std::pair<Graphic, Size>> aGraphics;
+ std::vector<vcl::PDFGraphicResult> aGraphics;
if (vcl::ImportPDFUnloaded(aFileName, aGraphics) == 0)
return false;
@@ -52,10 +52,10 @@ bool SdPdfFilter::Import()
mrDocument.DuplicatePage(0);
}
- for (const std::pair<Graphic, Size>& aPair : aGraphics)
+ for (vcl::PDFGraphicResult const& rPDFGraphicResult : aGraphics)
{
- const Graphic& rGraphic = aPair.first;
- const Size& aSizeHMM = aPair.second;
+ const Graphic& rGraphic = rPDFGraphicResult.maGraphic;
+ const Size& aSizeHMM = rPDFGraphicResult.maSize;
const sal_Int32 nPageNumber = rGraphic.getPageNumber();
assert(nPageNumber >= 0 && o3tl::make_unsigned(nPageNumber) < aGraphics.size());
diff --git a/vcl/source/filter/ipdf/pdfread.cxx b/vcl/source/filter/ipdf/pdfread.cxx
index 10caf1a975f5..9845c6c387c4 100644
--- a/vcl/source/filter/ipdf/pdfread.cxx
+++ b/vcl/source/filter/ipdf/pdfread.cxx
@@ -224,7 +224,7 @@ bool ImportPDF(SvStream& rStream, Graphic& rGraphic)
return true;
}
-size_t ImportPDFUnloaded(const OUString& rURL, std::vector<std::pair<Graphic, Size>>& rGraphics)
+size_t ImportPDFUnloaded(const OUString& rURL, std::vector<PDFGraphicResult>& rGraphics)
{
#if HAVE_FEATURE_PDFIUM
std::unique_ptr<SvStream> xStream(