oox/source/export/drawingml.cxx | 15 +++++++++++---- sd/qa/unit/data/pptx/tdf151134.odp |binary sd/qa/unit/export-tests-ooxml1.cxx | 9 +++++++++ 3 files changed, 20 insertions(+), 4 deletions(-)
New commits: commit 1d6547c588fefad68d5f69fd09323348eb24788a Author: Samuel Mehrbrodt <samuel.mehrbr...@allotropia.de> AuthorDate: Fri Aug 18 13:42:23 2023 +0200 Commit: Xisco Fauli <xiscofa...@libreoffice.org> CommitDate: Mon Aug 21 10:48:06 2023 +0200 tdf#151134 Always write inset properties when exporting placeholder shapes The default value works for text boxes, but not for these special presentation placeholder objects - here the values need to be written explicitly. Change-Id: Id606bd5e6b63dee2fd3b385435ce13ecec63b5f1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155838 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbr...@allotropia.de> (cherry picked from commit 1524a1915d79c4fc598311114eaea87cde9be9aa) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155780 Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx index d4996a6eb9cf..8360a20908b7 100644 --- a/oox/source/export/drawingml.cxx +++ b/oox/source/export/drawingml.cxx @@ -4012,6 +4012,9 @@ void DrawingML::WriteText(const Reference<XInterface>& rXIface, bool bBodyPr, bo sVertOverflow = "clip"; } + // tdf#151134 When writing placeholder shapes, inset must be explicitly specified + bool bRequireInset = GetProperty(rXPropSet, "IsPresentationObject") && rXPropSet->getPropertyValue("IsPresentationObject").get<bool>(); + mpFS->startElementNS( (nXmlNamespace ? nXmlNamespace : XML_a), XML_bodyPr, XML_numCol, sax_fastparser::UseIf(OString::number(nCols), nCols > 0), XML_spcCol, sax_fastparser::UseIf(OString::number(oox::drawingml::convertHmmToEmu(nColSpacing)), nCols > 0 && nColSpacing >= 0), @@ -4019,10 +4022,14 @@ void DrawingML::WriteText(const Reference<XInterface>& rXIface, bool bBodyPr, bo XML_horzOverflow, sHorzOverflow, XML_vertOverflow, sVertOverflow, XML_fromWordArt, sax_fastparser::UseIf("1", bFromWordArt), - XML_lIns, sax_fastparser::UseIf(OString::number(oox::drawingml::convertHmmToEmu(nLeft)), nLeft != constDefaultLeftRightInset), - XML_rIns, sax_fastparser::UseIf(OString::number(oox::drawingml::convertHmmToEmu(nRight)), nRight != constDefaultLeftRightInset), - XML_tIns, sax_fastparser::UseIf(OString::number(oox::drawingml::convertHmmToEmu(nTop)), nTop != constDefaultTopBottomInset), - XML_bIns, sax_fastparser::UseIf(OString::number(oox::drawingml::convertHmmToEmu(nBottom)), nBottom != constDefaultTopBottomInset), + XML_lIns, sax_fastparser::UseIf(OString::number(oox::drawingml::convertHmmToEmu(nLeft)), + bRequireInset || nLeft != constDefaultLeftRightInset), + XML_rIns, sax_fastparser::UseIf(OString::number(oox::drawingml::convertHmmToEmu(nRight)), + bRequireInset || nRight != constDefaultLeftRightInset), + XML_tIns, sax_fastparser::UseIf(OString::number(oox::drawingml::convertHmmToEmu(nTop)), + bRequireInset || nTop != constDefaultTopBottomInset), + XML_bIns, sax_fastparser::UseIf(OString::number(oox::drawingml::convertHmmToEmu(nBottom)), + bRequireInset || nBottom != constDefaultTopBottomInset), XML_anchor, sAnchor, XML_anchorCtr, sax_fastparser::UseIf("1", bAnchorCtr), XML_vert, sWritingMode, diff --git a/sd/qa/unit/data/pptx/tdf151134.odp b/sd/qa/unit/data/pptx/tdf151134.odp new file mode 100644 index 000000000000..56ea86a3144c Binary files /dev/null and b/sd/qa/unit/data/pptx/tdf151134.odp differ diff --git a/sd/qa/unit/export-tests-ooxml1.cxx b/sd/qa/unit/export-tests-ooxml1.cxx index 9140eddf143c..afcbc1c542d6 100644 --- a/sd/qa/unit/export-tests-ooxml1.cxx +++ b/sd/qa/unit/export-tests-ooxml1.cxx @@ -1664,6 +1664,15 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest1, testTdf137675) "none"); } +CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest1, testTdf151134) +{ + createSdImpressDoc("pptx/tdf151134.odp"); + save("Impress Office Open XML"); + + xmlDocUniquePtr pXmlDoc = parseExport("ppt/slides/slide1.xml"); + assertXPath(pXmlDoc, "/p:sld/p:cSld/p:spTree/p:sp[1]/p:txBody/a:bodyPr", "lIns", "91440"); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */