oox/source/export/drawingml.cxx | 6 ++ sd/qa/unit/data/pptx/tdf102261_testParaTabStopDefaultDistance.pptx |binary sd/qa/unit/export-tests-ooxml3.cxx | 22 ++++++++++ 3 files changed, 28 insertions(+)
New commits: commit f039fe0da31907a58a4c3b6717cf29caf2685101 Author: Sarper Akdemir <sarper.akde...@collabora.com> AuthorDate: Fri Mar 3 19:22:30 2023 +0300 Commit: Miklos Vajna <vmik...@collabora.com> CommitDate: Thu Mar 16 15:47:29 2023 +0000 tdf#102261: pptx export: implement defTabSz ParaTabStopDefaultDistance Adds export of ParaTabStopDefaultDistance property into defTabSz. Also adds a unit test that checks pptx roundtrip of the property. Change-Id: I5be9ea88b15e3e8cab25af79488983a71b96dae1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148539 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmik...@collabora.com> diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx index 8f16b1ebc95e..5335dca58486 100644 --- a/oox/source/export/drawingml.cxx +++ b/oox/source/export/drawingml.cxx @@ -3290,6 +3290,10 @@ bool DrawingML::WriteParagraphProperties(const Reference<XTextContent>& rParagra return false; } + sal_Int32 nParaDefaultTabSize = 0; + if (GetProperty(rXPropSet, "ParaTabStopDefaultDistance")) + mAny >>= nParaDefaultTabSize; + // for autofitted textboxes, scale the indents if (GetProperty(rXShapePropSet, "TextFitToSize") && mAny.get<TextFitToSizeType>() == TextFitToSizeType_AUTOFIT) { @@ -3314,6 +3318,7 @@ bool DrawingML::WriteParagraphProperties(const Reference<XTextContent>& rParagra XML_marL, sax_fastparser::UseIf(OString::number(oox::drawingml::convertHmmToEmu(nParaLeftMargin)), nParaLeftMargin > 0), XML_indent, sax_fastparser::UseIf(OString::number(!bForceZeroIndent ? oox::drawingml::convertHmmToEmu(nParaFirstLineIndent) : 0), (bForceZeroIndent || (nParaFirstLineIndent != 0))), XML_algn, GetAlignment( nAlignment ), + XML_defTabSz, sax_fastparser::UseIf(OString::number(oox::drawingml::convertHmmToEmu(nParaDefaultTabSize)), nParaDefaultTabSize > 0), XML_rtl, sax_fastparser::UseIf(ToPsz10(bRtl), bRtl)); else mpFS->startElementNS( XML_a, nElement, @@ -3321,6 +3326,7 @@ bool DrawingML::WriteParagraphProperties(const Reference<XTextContent>& rParagra XML_marL, sax_fastparser::UseIf(OString::number(oox::drawingml::convertHmmToEmu(nLeftMargin)), nLeftMargin > 0), XML_indent, sax_fastparser::UseIf(OString::number(!bForceZeroIndent ? oox::drawingml::convertHmmToEmu(nLineIndentation) : 0), (bForceZeroIndent || ( nLineIndentation != 0))), XML_algn, GetAlignment( nAlignment ), + XML_defTabSz, sax_fastparser::UseIf(OString::number(oox::drawingml::convertHmmToEmu(nParaDefaultTabSize)), nParaDefaultTabSize > 0), XML_rtl, sax_fastparser::UseIf(ToPsz10(bRtl), bRtl)); diff --git a/sd/qa/unit/data/pptx/tdf102261_testParaTabStopDefaultDistance.pptx b/sd/qa/unit/data/pptx/tdf102261_testParaTabStopDefaultDistance.pptx new file mode 100644 index 000000000000..88438d7b5494 Binary files /dev/null and b/sd/qa/unit/data/pptx/tdf102261_testParaTabStopDefaultDistance.pptx differ diff --git a/sd/qa/unit/export-tests-ooxml3.cxx b/sd/qa/unit/export-tests-ooxml3.cxx index 997dd15009fd..ccbfc6e35335 100644 --- a/sd/qa/unit/export-tests-ooxml3.cxx +++ b/sd/qa/unit/export-tests-ooxml3.cxx @@ -1965,6 +1965,28 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest3, testLinkedOLE) assertXPath(pXml, "//p:oleObj", 1); } +CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest3, testTdf102261_testParaTabStopDefaultDistance) +{ + createSdImpressDoc("pptx/tdf102261_testParaTabStopDefaultDistance.pptx"); + saveAndReload("Impress Office Open XML"); + + uno::Reference<beans::XPropertySet> xShape(getShapeFromPage(0, 0)); + { + uno::Reference<beans::XPropertySet> xPropSet(getParagraphFromShape(0, xShape), + uno::UNO_QUERY_THROW); + CPPUNIT_ASSERT_EQUAL( + sal_Int32{ 1270 }, + xPropSet->getPropertyValue("ParaTabStopDefaultDistance").get<sal_Int32>()); + } + { + uno::Reference<beans::XPropertySet> xPropSet(getParagraphFromShape(1, xShape), + uno::UNO_QUERY_THROW); + CPPUNIT_ASSERT_EQUAL( + sal_Int32{ 2540 }, + xPropSet->getPropertyValue("ParaTabStopDefaultDistance").get<sal_Int32>()); + } +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */