sd/qa/unit/data/odp/tdf99224.odp |binary sd/qa/unit/export-tests.cxx | 12 ++++++++++++ sd/qa/unit/sdmodeltestbase.hxx | 16 ++++++++++++++++ sd/source/filter/eppt/pptx-epptooxml.cxx | 4 +++- 4 files changed, 31 insertions(+), 1 deletion(-)
New commits: commit 1e2f33e9d66b4017a63b410da0029ef5caab7661 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Tue Apr 12 10:30:11 2016 +0200 tdf#99224 PPTX export: implement support for images with text In case an image had text, then ShapeExport::WriteGraphicObjectShapePart() wanted to write "only the text", but PowerPointShapeExport::WriteTextShape() had no idea how to write an image, so at the end nothing was exported. (cherry picked from commit fc70e4c4e192372f77511bc6ce2bc77b9c9539be) Conflicts: sd/qa/unit/export-tests.cxx Change-Id: I6c1ad0b41d4c5dc260b952322fb8a59e7f175603 Reviewed-on: https://gerrit.libreoffice.org/24017 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Andras Timar <andras.ti...@collabora.com> (cherry picked from commit e8e761ed003f5e509fea8eebd47111b1ed6aa672) Reviewed-on: https://gerrit.libreoffice.org/24076 Reviewed-by: Adolfo Jayme Barrientos <fit...@ubuntu.com> Reviewed-by: David Tardon <dtar...@redhat.com> Tested-by: David Tardon <dtar...@redhat.com> diff --git a/sd/qa/unit/data/odp/tdf99224.odp b/sd/qa/unit/data/odp/tdf99224.odp new file mode 100644 index 0000000..e52a000 Binary files /dev/null and b/sd/qa/unit/data/odp/tdf99224.odp differ diff --git a/sd/qa/unit/export-tests.cxx b/sd/qa/unit/export-tests.cxx index 4d1de95..2387447 100644 --- a/sd/qa/unit/export-tests.cxx +++ b/sd/qa/unit/export-tests.cxx @@ -112,6 +112,7 @@ public: void testBnc822341(); #endif void testTdf80224(); + void testTdf99224(); CPPUNIT_TEST_SUITE(SdExportTest); CPPUNIT_TEST(testFdo90607); @@ -148,6 +149,7 @@ public: CPPUNIT_TEST(testBnc822341); #endif CPPUNIT_TEST(testTdf80224); + CPPUNIT_TEST(testTdf99224); CPPUNIT_TEST_SUITE_END(); }; @@ -1238,6 +1240,16 @@ void SdExportTest::testTdf80224() xDocShRef->DoClose(); } +void SdExportTest::testTdf99224() +{ + sd::DrawDocShellRef xShell = loadURL(getURLFromSrc("/sd/qa/unit/data/odp/tdf99224.odp"), ODP); + xShell = saveAndReload(xShell, PPTX); + uno::Reference<drawing::XDrawPage> xPage = getPage(0, xShell); + // This was 0: the image with text was lost on export. + CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1), xPage->getCount()); + xShell->DoClose(); +} + CPPUNIT_TEST_SUITE_REGISTRATION(SdExportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sd/qa/unit/sdmodeltestbase.hxx b/sd/qa/unit/sdmodeltestbase.hxx index a5b136c..717a5db 100644 --- a/sd/qa/unit/sdmodeltestbase.hxx +++ b/sd/qa/unit/sdmodeltestbase.hxx @@ -250,6 +250,22 @@ protected: } xDocShRef->DoClose(); } + + uno::Reference< drawing::XDrawPagesSupplier > getDoc( sd::DrawDocShellRef xDocShRef ) + { + uno::Reference< drawing::XDrawPagesSupplier > xDoc ( + xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW ); + CPPUNIT_ASSERT_MESSAGE( "no document", xDoc.is() ); + return xDoc; + } + + uno::Reference< drawing::XDrawPage > getPage( int nPage, sd::DrawDocShellRef xDocShRef ) + { + uno::Reference< drawing::XDrawPagesSupplier > xDoc( getDoc( xDocShRef ) ); + uno::Reference< drawing::XDrawPage > xPage( xDoc->getDrawPages()->getByIndex( nPage ), uno::UNO_QUERY_THROW ); + CPPUNIT_ASSERT_MESSAGE( "no page", xPage.is() ); + return xPage; + } }; #endif diff --git a/sd/source/filter/eppt/pptx-epptooxml.cxx b/sd/source/filter/eppt/pptx-epptooxml.cxx index 0c045d3..20aeed8 100644 --- a/sd/source/filter/eppt/pptx-epptooxml.cxx +++ b/sd/source/filter/eppt/pptx-epptooxml.cxx @@ -232,7 +232,7 @@ ShapeExport& PowerPointShapeExport::WriteTextShape( Reference< XShape > xShape ) DBG(printf( "shape(text): %s\n", USS(sShapeType) )); - if ( sShapeType == "com.sun.star.drawing.TextShape" ) + if ( sShapeType == "com.sun.star.drawing.TextShape" || sShapeType == "com.sun.star.drawing.GraphicObjectShape" ) { ShapeExport::WriteTextShape( xShape ); } @@ -273,6 +273,8 @@ ShapeExport& PowerPointShapeExport::WriteTextShape( Reference< XShape > xShape ) if( !WritePlaceholder( xShape, Title, mbMaster ) ) ShapeExport::WriteTextShape( xShape ); } + else + SAL_WARN("sd.filter", "PowerPointShapeExport::WriteTextShape: shape of type '" << sShapeType << "' is ignored"); return *this; } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits