sw/qa/extras/ooxmlimport/data/default-sect-break-cols.docx |binary sw/qa/extras/ooxmlimport/ooxmlimport.cxx | 17 +++++++++++++ writerfilter/source/dmapper/PropertyMap.cxx | 4 ++- 3 files changed, 20 insertions(+), 1 deletion(-)
New commits: commit 870e1d6e74e9d8eea13dec0cab52755980cf2a93 Author: Miklos Vajna <[email protected]> Date: Wed Sep 11 15:18:26 2013 +0200 DOCX import: fix default section break type inside multiple columns Signed-off-by: Andras Timar <[email protected]> Conflicts: sw/qa/extras/ooxmlimport/ooxmlimport.cxx Change-Id: I7c44a2bdb69563953d3257b435aeed5bae50f7b2 diff --git a/sw/qa/extras/ooxmlimport/data/default-sect-break-cols.docx b/sw/qa/extras/ooxmlimport/data/default-sect-break-cols.docx new file mode 100755 index 0000000..b66b844 Binary files /dev/null and b/sw/qa/extras/ooxmlimport/data/default-sect-break-cols.docx differ diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx index 2076c8c..bbf1d3e 100644 --- a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx +++ b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx @@ -25,6 +25,7 @@ #include <com/sun/star/text/XDependentTextField.hpp> #include <com/sun/star/text/XFormField.hpp> #include <com/sun/star/text/XPageCursor.hpp> +#include <com/sun/star/text/XTextColumns.hpp> #include <com/sun/star/text/XTextFieldsSupplier.hpp> #include <com/sun/star/text/XTextFrame.hpp> #include <com/sun/star/text/XTextFramesSupplier.hpp> @@ -135,6 +136,7 @@ public: void testVmlTextVerticalAdjust(); void testGroupshapeSdt(); void testBnc779620(); + void testDefaultSectBreakCols(); CPPUNIT_TEST_SUITE(Test); #if !defined(MACOSX) && !defined(WNT) @@ -235,6 +237,7 @@ void Test::run() {"vml-text-vertical-adjust.docx", &Test::testVmlTextVerticalAdjust}, {"groupshape-sdt.docx", &Test::testGroupshapeSdt}, {"bnc779620.docx", &Test::testBnc779620}, + {"default-sect-break-cols.docx", &Test::testDefaultSectBreakCols}, }; header(); for (unsigned int i = 0; i < SAL_N_ELEMENTS(aMethods); ++i) @@ -1652,6 +1655,20 @@ void Test::testBnc779620() CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xIndexAccess->getCount()); } +void Test::testDefaultSectBreakCols() +{ + // First problem: the first two paragraphs did not have their own text section, so the whole document had two columns. + uno::Reference<beans::XPropertySet> xTextSection = getProperty< uno::Reference<beans::XPropertySet> >(getParagraph(1, "First."), "TextSection"); + CPPUNIT_ASSERT(xTextSection.is()); + uno::Reference<text::XTextColumns> xTextColumns = getProperty< uno::Reference<text::XTextColumns> >(xTextSection, "TextColumns"); + CPPUNIT_ASSERT_EQUAL(sal_Int16(2), xTextColumns->getColumnCount()); + + // Second problem: the page style had two columns, while it shouldn't have any. + uno::Reference<beans::XPropertySet> xPageStyle(getStyles("PageStyles")->getByName(DEFAULT_STYLE), uno::UNO_QUERY); + xTextColumns = getProperty< uno::Reference<text::XTextColumns> >(xPageStyle, "TextColumns"); + CPPUNIT_ASSERT_EQUAL(sal_Int16(0), xTextColumns->getColumnCount()); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Test); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/writerfilter/source/dmapper/PropertyMap.cxx b/writerfilter/source/dmapper/PropertyMap.cxx index 3c4a470..2de47e9 100644 --- a/writerfilter/source/dmapper/PropertyMap.cxx +++ b/writerfilter/source/dmapper/PropertyMap.cxx @@ -890,7 +890,9 @@ void SectionPropertyMap::CloseSectionGroup( DomainMapper_Impl& rDM_Impl ) } //depending on the break type no page styles should be created - if(m_nBreakType == 0) + // If the section type is missing, but we have columns, then this should be + // handled as a continuous section break. + if(m_nBreakType == 0 || (m_nBreakType == -1 && m_nColumnCount > 0)) { //todo: insert a section or access the already inserted section uno::Reference< beans::XPropertySet > xSection = _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
