diff options
author | Justin Luth <justin.luth@collabora.com> | 2020-07-28 15:44:41 +0300 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2020-08-04 12:08:05 +0200 |
commit | eb0201b9424ca9cfbbfa7af736cc314cf8f78fca (patch) | |
tree | 8594314d03e564f62eb3c735aaa30dd148791481 /sw | |
parent | c39b27a4d0dfc3b75d8486c0d7592c5209fb6b14 (diff) |
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_luth@sil.org>
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Reviewed-by: Justin Luth <justin_luth@sil.org>
Diffstat (limited to 'sw')
-rw-r--r-- | sw/qa/extras/ooxmlexport/data/tdf135216_evenOddFooter.odt | bin | 0 -> 12457 bytes | |||
-rw-r--r-- | sw/qa/extras/ooxmlexport/ooxmlexport15.cxx | 28 | ||||
-rw-r--r-- | sw/source/filter/ww8/wrtw8sty.cxx | 2 |
3 files changed, 29 insertions, 1 deletions
diff --git a/sw/qa/extras/ooxmlexport/data/tdf135216_evenOddFooter.odt b/sw/qa/extras/ooxmlexport/data/tdf135216_evenOddFooter.odt Binary files differnew file mode 100644 index 000000000000..ab0ac591e29a --- /dev/null +++ b/sw/qa/extras/ooxmlexport/data/tdf135216_evenOddFooter.odt 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 |