sw/qa/extras/ooxmlexport/data/tdf135216_evenOddFooter.odt |binary
 sw/qa/extras/ooxmlexport/ooxmlexport15.cxx                |   28 ++++++++++++++
 sw/source/filter/ww8/wrtw8sty.cxx                         |    2 -
 3 files changed, 29 insertions(+), 1 deletion(-)

New commits:
commit eb0201b9424ca9cfbbfa7af736cc314cf8f78fca
Author:     Justin Luth <justin.l...@collabora.com>
AuthorDate: Tue Jul 28 15:44:41 2020 +0300
Commit:     Miklos Vajna <vmik...@collabora.com>
CommitDate: Tue Aug 4 12:08:05 2020 +0200

    tdf#135216 sw MSexport: save LeftPageDesc as left page style
    
    GetMaster() is for right pages. I assume this was a
    copy/paste mistake which came in already at initial import.
    
    And since left/right are alternating, they always use
    the first version of the header/footer. Although the UI
    doesn't allow changing these, they still COULD be different,
    as is the case with the unit test.
    
    No existing unit tests even touch this code,
    so not a common situation at all.
    
    Change-Id: I9e3720ddf34a8f7e08ce196780fbe16e8c88940b
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99628
    Tested-by: Justin Luth <justin_l...@sil.org>
    Tested-by: Jenkins
    Reviewed-by: Miklos Vajna <vmik...@collabora.com>
    Reviewed-by: Justin Luth <justin_l...@sil.org>

diff --git a/sw/qa/extras/ooxmlexport/data/tdf135216_evenOddFooter.odt 
b/sw/qa/extras/ooxmlexport/data/tdf135216_evenOddFooter.odt
new file mode 100644
index 000000000000..ab0ac591e29a
Binary files /dev/null and 
b/sw/qa/extras/ooxmlexport/data/tdf135216_evenOddFooter.odt differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport15.cxx 
b/sw/qa/extras/ooxmlexport/ooxmlexport15.cxx
index 7d83cadf520e..77cfd3bf3507 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport15.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport15.cxx
@@ -81,6 +81,34 @@ DECLARE_OOXMLEXPORT_TEST(testTdf98000_changePageStyle, 
"tdf98000_changePageStyle
     CPPUNIT_ASSERT_MESSAGE("Different page1/page2 styles", sPageOneStyle != 
sPageTwoStyle);
 }
 
+DECLARE_OOXMLEXPORT_TEST(testTdf135216_evenOddFooter, 
"tdf135216_evenOddFooter.odt")
+{
+    uno::Reference<frame::XModel> xModel(mxComponent, uno::UNO_QUERY);
+    uno::Reference<text::XTextViewCursorSupplier> 
xTextViewCursorSupplier(xModel->getCurrentController(), uno::UNO_QUERY);
+    uno::Reference<text::XPageCursor> 
xCursor(xTextViewCursorSupplier->getViewCursor(), uno::UNO_QUERY);
+
+    // get LO page style for the first page (even page #2)
+    OUString pageStyleName = getProperty<OUString>(xCursor, "PageStyleName");
+    uno::Reference<container::XNameAccess> xPageStyles = 
getStyles("PageStyles");
+    uno::Reference<style::XStyle> 
xPageStyle(xPageStyles->getByName(pageStyleName), uno::UNO_QUERY);
+
+    xCursor->jumpToFirstPage();  // Even/Left page #2
+    uno::Reference<text::XText> xFooter = 
getProperty<uno::Reference<text::XText>>(xPageStyle, "FooterTextLeft");
+    CPPUNIT_ASSERT_EQUAL(OUString("even page"), xFooter->getString());
+
+    xCursor->jumpToNextPage();
+    pageStyleName = getProperty<OUString>(xCursor, "PageStyleName");
+    xPageStyle.set(xPageStyles->getByName(pageStyleName), uno::UNO_QUERY);
+    xFooter.set(getProperty<uno::Reference<text::XText>>(xPageStyle, 
"FooterTextRight"));
+    CPPUNIT_ASSERT_EQUAL(OUString("odd page - first footer"), 
xFooter->getString());
+
+    xCursor->jumpToNextPage();
+    pageStyleName = getProperty<OUString>(xCursor, "PageStyleName");
+    xPageStyle.set(xPageStyles->getByName(pageStyleName), uno::UNO_QUERY);
+    xFooter.set(getProperty<uno::Reference<text::XText>>(xPageStyle, 
"FooterTextLeft"));
+    CPPUNIT_ASSERT_EQUAL(OUString("even page"), xFooter->getString());
+}
+
 DECLARE_OOXMLEXPORT_TEST(testTdf133370_columnBreak, 
"tdf133370_columnBreak.odt")
 {
     // Since non-DOCX formats ignores column breaks in non-column situations, 
don't export to docx.
diff --git a/sw/source/filter/ww8/wrtw8sty.cxx 
b/sw/source/filter/ww8/wrtw8sty.cxx
index fc973381db09..0e7830ccfb04 100644
--- a/sw/source/filter/ww8/wrtw8sty.cxx
+++ b/sw/source/filter/ww8/wrtw8sty.cxx
@@ -1823,7 +1823,7 @@ void MSWordExportBase::SectionProperties( const 
WW8_SepInfo& rSepInfo, WW8_PdAtt
     sal_uInt8 nHeadFootFlags = 0;
 
     const SwFrameFormat* pPdLeftFormat = bLeftRightPgChain
-        ? &pPd->GetFollow()->GetMaster()
+        ? &pPd->GetFollow()->GetFirstLeft()
         : &pPd->GetLeft();
 
     // Ensure that headers are written if section is first paragraph
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to