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