Kaydet (Commit) 3dfeac51 authored tarafından Miklos Vajna's avatar Miklos Vajna Kaydeden (comit) Andras Timar

tdf#94456 RTF import: fix list vs paragraph style interaction wrt para indents

In case we set the paragraph left/right/first margin just to mimic the
list vs paragraph style interaction as Word wants it, never overwrite
properties, as they are always meant to be just callbacks in case there
is no real hard formatting.

Change-Id: Ibdb2834c693d43cf4114453e42628e8f64c0a856
(cherry picked from commit b669d85d)
Reviewed-on: https://gerrit.libreoffice.org/19250Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
(cherry picked from commit 8add771c)
üst 6fad7be9
{\rtf1\ansi\deff3\adeflang1025
{\stylesheet
{\s0\snext0\nowidctlpar\hyphpar0\aspalpha\ltrpar\cf0\kerning1\dbch\af8\langfe2052\dbch\af6\afs24\alang1081\loch\f3\fs24\lang2055 Normal;}
{\s1\sbasedon15\snext16\ilvl0\outlinelevel0\sb240\sa120\keepn\b\dbch\af5\dbch\af6\afs36\ab\loch\f4\fs36 Heading 1;}
{\s15\sbasedon0\snext16\sb240\sa120\keepn\dbch\af5\dbch\af6\afs28\loch\f4\fs28 Heading;}
}
{\*\listtable
{\list\listtemplateid1
{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2
{\leveltext \'00;}
{\levelnumbers;}
\fi-432\li432}
\listid1}
}
{\listoverridetable
{\listoverride\listid1\listoverridecount0\ls1}
}
\pard\plain \s1\ilvl0\outlinelevel0\sb240\sa120\keepn\b\dbch\af5\dbch\af6\afs36\ab\loch\f4\fs36
{\listtext\pard\plain \tab}
\ls1 \li432\ri0\lin432\rin0\fi-432\sb240\sa120
{\rtlch \ltrch\loch
Heading}
\par}
...@@ -2328,6 +2328,16 @@ DECLARE_RTFIMPORT_TEST(testTdf92481, "tdf92481.rtf") ...@@ -2328,6 +2328,16 @@ DECLARE_RTFIMPORT_TEST(testTdf92481, "tdf92481.rtf")
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int8>(2), getProperty<sal_Int8>(getParagraph(1), "ParaWidows")); CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int8>(2), getProperty<sal_Int8>(getParagraph(1), "ParaWidows"));
} }
DECLARE_RTFIMPORT_TEST(testTdf94456, "tdf94456.rtf")
{
// Paragraph left margin and first line indent wasn't imported correctly.
// This was 1270.
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(762), getProperty<sal_Int32>(getParagraph(1), "ParaLeftMargin"));
// This was -635.
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(-762), getProperty<sal_Int32>(getParagraph(1), "ParaFirstLineIndent"));
}
CPPUNIT_PLUGIN_IMPLEMENT(); CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
...@@ -451,7 +451,7 @@ void DomainMapper::lcl_attribute(Id nName, Value & val) ...@@ -451,7 +451,7 @@ void DomainMapper::lcl_attribute(Id nName, Value & val)
sal_Int32 nFirstLineIndent = m_pImpl->getCurrentNumberingProperty("FirstLineIndent"); sal_Int32 nFirstLineIndent = m_pImpl->getCurrentNumberingProperty("FirstLineIndent");
if (nFirstLineIndent != 0) if (nFirstLineIndent != 0)
m_pImpl->GetTopContext()->Insert(PROP_PARA_FIRST_LINE_INDENT, uno::makeAny(nFirstLineIndent)); m_pImpl->GetTopContext()->Insert(PROP_PARA_FIRST_LINE_INDENT, uno::makeAny(nFirstLineIndent), /*bOverwrite=*/false);
m_pImpl->GetTopContext()->Insert( m_pImpl->GetTopContext()->Insert(
PROP_PARA_LEFT_MARGIN, uno::makeAny( ConversionHelper::convertTwipToMM100(nIntValue ) )); PROP_PARA_LEFT_MARGIN, uno::makeAny( ConversionHelper::convertTwipToMM100(nIntValue ) ));
...@@ -467,9 +467,9 @@ void DomainMapper::lcl_attribute(Id nName, Value & val) ...@@ -467,9 +467,9 @@ void DomainMapper::lcl_attribute(Id nName, Value & val)
sal_Int32 nParaLeftMargin = m_pImpl->getCurrentNumberingProperty("IndentAt"); sal_Int32 nParaLeftMargin = m_pImpl->getCurrentNumberingProperty("IndentAt");
if (nFirstLineIndent != 0) if (nFirstLineIndent != 0)
m_pImpl->GetTopContext()->Insert(PROP_PARA_FIRST_LINE_INDENT, uno::makeAny(nFirstLineIndent)); m_pImpl->GetTopContext()->Insert(PROP_PARA_FIRST_LINE_INDENT, uno::makeAny(nFirstLineIndent), /*bOverwrite=*/false);
if (nParaLeftMargin != 0) if (nParaLeftMargin != 0)
m_pImpl->GetTopContext()->Insert(PROP_PARA_LEFT_MARGIN, uno::makeAny(nParaLeftMargin)); m_pImpl->GetTopContext()->Insert(PROP_PARA_LEFT_MARGIN, uno::makeAny(nParaLeftMargin), /*bOverwrite=*/false);
m_pImpl->GetTopContext()->Insert( m_pImpl->GetTopContext()->Insert(
PROP_PARA_RIGHT_MARGIN, uno::makeAny( ConversionHelper::convertTwipToMM100(nIntValue ) )); PROP_PARA_RIGHT_MARGIN, uno::makeAny( ConversionHelper::convertTwipToMM100(nIntValue ) ));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment