summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--oox/source/export/drawingml.cxx8
-rw-r--r--sd/qa/unit/data/odp/tdf149311.odpbin0 -> 15388 bytes
-rw-r--r--sd/qa/unit/export-tests-ooxml1.cxx16
3 files changed, 23 insertions, 1 deletions
diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx
index 8d16911311ec..fe6635dc23f2 100644
--- a/oox/source/export/drawingml.cxx
+++ b/oox/source/export/drawingml.cxx
@@ -1984,7 +1984,7 @@ void DrawingML::WriteShapeTransformation( const Reference< XShape >& rXShape, sa
bFlipHWrite, bFlipVWrite, ExportRotateClockwisify(nRotation + nCameraRotation), IsGroupShape( rXShape ));
}
-static OUString lcl_GetTarget(const css::uno::Reference<css::frame::XModel>& xModel, std::u16string_view rURL)
+static OUString lcl_GetTarget(const css::uno::Reference<css::frame::XModel>& xModel, OUString& rURL)
{
Reference<drawing::XDrawPagesSupplier> xDPS(xModel, uno::UNO_QUERY_THROW);
Reference<drawing::XDrawPages> xDrawPages(xDPS->getDrawPages(), uno::UNO_SET_THROW);
@@ -2005,6 +2005,12 @@ static OUString lcl_GetTarget(const css::uno::Reference<css::frame::XModel>& xMo
break;
}
}
+ if (sTarget.isEmpty())
+ {
+ sal_Int32 nSplit = rURL.lastIndexOf(' ');
+ if (nSplit > -1)
+ sTarget = OUString::Concat("slide") + rURL.subView(nSplit + 1) + ".xml";
+ }
return sTarget;
}
diff --git a/sd/qa/unit/data/odp/tdf149311.odp b/sd/qa/unit/data/odp/tdf149311.odp
new file mode 100644
index 000000000000..2500ed5e7a51
--- /dev/null
+++ b/sd/qa/unit/data/odp/tdf149311.odp
Binary files differ
diff --git a/sd/qa/unit/export-tests-ooxml1.cxx b/sd/qa/unit/export-tests-ooxml1.cxx
index 01d0e9b3336f..c5a2c2ebc7e8 100644
--- a/sd/qa/unit/export-tests-ooxml1.cxx
+++ b/sd/qa/unit/export-tests-ooxml1.cxx
@@ -48,6 +48,7 @@ using namespace css;
class SdOOXMLExportTest1 : public SdModelTestBaseXML
{
public:
+ void testTdf149311();
void testTdf149128();
void testTdf66228();
void testTdf147919();
@@ -120,6 +121,7 @@ public:
CPPUNIT_TEST_SUITE(SdOOXMLExportTest1);
+ CPPUNIT_TEST(testTdf149311);
CPPUNIT_TEST(testTdf149128);
CPPUNIT_TEST(testTdf66228);
CPPUNIT_TEST(testTdf147919);
@@ -219,6 +221,20 @@ void checkFontAttributes( const SdrTextObj* pObj, ItemValue nVal, sal_uInt32 nId
}
+void SdOOXMLExportTest1::testTdf149311()
+{
+ sd::DrawDocShellRef xDocShRef
+ = loadURL(m_directories.getURLFromSrc(u"/sd/qa/unit/data/odp/tdf149311.odp"), ODP);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xDocShRef->DoClose();
+
+ xmlDocUniquePtr pRelsDoc = parseExport(tempFile, "ppt/slides/_rels/slide1.xml.rels");
+
+ assertXPath(pRelsDoc, "/rels:Relationships/rels:Relationship[@Id='rId1']", "Target",
+ "slide2.xml");
+}
+
void SdOOXMLExportTest1::testTdf149128()
{
sd::DrawDocShellRef xDocShRef