[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - sw/qa writerfilter/source

Miklos Vajna vmiklos at collabora.co.uk
Tue Oct 6 23:24:03 PDT 2015


 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 2ca166ebbe2adbd8f129403c7f8e5646c70ab67d
Author: Miklos Vajna <vmiklos at collabora.co.uk>
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
    
    Change-Id: Iff3b03bcc56e0db3a48452c293acf41c91b8f159
    Reviewed-on: https://gerrit.libreoffice.org/19100
    Reviewed-by: Andras Timar <andras.timar at collabora.com>
    Tested-by: Andras Timar <andras.timar at collabora.com>

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 fa8d504..a71c4f9 100644
--- a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
+++ b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
@@ -2647,6 +2647,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 a56fbed..835e973 100644
--- a/writerfilter/source/dmapper/DomainMapper.cxx
+++ b/writerfilter/source/dmapper/DomainMapper.cxx
@@ -2017,6 +2017,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 )


More information about the Libreoffice-commits mailing list