diff options
author | Tibor Nagy <nagy.tibor2@nisz.hu> | 2021-07-07 10:10:21 +0200 |
---|---|---|
committer | László Németh <nemeth@numbertext.org> | 2021-07-20 18:50:17 +0200 |
commit | 7eb0e52527e729a21973e70d5be8e0a6779ec748 (patch) | |
tree | 86611576357a33c2b6546473b9660180b2a94687 /sd | |
parent | ed29da546754d0d11aa0cffd4dfe649cc95df722 (diff) |
tdf#142648 PPTX: import long slide names to avoid broken link export
PPTX import renames the slides using their short title text.
Apply this for the titles with 64 or more characters, too,
abbreviating the title text instead of using the default
slide name "page1", "page2" etc., because the default slide
names result broken hyperlinks during the PPTX export.
To test the fix manually, create a new hyperlink
using text selection and Insert Hyperlink (Ctrl-K),
clicking on Target in Document button on the Document pane,
and selecting a slide name.
Note: the problem still exists for the duplicated
or newly inserted slides, which get default slide names.
Change-Id: Iec1fab5a2ee862353766ed7e13b1501b3a325d0e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118548
Tested-by: László Németh <nemeth@numbertext.org>
Reviewed-by: László Németh <nemeth@numbertext.org>
Diffstat (limited to 'sd')
-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 |
2 files changed, 23 insertions, 0 deletions
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 ); |