From afc96d263959d10e457b54a574f0829d20e99df4 Mon Sep 17 00:00:00 2001 From: Justin Luth Date: Tue, 7 Nov 2017 09:29:30 +0300 Subject: [PATCH] tdf#112352 ooxmlimport: ALWAYS treat 1st nextpage w/cols as cont fix 5.4 regression from 4605bd46984125a99b0e993b71efa6edb411699f. When there are columns, if a nextpage section doesn't contain any other "page style" details we treat it as a continuous break, If we don't, the column info becomes part of the style itself, and not just a section property. However, the very first section is troublesome - by definition it DOES contain page style details, and so if the document starts with columns, the default style would gain the column attribute. Usually that results in a mess, so lets make sure that we avoid that also in the case where headers/footers are defined. Change-Id: I7e08a9218e4304206579ed064bc92c9604d4470e Reviewed-on: https://gerrit.libreoffice.org/44505 Tested-by: Jenkins Reviewed-by: Justin Luth Tested-by: Justin Luth --- .../data/tdf112352_nextPageColumns.docx | Bin 0 -> 14346 bytes sw/qa/extras/ooxmlexport/ooxmlexport9.cxx | 11 +++++++++++ writerfilter/source/dmapper/PropertyMap.cxx | 2 +- 3 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 sw/qa/extras/ooxmlexport/data/tdf112352_nextPageColumns.docx diff --git a/sw/qa/extras/ooxmlexport/data/tdf112352_nextPageColumns.docx b/sw/qa/extras/ooxmlexport/data/tdf112352_nextPageColumns.docx new file mode 100644 index 0000000000000000000000000000000000000000..f14681dd51c276ec76e141f151eadfe9c446f6a2 GIT binary patch literal 14346 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 literal 0 HcmV?d00001 diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx index 41a309d5713b..dddc7b2b918c 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport9.cxx @@ -441,6 +441,17 @@ DECLARE_OOXMLEXPORT_TEST(testTdf103975_notPageBreakE, "tdf103975_notPageBreakE.d CPPUNIT_ASSERT_EQUAL(style::BreakType_COLUMN_BEFORE, getProperty(getParagraph(2), "BreakType")); } +DECLARE_OOXMLEXPORT_TEST(testTdf112352_nextPageColumns, "tdf112352_nextPageColumns.docx") +{ + uno::Reference xTextSection = getProperty< uno::Reference >(getParagraph(2), "TextSection"); + uno::Reference xTextColumns = getProperty< uno::Reference >(xTextSection, "TextColumns"); + CPPUNIT_ASSERT_EQUAL(sal_Int16(2), xTextColumns->getColumnCount()); + + xTextSection = getProperty< uno::Reference >(getParagraph(3), "TextSection"); + xTextColumns = getProperty< uno::Reference >(xTextSection, "TextColumns"); + CPPUNIT_ASSERT_EQUAL(sal_Int16(0), xTextColumns->getColumnCount()); +} + DECLARE_OOXMLEXPORT_TEST(testTdf109310_endnoteStyleForMSO, "tdf109310_endnoteStyleForMSO.docx") { xmlDocPtr pXmlDoc = parseExport("word/endnotes.xml"); diff --git a/writerfilter/source/dmapper/PropertyMap.cxx b/writerfilter/source/dmapper/PropertyMap.cxx index 1cf71588ce05..c416ba52ba69 100644 --- a/writerfilter/source/dmapper/PropertyMap.cxx +++ b/writerfilter/source/dmapper/PropertyMap.cxx @@ -1170,7 +1170,7 @@ void SectionPropertyMap::CloseSectionGroup( DomainMapper_Impl& rDM_Impl ) // Continuous sections usually create only a section, and not a new page style const bool bTreatAsContinuous = m_nBreakType == NS_ooxml::LN_Value_ST_SectionMark_nextPage && m_nColumnCount > 0 - && !HasHeader( m_bTitlePage ) && !HasFooter( m_bTitlePage ) + && (m_bIsFirstSection || (!HasHeader( m_bTitlePage ) && !HasFooter( m_bTitlePage )) ) && (m_bIsFirstSection || m_sFollowPageStyleName.isEmpty() || (m_sFirstPageStyleName.isEmpty() && m_bTitlePage)); if ( m_nBreakType == static_cast(NS_ooxml::LN_Value_ST_SectionMark_continuous) || bTreatAsContinuous ) {