summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sw/qa/extras/ooxmlexport/data/tdf126723.docxbin0 -> 18689 bytes
-rw-r--r--sw/qa/extras/ooxmlexport/ooxmlexport13.cxx5
-rw-r--r--writerfilter/source/dmapper/DomainMapper_Impl.cxx19
3 files changed, 15 insertions, 9 deletions
diff --git a/sw/qa/extras/ooxmlexport/data/tdf126723.docx b/sw/qa/extras/ooxmlexport/data/tdf126723.docx
new file mode 100644
index 000000000000..297ea322fa7d
--- /dev/null
+++ b/sw/qa/extras/ooxmlexport/data/tdf126723.docx
Binary files differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx
index d9f1978705cf..a3a7184b34e0 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx
@@ -52,6 +52,11 @@ DECLARE_OOXMLEXPORT_TEST(testTdf121374_sectionHF2, "tdf121374_sectionHF2.doc")
CPPUNIT_ASSERT( xHeaderText->getString().startsWith("virkamatka-anomus") );
}
+DECLARE_OOXMLEXPORT_TEST(testTdf126723, "tdf126723.docx")
+{
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0), getProperty<sal_Int32>(getParagraph(2), "ParaLeftMargin"));
+}
+
DECLARE_OOXMLEXPORT_TEST(testTdf121867, "tdf121867.odt")
{
SwXTextDocument* pTextDoc = dynamic_cast<SwXTextDocument*>(mxComponent.get());
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
index d0cbcaa1c5d6..c6b7413f741e 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
@@ -1496,39 +1496,40 @@ void DomainMapper_Impl::finishParagraph( const PropertyMapPtr& pPropertyMap, con
CheckParaMarkerRedline( xParaEnd );
}
+ css::uno::Reference<css::beans::XPropertySet> xParaProps(xTextRange, uno::UNO_QUERY);
// tdf#118521 set paragraph top or bottom margin based on the paragraph style
// if we already set the other margin with direct formatting
- if ( pParaContext && m_xPreviousParagraph.is() )
+ if (xParaProps)
{
const bool bTopSet = pParaContext->isSet(PROP_PARA_TOP_MARGIN);
const bool bBottomSet = pParaContext->isSet(PROP_PARA_BOTTOM_MARGIN);
const bool bContextSet = pParaContext->isSet(PROP_PARA_CONTEXT_MARGIN);
if ( !(bTopSet == bBottomSet && bBottomSet == bContextSet) )
{
+
if ( !bTopSet )
{
uno::Any aMargin = GetPropertyFromStyleSheet(PROP_PARA_TOP_MARGIN);
if ( aMargin != uno::Any() )
- m_xPreviousParagraph->setPropertyValue("ParaTopMargin", aMargin);
+ xParaProps->setPropertyValue("ParaTopMargin", aMargin);
}
if ( !bBottomSet )
{
uno::Any aMargin = GetPropertyFromStyleSheet(PROP_PARA_BOTTOM_MARGIN);
if ( aMargin != uno::Any() )
- m_xPreviousParagraph->setPropertyValue("ParaBottomMargin", aMargin);
+ xParaProps->setPropertyValue("ParaBottomMargin", aMargin);
}
if ( !bContextSet )
{
uno::Any aMargin = GetPropertyFromStyleSheet(PROP_PARA_CONTEXT_MARGIN);
if ( aMargin != uno::Any() )
- m_xPreviousParagraph->setPropertyValue("ParaContextMargin", aMargin);
+ xParaProps->setPropertyValue("ParaContextMargin", aMargin);
}
}
}
// Left, Right, and Hanging settings are also grouped. Ensure that all or none are set.
- // m_xPreviousParagraph was set earlier, so really it still is the current paragraph...
- if ( pParaContext && m_xPreviousParagraph.is() )
+ if (xParaProps)
{
const bool bLeftSet = pParaContext->isSet(PROP_PARA_LEFT_MARGIN);
const bool bRightSet = pParaContext->isSet(PROP_PARA_RIGHT_MARGIN);
@@ -1539,19 +1540,19 @@ void DomainMapper_Impl::finishParagraph( const PropertyMapPtr& pPropertyMap, con
{
uno::Any aMargin = GetPropertyFromStyleSheet(PROP_PARA_LEFT_MARGIN);
if ( aMargin != uno::Any() )
- m_xPreviousParagraph->setPropertyValue("ParaLeftMargin", aMargin);
+ xParaProps->setPropertyValue("ParaLeftMargin", aMargin);
}
if ( !bRightSet )
{
uno::Any aMargin = GetPropertyFromStyleSheet(PROP_PARA_RIGHT_MARGIN);
if ( aMargin != uno::Any() )
- m_xPreviousParagraph->setPropertyValue("ParaRightMargin", aMargin);
+ xParaProps->setPropertyValue("ParaRightMargin", aMargin);
}
if ( !bFirstSet )
{
uno::Any aMargin = GetPropertyFromStyleSheet(PROP_PARA_FIRST_LINE_INDENT);
if ( aMargin != uno::Any() )
- m_xPreviousParagraph->setPropertyValue("ParaFirstLineIndent", aMargin);
+ xParaProps->setPropertyValue("ParaFirstLineIndent", aMargin);
}
}
}