diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2016-04-12 10:30:11 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2016-04-12 10:30:36 +0200 |
commit | fc70e4c4e192372f77511bc6ce2bc77b9c9539be (patch) | |
tree | 37d96fb6a536da6ad873eaed7f957b9598b42976 /sd | |
parent | 9760db660a3b9db267a9fc635e2cb1e4136cf5f3 (diff) |
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.
Change-Id: I6c1ad0b41d4c5dc260b952322fb8a59e7f175603
Diffstat (limited to 'sd')
-rw-r--r-- | sd/qa/unit/data/odp/tdf99224.odp | bin | 0 -> 11212 bytes | |||
-rw-r--r-- | sd/qa/unit/export-tests.cxx | 12 | ||||
-rw-r--r-- | sd/source/filter/eppt/pptx-epptooxml.cxx | 4 |
3 files changed, 15 insertions, 1 deletions
diff --git a/sd/qa/unit/data/odp/tdf99224.odp b/sd/qa/unit/data/odp/tdf99224.odp Binary files differnew file mode 100644 index 000000000000..e52a000dec54 --- /dev/null +++ b/sd/qa/unit/data/odp/tdf99224.odp diff --git a/sd/qa/unit/export-tests.cxx b/sd/qa/unit/export-tests.cxx index 59e49d2d21f1..624d2908abd7 100644 --- a/sd/qa/unit/export-tests.cxx +++ b/sd/qa/unit/export-tests.cxx @@ -154,6 +154,7 @@ public: void testMathObjectPPT2010(); void testTdf80224(); void testTdf92527(); + void testTdf99224(); CPPUNIT_TEST_SUITE(SdExportTest); CPPUNIT_TEST(testFdo90607); @@ -207,6 +208,7 @@ public: CPPUNIT_TEST(testSlideNameField); CPPUNIT_TEST(testExtFileField); CPPUNIT_TEST(testAuthorField); + CPPUNIT_TEST(testTdf99224); CPPUNIT_TEST_SUITE_END(); @@ -1690,6 +1692,16 @@ void SdExportTest::testAuthorField() xDocShRef->DoClose(); } +void SdExportTest::testTdf99224() +{ + sd::DrawDocShellRef xShell = loadURL(m_directories.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/source/filter/eppt/pptx-epptooxml.cxx b/sd/source/filter/eppt/pptx-epptooxml.cxx index e968e330774f..fdd1d4e9eb65 100644 --- a/sd/source/filter/eppt/pptx-epptooxml.cxx +++ b/sd/source/filter/eppt/pptx-epptooxml.cxx @@ -245,7 +245,7 @@ ShapeExport& PowerPointShapeExport::WriteTextShape( const Reference< XShape >& x 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 ); } @@ -286,6 +286,8 @@ ShapeExport& PowerPointShapeExport::WriteTextShape( const Reference< XShape >& x if( !WritePlaceholder( xShape, Title, mbMaster ) ) ShapeExport::WriteTextShape( xShape ); } + else + SAL_WARN("sd.filter", "PowerPointShapeExport::WriteTextShape: shape of type '" << sShapeType << "' is ignored"); return *this; } |