summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBalazs Varga <balazs.varga991@gmail.com>2018-09-05 15:07:48 +0200
committerAndras Timar <andras.timar@collabora.com>2018-09-12 09:43:29 +0200
commit957ae94721fe1ba08215dced0b754d0c6b463e74 (patch)
tree82ca7b8d4a7687fbd5fa744d8fa18708029bbdfa
parent576acb6f764308d5bcd07da5be9851b46b42d48b (diff)
tdf#119617 Fix export of Autofit property of shapes to PPTX
With this patch the "Resize shape to fit text" property (TextAutoGrowHeight-->spAutofit/noAutofit) will be exported correctly to PPTX format. Change-Id: I5fa975c6390a17bad30c360b3b17aa944bbe72af Reviewed-on: https://gerrit.libreoffice.org/60043 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org> (cherry picked from commit 86b14cc8bd910651cef422a0f7408adc0fc51a17)
-rw-r--r--oox/source/export/drawingml.cxx6
-rwxr-xr-xsd/qa/unit/data/pptx/testShapeAutofit.pptxbin0 -> 35044 bytes
-rw-r--r--sd/qa/unit/export-tests-ooxml2.cxx16
3 files changed, 22 insertions, 0 deletions
diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx
index 3930fb224e28..9663d4db1905 100644
--- a/oox/source/export/drawingml.cxx
+++ b/oox/source/export/drawingml.cxx
@@ -2419,6 +2419,12 @@ void DrawingML::WriteText( const Reference< XInterface >& rXIface, const OUStrin
mpFS->singleElementNS(XML_a, XML_normAutofit, XML_fontScale,
( nFontScale < MAX_SCALE_VAL && nFontScale > 0 ) ? I32S(nFontScale) : nullptr, FSEND);
}
+ else
+ {
+ bool bTextAutoGrowHeight = false;
+ GET(bTextAutoGrowHeight, TextAutoGrowHeight);
+ mpFS->singleElementNS(XML_a, (bTextAutoGrowHeight ? XML_spAutoFit : XML_noAutofit), FSEND);
+ }
}
mpFS->endElementNS((nXmlNamespace ? nXmlNamespace : XML_a), XML_bodyPr);
}
diff --git a/sd/qa/unit/data/pptx/testShapeAutofit.pptx b/sd/qa/unit/data/pptx/testShapeAutofit.pptx
new file mode 100755
index 000000000000..fd402c01c895
--- /dev/null
+++ b/sd/qa/unit/data/pptx/testShapeAutofit.pptx
Binary files differ
diff --git a/sd/qa/unit/export-tests-ooxml2.cxx b/sd/qa/unit/export-tests-ooxml2.cxx
index 4d8de84766f0..cdf638d841bd 100644
--- a/sd/qa/unit/export-tests-ooxml2.cxx
+++ b/sd/qa/unit/export-tests-ooxml2.cxx
@@ -130,6 +130,7 @@ public:
void testTdf107608();
void testTdf111786();
void testFontScale();
+ void testShapeAutofitPPTX();
void testTdf115394();
void testTdf115394Zero();
void testTdf111789();
@@ -195,6 +196,7 @@ public:
CPPUNIT_TEST(testTdf107608);
CPPUNIT_TEST(testTdf111786);
CPPUNIT_TEST(testFontScale);
+ CPPUNIT_TEST(testShapeAutofitPPTX);
CPPUNIT_TEST(testTdf115394);
CPPUNIT_TEST(testTdf115394Zero);
CPPUNIT_TEST(testTdf111789);
@@ -1431,6 +1433,20 @@ void SdOOXMLExportTest2::testFontScale()
xDocShRef->DoClose();
}
+void SdOOXMLExportTest2::testShapeAutofitPPTX()
+{
+ sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/testShapeAutofit.pptx"), PPTX);
+ utl::TempFile tempFile;
+ xDocShRef = saveAndReload(xDocShRef.get(), PPTX, &tempFile);
+ xmlDocPtr pXmlDocContent = parseExport(tempFile, "ppt/slides/slide1.xml");
+ CPPUNIT_ASSERT(pXmlDocContent);
+
+ // TextAutoGrowHeight --> "Resize shape to fit text" --> true
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[1]/p:txBody/a:bodyPr/a:spAutoFit", 1);
+ // TextAutoGrowHeight --> "Resize shape to fit text" --> false
+ assertXPath(pXmlDocContent, "/p:sld/p:cSld/p:spTree/p:sp[2]/p:txBody/a:bodyPr/a:noAutofit", 1);
+}
+
void SdOOXMLExportTest2::testTdf115394()
{
sd::DrawDocShellRef xDocShRef = loadURL(m_directories.getURLFromSrc("/sd/qa/unit/data/pptx/tdf115394.pptx"), PPTX);