diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2020-06-15 14:07:04 +0200 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2020-06-20 14:24:01 +0200 |
commit | 03f0ea92bc381ef5a8df7de1ae9edf4aed45a3b2 (patch) | |
tree | 5f2eea79b2db6582650a42e3af16d2e55fd3229c | |
parent | bbc326841a833596c46b9b716fdf15d49c7578ee (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.hxx | 18 | ||||
-rw-r--r-- | sd/source/filter/pdf/sdpdffilter.cxx | 8 | ||||
-rw-r--r-- | vcl/source/filter/ipdf/pdfread.cxx | 2 |
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( |