diff options
-rw-r--r-- | oox/source/drawingml/transform2dcontext.cxx | 3 | ||||
-rw-r--r-- | sd/qa/unit/data/pptx/tdf93830.pptx | bin | 0 -> 64463 bytes | |||
-rw-r--r-- | sd/qa/unit/import-tests.cxx | 25 |
3 files changed, 27 insertions, 1 deletions
diff --git a/oox/source/drawingml/transform2dcontext.cxx b/oox/source/drawingml/transform2dcontext.cxx index 10bd727ac902..3f4b35f33639 100644 --- a/oox/source/drawingml/transform2dcontext.cxx +++ b/oox/source/drawingml/transform2dcontext.cxx @@ -66,7 +66,8 @@ ContextHandlerRef Transform2DContext::onCreateContext( sal_Int32 aElementToken, { const OUString sXValue = rAttribs.getString( XML_x ).get(); const OUString sYValue = rAttribs.getString( XML_y ).get(); - if( !sXValue.isEmpty() && nType == XML_rect ) + + if( !sXValue.isEmpty() ) mrShape.getTextBody()->getTextProperties().moTextOffLeft = GetCoordinate( sXValue.toInt32() - mrShape.getPosition().X ); if( !sYValue.isEmpty() ) mrShape.getTextBody()->getTextProperties().moTextOffUpper = GetCoordinate( sYValue.toInt32() - mrShape.getPosition().Y ); diff --git a/sd/qa/unit/data/pptx/tdf93830.pptx b/sd/qa/unit/data/pptx/tdf93830.pptx Binary files differnew file mode 100644 index 000000000000..8415daff3521 --- /dev/null +++ b/sd/qa/unit/data/pptx/tdf93830.pptx diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx index a1b9703f4ac7..654b22840144 100644 --- a/sd/qa/unit/import-tests.cxx +++ b/sd/qa/unit/import-tests.cxx @@ -104,6 +104,7 @@ public: void testBulletSuffix(); void testBnc910045(); void testRowHeight(); + void testTdf93830(); CPPUNIT_TEST_SUITE(SdImportTest); @@ -143,6 +144,7 @@ public: CPPUNIT_TEST(testBulletSuffix); CPPUNIT_TEST(testBnc910045); CPPUNIT_TEST(testRowHeight); + CPPUNIT_TEST(testTdf93830); CPPUNIT_TEST_SUITE_END(); }; @@ -1200,6 +1202,29 @@ void SdImportTest::testRowHeight() CPPUNIT_ASSERT_EQUAL( sal_Int32(508), nHeight); } +void SdImportTest::testTdf93830() +{ + // Text shape offset was ignored + sd::DrawDocShellRef xDocShRef = loadURL(getURLFromSrc("/sd/qa/unit/data/pptx/tdf93830.pptx"), PPTX); + + uno::Reference< drawing::XDrawPagesSupplier > xDoc( + xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW ); + + uno::Reference< drawing::XDrawPage > xPage( + xDoc->getDrawPages()->getByIndex(0), uno::UNO_QUERY_THROW ); + + // Get the first text box from group shape + uno::Reference< container::XIndexAccess > xShape( xPage->getByIndex(0), uno::UNO_QUERY ); + uno::Reference< beans::XPropertySet > xPropSet( xShape->getByIndex(2), uno::UNO_QUERY ); + CPPUNIT_ASSERT_MESSAGE( "no textbox shape", xPropSet.is() ); + + sal_Int32 nTextLeftDistance = 0; + xPropSet->getPropertyValue( "TextLeftDistance" ) >>= nTextLeftDistance; + CPPUNIT_ASSERT_EQUAL(sal_Int32(4152), nTextLeftDistance); + + xDocShRef->DoClose(); +} + CPPUNIT_TEST_SUITE_REGISTRATION(SdImportTest); CPPUNIT_PLUGIN_IMPLEMENT(); |