sw/qa/extras/ooxmlimport/data/tdf92454.docx |binary sw/qa/extras/ooxmlimport/ooxmlimport.cxx | 10 ++++++++++ writerfilter/source/dmapper/DomainMapper.cxx | 7 +++++++ 3 files changed, 17 insertions(+)
New commits: commit d14c7b034d75730a85b5f6f843e39ff79840c272 Author: Miklos Vajna <[email protected]> Date: Tue Sep 22 08:47:03 2015 +0200 tdf#92454 DOCX import: allow overriding para prop from num style in para style Word has a feature like this: a paragraph style can refer to a numbering style, and both can specify paragraph margins. If that's the case, then the ones from the paragraph style has priority. In Writer, the numbering style has priority, so the only chance for correct import result is to set the margin directly on the paragraph in this case. (cherry picked from commit f4badd9a485f32f787d78431ed673e2932973887) Conflicts: sw/qa/extras/ooxmlimport/ooxmlimport.cxx Conflicts: sw/qa/extras/ooxmlimport/ooxmlimport.cxx Change-Id: Iff3b03bcc56e0db3a48452c293acf41c91b8f159 Reviewed-on: https://gerrit.libreoffice.org/18794 Reviewed-by: Andras Timar <[email protected]> Tested-by: Andras Timar <[email protected]> diff --git a/sw/qa/extras/ooxmlimport/data/tdf92454.docx b/sw/qa/extras/ooxmlimport/data/tdf92454.docx new file mode 100644 index 0000000..7042668 Binary files /dev/null and b/sw/qa/extras/ooxmlimport/data/tdf92454.docx differ diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx index 5066625..c36cc17 100644 --- a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx +++ b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx @@ -2773,6 +2773,16 @@ DECLARE_OOXMLIMPORT_TEST(testTdf93919, "tdf93919.docx") CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1270), getProperty<sal_Int32>(getParagraph(1), "ParaLeftMargin")); } +DECLARE_OOXMLIMPORT_TEST(testTdf92454, "tdf92454.docx") +{ + // The first paragraph had a large indentation / left margin as inheritance + // in Word and Writer works differently, and no direct value was set to be + // explicit. + uno::Reference<beans::XPropertyState> xParagraph(getParagraph(1), uno::UNO_QUERY); + // This was beans::PropertyState_DEFAULT_VALUE. + CPPUNIT_ASSERT_EQUAL(beans::PropertyState_DIRECT_VALUE, xParagraph->getPropertyState("ParaFirstLineIndent")); +} + #endif CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx index f7ef226..3868d74 100644 --- a/writerfilter/source/dmapper/DomainMapper.cxx +++ b/writerfilter/source/dmapper/DomainMapper.cxx @@ -2039,6 +2039,13 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, PropertyMapPtr rContext ) rContext->Insert(PROP_PARA_RIGHT_MARGIN, uno::makeAny(nParaRightMargin)); } + + // Indent properties from the paragraph style have priority + // over the ones from the numbering styles in Word, not in + // Writer. + boost::optional<PropertyMap::Property> oProperty; + if (pStyleSheetProperties && (oProperty = pStyleSheetProperties->getProperty(PROP_PARA_FIRST_LINE_INDENT))) + rContext->Insert(PROP_PARA_FIRST_LINE_INDENT, oProperty->second); } if( pStyleSheetProperties && pStyleSheetProperties->GetListLevel() >= 0 ) _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
