summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorJustin Luth <justin.luth@collabora.com>2020-07-28 15:44:41 +0300
committerMiklos Vajna <vmiklos@collabora.com>2020-08-04 12:08:05 +0200
commiteb0201b9424ca9cfbbfa7af736cc314cf8f78fca (patch)
tree8594314d03e564f62eb3c735aaa30dd148791481 /sw
parentc39b27a4d0dfc3b75d8486c0d7592c5209fb6b14 (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.odtbin0 -> 12457 bytes
-rw-r--r--sw/qa/extras/ooxmlexport/ooxmlexport15.cxx28
-rw-r--r--sw/source/filter/ww8/wrtw8sty.cxx2
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
new file mode 100644
index 000000000000..ab0ac591e29a
--- /dev/null
+++ b/sw/qa/extras/ooxmlexport/data/tdf135216_evenOddFooter.odt
Binary files 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