summaryrefslogtreecommitdiff
path: root/sd
diff options
context:
space:
mode:
authorJan Holesovsky <kendy@collabora.com>2019-10-18 11:19:04 +0200
committerTomaž Vajngerl <quikee@gmail.com>2020-03-17 22:01:15 +0100
commit6ac2d66c78d6c080aabfa46157113684c2f3a3b0 (patch)
treef9f3311931b517eeeca54701aa9dc772ee28698a /sd
parentdc3c59a1d9e9240acfbc1a613115f04f577d1ca4 (diff)
pdfium: Make Insert -> Image... use VectorGraphicData for PDF.
In principle, the current Svg/Emf/Wmf and PDF handling is trying to achieve the same thing: Keep the original stream untouched, provide a replacement graphics, and a kind of rendering. To hold the data, the Svg/Emf/Wmf and PDF were using different structures though. This commit consolidatates that, and makes the Insert -> Image... (for PDF) actually using the VectorGraphicData to hold the original stream. This breaks loading the PDF as a document via PDFium - I'll fix it in the next commit(s). Change-Id: Iac102f32b757390a03438c165e430283851cc10b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90561 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'sd')
-rw-r--r--sd/CppunitTest_sd_import_tests.mk1
-rw-r--r--sd/qa/unit/import-tests.cxx23
2 files changed, 12 insertions, 12 deletions
diff --git a/sd/CppunitTest_sd_import_tests.mk b/sd/CppunitTest_sd_import_tests.mk
index 63e75988c144..5f5c6ad56ccd 100644
--- a/sd/CppunitTest_sd_import_tests.mk
+++ b/sd/CppunitTest_sd_import_tests.mk
@@ -81,6 +81,7 @@ $(eval $(call gb_CppunitTest_use_components,sd_import_tests,\
filter/source/config/cache/filterconfig1 \
filter/source/odfflatxml/odfflatxml \
filter/source/svg/svgfilter \
+ filter/source/pdf/pdffilter \
filter/source/xmlfilteradaptor/xmlfa \
filter/source/xmlfilterdetect/xmlfd \
filter/source/storagefilterdetect/storagefd \
diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx
index 85b7f5fa0cdf..addf393630a1 100644
--- a/sd/qa/unit/import-tests.cxx
+++ b/sd/qa/unit/import-tests.cxx
@@ -1301,8 +1301,7 @@ void SdImportTest::testPDFImportShared()
// PDF with each image to allow for advanced editing.
// Here we iterate over all Graphic instances embedded in the pages
// and verify that they all point to the same object in memory.
- std::vector<std::shared_ptr<std::vector<sal_Int8>>> aPdfSeqSharedPtrs;
- std::vector<std::shared_ptr<GfxLink>> aGfxLinkSharedPtrs;
+ std::vector<Graphic> aGraphics;
for (int nPageIndex = 0; nPageIndex < pDoc->GetPageCount(); ++nPageIndex)
{
@@ -1322,23 +1321,23 @@ void SdImportTest::testPDFImportShared()
const GraphicObject& rGraphicObject = pSdrGrafObj->GetGraphicObject().GetGraphic();
const Graphic& rGraphic = rGraphicObject.GetGraphic();
- aPdfSeqSharedPtrs.push_back(rGraphic.getPdfData());
- aGfxLinkSharedPtrs.push_back(rGraphic.GetSharedGfxLink());
+ aGraphics.push_back(rGraphic);
}
}
- CPPUNIT_ASSERT_MESSAGE("Expected more than one page.", aPdfSeqSharedPtrs.size() > 1);
- CPPUNIT_ASSERT_EQUAL_MESSAGE("Expected as many PDF streams as GfxLinks.",
- aPdfSeqSharedPtrs.size(), aGfxLinkSharedPtrs.size());
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Expected more than one page.", size_t(3), aGraphics.size());
- const std::shared_ptr<std::vector<sal_Int8>> pPdfSeq = aPdfSeqSharedPtrs[0];
- const std::shared_ptr<GfxLink> pGfxLink = aGfxLinkSharedPtrs[0];
- for (size_t i = 0; i < aPdfSeqSharedPtrs.size(); ++i)
+ Graphic aFirstGraphic = aGraphics[0];
+
+ for (size_t i = 1; i < aGraphics.size(); ++i)
{
CPPUNIT_ASSERT_EQUAL_MESSAGE("Expected all PDF streams to be identical.",
- aPdfSeqSharedPtrs[i].get(), pPdfSeq.get());
+ aFirstGraphic.getVectorGraphicData()->getVectorGraphicDataArray().getConstArray(),
+ aGraphics[i].getVectorGraphicData()->getVectorGraphicDataArray().getConstArray());
+
CPPUNIT_ASSERT_EQUAL_MESSAGE("Expected all GfxLinks to be identical.",
- aGfxLinkSharedPtrs[i].get(), pGfxLink.get());
+ aFirstGraphic.GetSharedGfxLink().get(),
+ aGraphics[i].GetSharedGfxLink().get());
}
xDocShRef->DoClose();