diff options
-rw-r--r-- | oox/source/ppt/pptshape.cxx | 7 | ||||
-rw-r--r-- | sd/qa/unit/data/pptx/tdf142648.pptx | bin | 0 -> 36994 bytes | |||
-rw-r--r-- | sd/qa/unit/export-tests-ooxml1.cxx | 23 |
3 files changed, 27 insertions, 3 deletions
diff --git a/oox/source/ppt/pptshape.cxx b/oox/source/ppt/pptshape.cxx index 8b25523e5c3d..4b735ea59c01 100644 --- a/oox/source/ppt/pptshape.cxx +++ b/oox/source/ppt/pptshape.cxx @@ -439,9 +439,10 @@ void PPTShape::addShape( Reference<drawing::XDrawPagesSupplier> xDPS(rFilterBase.getModel(), uno::UNO_QUERY_THROW); Reference<drawing::XDrawPages> xDrawPages(xDPS->getDrawPages(), uno::UNO_SET_THROW); sal_uInt32 nMaxPages = xDrawPages->getCount(); - bool bUseTitleAsSlideName = !aTitleText.isEmpty() && - // just a magic value, but we don't want to set slide names which are too long - aTitleText.getLength() < 64; + // just a magic value but we don't want to drop out slide names which are too long + if (aTitleText.getLength() > 63) + aTitleText = aTitleText.copy(0, 63); + bool bUseTitleAsSlideName = !aTitleText.isEmpty(); // check duplicated title name if (bUseTitleAsSlideName) { diff --git a/sd/qa/unit/data/pptx/tdf142648.pptx b/sd/qa/unit/data/pptx/tdf142648.pptx Binary files differnew file mode 100644 index 000000000000..fc470530fc94 --- /dev/null +++ b/sd/qa/unit/data/pptx/tdf142648.pptx diff --git a/sd/qa/unit/export-tests-ooxml1.cxx b/sd/qa/unit/export-tests-ooxml1.cxx index a450e6d890eb..15832942c2a8 100644 --- a/sd/qa/unit/export-tests-ooxml1.cxx +++ b/sd/qa/unit/export-tests-ooxml1.cxx @@ -61,6 +61,7 @@ using namespace css; class SdOOXMLExportTest1 : public SdModelTestBaseXML { public: + void testTdf142648(); void testTdf47365(); void testTdf125071(); void testTdf54037(); @@ -120,6 +121,7 @@ public: CPPUNIT_TEST_SUITE(SdOOXMLExportTest1); + CPPUNIT_TEST(testTdf142648); CPPUNIT_TEST(testTdf47365); CPPUNIT_TEST(testTdf125071); CPPUNIT_TEST(testTdf54037); @@ -206,6 +208,27 @@ void checkFontAttributes( const SdrTextObj* pObj, ItemValue nVal, sal_uInt32 nId } +void SdOOXMLExportTest1::testTdf142648() +{ + sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/tdf142648.pptx"), PPTX ); + utl::TempFile tempFile; + + uno::Reference<drawing::XDrawPagesSupplier> xDPS(xDocShRef->GetDoc()->getUnoModel(), uno::UNO_QUERY_THROW); + uno::Reference<drawing::XDrawPages> xDrawPages(xDPS->getDrawPages(), uno::UNO_SET_THROW); + uno::Reference<drawing::XDrawPage> xDrawPage; + xDrawPages->getByIndex(0) >>= xDrawPage; + uno::Reference<container::XNamed> xNamed(xDrawPage, uno::UNO_QUERY_THROW); + xNamed->setName("#Slide 1"); + + xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile); + xDocShRef->DoClose(); + + xmlDocUniquePtr pRelsDoc = parseExport(tempFile, "ppt/slides/_rels/slide2.xml.rels"); + + assertXPath(pRelsDoc, "/rels:Relationships/rels:Relationship[@Id='rId1']", "Target", + "slide1.xml"); +} + void SdOOXMLExportTest1::testTdf47365() { sd::DrawDocShellRef xDocShRef = loadURL( m_directories.getURLFromSrc(u"/sd/qa/unit/data/pptx/loopNoPause.pptx"), PPTX ); |