From f933da55797566cf725e35ab0df17e91c7d5598f Mon Sep 17 00:00:00 2001 From: Michael Stahl Date: Wed, 5 Oct 2016 23:09:25 +0200 Subject: tdf#103025 sw: don't format header/footer in SwPageFrame::PreparePage() This has always been dead code because it used wrong constants FRMTYPE_HEADER|FRMTYPE_FOOTER which is actually Page|Column and SwPageFrame and SwColumnFrame are not direct children of SwPageFrame. Then commit 901e5c3a21a1299d10c44bc844246fe8c329bb82 fixed the constants but somehow the early formatting of header/footer results in wrong expansion of variable text fields, so just remove this code. Change-Id: I0af13168970f26355a1b247e071235166d08b7a4 --- sw/qa/extras/odfimport/data/tdf103025.odt | Bin 0 -> 5694 bytes sw/qa/extras/odfimport/odfimport.cxx | 9 +++++++++ sw/source/core/layout/pagechg.cxx | 16 ---------------- 3 files changed, 9 insertions(+), 16 deletions(-) create mode 100644 sw/qa/extras/odfimport/data/tdf103025.odt diff --git a/sw/qa/extras/odfimport/data/tdf103025.odt b/sw/qa/extras/odfimport/data/tdf103025.odt new file mode 100644 index 000000000000..bd1e57314d88 Binary files /dev/null and b/sw/qa/extras/odfimport/data/tdf103025.odt differ diff --git a/sw/qa/extras/odfimport/odfimport.cxx b/sw/qa/extras/odfimport/odfimport.cxx index ceb55723e01a..e8bc1cf41f51 100644 --- a/sw/qa/extras/odfimport/odfimport.cxx +++ b/sw/qa/extras/odfimport/odfimport.cxx @@ -631,6 +631,15 @@ DECLARE_ODFIMPORT_TEST(testBnc800714, "bnc800714.fodt") CPPUNIT_ASSERT(getProperty(getParagraph(2), "ParaKeepTogether")); } +DECLARE_ODFIMPORT_TEST(testTdf103025, "tdf103025.odt") +{ + CPPUNIT_ASSERT_EQUAL(OUString("2014-01"), parseDump("/root/page[1]/header/tab[2]/row[2]/cell[3]/txt/Special", "rText")); + CPPUNIT_ASSERT_EQUAL(OUString("2014-01"), parseDump("/root/page[2]/header/tab[2]/row[2]/cell[3]/txt/Special", "rText")); + CPPUNIT_ASSERT_EQUAL(OUString("2014-02"), parseDump("/root/page[3]/header/tab[2]/row[2]/cell[3]/txt/Special", "rText")); + CPPUNIT_ASSERT_EQUAL(OUString("2014-03"), parseDump("/root/page[4]/header/tab[2]/row[2]/cell[3]/txt/Special", "rText")); + CPPUNIT_ASSERT_EQUAL(OUString("2014-03"), parseDump("/root/page[5]/header/tab[2]/row[2]/cell[3]/txt/Special", "rText")); +} + DECLARE_ODFIMPORT_TEST(testTdf76322_columnBreakInHeader, "tdf76322_columnBreakInHeader.docx") { // column breaks were ignored. First line should start in column 2 diff --git a/sw/source/core/layout/pagechg.cxx b/sw/source/core/layout/pagechg.cxx index 50d910bae579..720a541631b8 100644 --- a/sw/source/core/layout/pagechg.cxx +++ b/sw/source/core/layout/pagechg.cxx @@ -467,22 +467,6 @@ void SwPageFrame::PreparePage( bool bFootnote ) if ( GetPrev() && static_cast(GetPrev())->IsEmptyPage() ) lcl_MakeObjs( *pDoc->GetSpzFrameFormats(), static_cast(GetPrev()) ); lcl_MakeObjs( *pDoc->GetSpzFrameFormats(), this ); - - // format footer/ header - SwLayoutFrame *pLow = static_cast(Lower()); - while ( pLow ) - { - if ( pLow->GetType() & (SwFrameType::Header|SwFrameType::Footer) ) - { - SwContentFrame *pContent = pLow->ContainsContent(); - while ( pContent && pLow->IsAnLower( pContent ) ) - { - pContent->OptCalc(); // not the predecessors - pContent = pContent->GetNextContentFrame(); - } - } - pLow = static_cast(pLow->GetNext()); - } } } -- cgit v1.2.3