sw/qa/extras/ooxmlexport/ooxmlexport13.cxx | 1 + sw/source/filter/ww8/docxattributeoutput.cxx | 2 +- sw/source/filter/ww8/wrtw8nds.cxx | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-)
New commits: commit 4ce06f8d162a282025cefe14e5684f82e439e01c Author: Justin Luth <[email protected]> AuthorDate: Fri Dec 14 11:28:45 2018 +0300 Commit: Miklos Vajna <[email protected]> CommitDate: Fri Dec 21 10:54:26 2018 +0100 sw ooxmlexport: export non-continuous section breaks I'm amazed at how poorly DOCX section breaks were exported. This is really hard code to understand - jumping around all over, and shared between totally different doc/rtf/docx implementations. This change only affects docx, since .doc SectionBreaks is empty and RTF does nothing in the case of .IsSectionNode(). I THINK that sectionbreaksandframes does this job for DOC (which is empty for DOCX) and RTF does things very differently, so no possibility to piggy-back on existing code. In any case, after a section node, there was NOTHING that looked at the first text node to see if there was a RES_PAGEDESC or a RES_BREAK, so these page breaks were being completely ignored. It took a few days to figure out this very simple solution. A followup commit will fix the import when the follow page is a different orientation. Change-Id: I774e3e64cac9e2d26fdbeb1484266ebb44fac114 Reviewed-on: https://gerrit.libreoffice.org/65155 Tested-by: Jenkins Reviewed-by: Justin Luth <[email protected]> Reviewed-by: Miklos Vajna <[email protected]> diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx index b3d0a219c5cc..726bc3731e36 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport13.cxx @@ -40,6 +40,7 @@ DECLARE_OOXMLEXPORT_TEST(testTdf121374_sectionHF, "tdf121374_sectionHF.odt") CPPUNIT_ASSERT_EQUAL( OUString("footer"), xFooterText->getString() ); CPPUNIT_ASSERT_EQUAL_MESSAGE( "Number of Paragraphs", 6, getParagraphs() ); + CPPUNIT_ASSERT_MESSAGE("Number of pages", getPages() > 2); //CPPUNIT_ASSERT_EQUAL_MESSAGE( "Number of Pages", 6, getPages() ); } diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx index 1328a07151cb..462af4db6ebc 100644 --- a/sw/source/filter/ww8/docxattributeoutput.cxx +++ b/sw/source/filter/ww8/docxattributeoutput.cxx @@ -874,7 +874,7 @@ void DocxAttributeOutput::SectionBreaks(const SwNode& rNode) // paragraph, and detect the section breaks there. SwNodeIndex aNextIndex( rNode, 1 ); - if (rNode.IsTextNode()) + if (rNode.IsTextNode() || rNode.IsSectionNode()) { if (aNextIndex.GetNode().IsTextNode()) { diff --git a/sw/source/filter/ww8/wrtw8nds.cxx b/sw/source/filter/ww8/wrtw8nds.cxx index 393c1d2e8afb..7cde0949f748 100644 --- a/sw/source/filter/ww8/wrtw8nds.cxx +++ b/sw/source/filter/ww8/wrtw8nds.cxx @@ -3037,6 +3037,8 @@ void MSWordExportBase::OutputSectionNode( const SwSectionNode& rSectionNode ) if ( pSet && NoPageBreakSection( pSet ) ) pSet = nullptr; + else + AttrOutput().SectionBreaks( rSectionNode ); if ( !pSet ) { _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
