sw/qa/extras/ooxmlexport/data/tdf124637_sectionMargin.docx |binary
 sw/qa/extras/ooxmlexport/ooxmlexport13.cxx                 |   13 ++++++++-
 writerfilter/source/dmapper/PropertyMap.cxx                |   18 +------------
 3 files changed, 14 insertions(+), 17 deletions(-)

New commits:
commit d7e6c898f5ec8fbd142f9d3e1c46dfcf90edfc27
Author:     Justin Luth <justin.l...@collabora.com>
AuthorDate: Sat Apr 13 09:31:56 2019 +0300
Commit:     Justin Luth <justin_l...@sil.org>
CommitDate: Sat Apr 13 16:16:13 2019 +0200

    tdf#124637 writerfilter: partially revert import section margins
    
    ...from LO6.3 commit 8d4a7b17e60aa889d1a78da47630aae2d1c1513c
    
    Footnotes and Endnotes are also considered sections,
    and those sections are messing up tracking which page style
    is in effect. Simply reverting since any fix will still be
    based on page style assumptions and require losts of testing.
    The original commit didn't fix any reported bug anyway.
    
    Change-Id: I3597d511d9755f48e7ac2ae9cfb2f8ff63c74d17
    Reviewed-on: https://gerrit.libreoffice.org/70702
    Tested-by: Jenkins
    Reviewed-by: Justin Luth <justin_l...@sil.org>

diff --git a/sw/qa/extras/ooxmlexport/data/tdf124637_sectionMargin.docx 
b/sw/qa/extras/ooxmlexport/data/tdf124637_sectionMargin.docx
new file mode 100644
index 000000000000..19aa819aca3d
Binary files /dev/null and 
b/sw/qa/extras/ooxmlexport/data/tdf124637_sectionMargin.docx differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx 
b/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx
index 6ca09581d1b5..fc747e30b3dc 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx
@@ -68,7 +68,18 @@ DECLARE_OOXMLEXPORT_TEST(testendingSectionProps, 
"endingSectionProps.docx")
 
     CPPUNIT_ASSERT_EQUAL_MESSAGE("# of paragraphs", 2, getParagraphs());
     CPPUNIT_ASSERT_EQUAL_MESSAGE("Section is RightToLeft", 
text::WritingMode2::RL_TB, getProperty<sal_Int16>(xSect, "WritingMode"));
-    CPPUNIT_ASSERT_EQUAL_MESSAGE("Section Left Margin", sal_Int32(2540), 
getProperty<sal_Int32>(xSect, "SectionLeftMargin"));
+    //regression: tdf124637
+    //CPPUNIT_ASSERT_EQUAL_MESSAGE("Section Left Margin", sal_Int32(2540), 
getProperty<sal_Int32>(xSect, "SectionLeftMargin"));
+}
+
+DECLARE_OOXMLEXPORT_TEST(testTdf124637_sectionMargin, 
"tdf124637_sectionMargin.docx")
+{
+    uno::Reference<text::XTextSectionsSupplier> 
xTextSectionsSupplier(mxComponent, uno::UNO_QUERY);
+    uno::Reference<container::XIndexAccess> 
xSections(xTextSectionsSupplier->getTextSections(), uno::UNO_QUERY);
+    // sections 0 and 1 must be related to footnotes...
+    uno::Reference<beans::XPropertySet> xSect(xSections->getByIndex(2), 
uno::UNO_QUERY);
+
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Section Left Margin", sal_Int32(0), 
getProperty<sal_Int32>(xSect, "SectionLeftMargin"));
 }
 
 DECLARE_OOXMLEXPORT_TEST(tdf123912_protectedForm, 
"tdf123912_protectedForm.odt")
diff --git a/writerfilter/source/dmapper/PropertyMap.cxx 
b/writerfilter/source/dmapper/PropertyMap.cxx
index de14f1066a43..cf5f3b4d3381 100644
--- a/writerfilter/source/dmapper/PropertyMap.cxx
+++ b/writerfilter/source/dmapper/PropertyMap.cxx
@@ -682,27 +682,12 @@ void SectionPropertyMap::DontBalanceTextColumns()
     }
 }
 
-void SectionPropertyMap::ApplySectionProperties( const uno::Reference< 
beans::XPropertySet >& xSection, DomainMapper_Impl& rDM_Impl )
+void SectionPropertyMap::ApplySectionProperties( const uno::Reference< 
beans::XPropertySet >& xSection, DomainMapper_Impl& /*rDM_Impl*/ )
 {
     try
     {
         if ( xSection.is() )
         {
-            // Margins only valid if page style is already determined.
-            // Take some care not to create an automatic page style (with 
GetPageStyle) if it isn't already created.
-            if ( !m_aFollowPageStyle.is() && !m_sFollowPageStyleName.isEmpty() 
)
-                GetPageStyle( rDM_Impl.GetPageStyles(), 
rDM_Impl.GetTextFactory(), false );
-            if ( m_aFollowPageStyle.is()  )
-            {
-                sal_Int32 nPageMargin = 0;
-                m_aFollowPageStyle->getPropertyValue( getPropertyName( 
PROP_LEFT_MARGIN ) ) >>= nPageMargin;
-                xSection->setPropertyValue( "SectionLeftMargin",  
uno::makeAny(m_nLeftMargin - nPageMargin) );
-
-                nPageMargin = 0;
-                m_aFollowPageStyle->getPropertyValue( getPropertyName( 
PROP_RIGHT_MARGIN ) ) >>= nPageMargin;
-                xSection->setPropertyValue( "SectionRightMargin", 
uno::makeAny(m_nRightMargin - nPageMargin) );
-            }
-
             boost::optional< PropertyMap::Property > pProp = getProperty( 
PROP_WRITING_MODE );
             if ( pProp )
                 xSection->setPropertyValue( "WritingMode", pProp->second );
@@ -1236,6 +1221,7 @@ void SectionPropertyMap::InheritOrFinalizePageStyles( 
DomainMapper_Impl& rDM_Imp
     // otherwise apply this section's settings to the new style.
     // Ensure that FollowPage is inherited first - otherwise GetPageStyle may 
auto-create a follow when checking FirstPage.
     SectionPropertyMap* pLastContext = rDM_Impl.GetLastSectionContext();
+    //tdf124637 TODO: identify and skip special sections (like 
footnotes/endnotes)
     if ( pLastContext && m_sFollowPageStyleName.isEmpty() )
         m_sFollowPageStyleName = pLastContext->GetPageStyleName();
     else
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to