From 6f2b2e1436fe3917c1fcace2f1e2d34416311996 Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Fri, 18 Jul 2014 10:50:54 +0200 Subject: writerfilter: import RTF_NOCOLBAL Change-Id: If2efab82c0adc2f3dc52733c335693565c350bfa --- sw/qa/extras/rtfimport/data/unbalanced-columns-compat.rtf | 7 +++++++ sw/qa/extras/rtfimport/rtfimport.cxx | 8 ++++++++ writerfilter/source/rtftok/rtfdocumentimpl.cxx | 3 +++ 3 files changed, 18 insertions(+) create mode 100644 sw/qa/extras/rtfimport/data/unbalanced-columns-compat.rtf diff --git a/sw/qa/extras/rtfimport/data/unbalanced-columns-compat.rtf b/sw/qa/extras/rtfimport/data/unbalanced-columns-compat.rtf new file mode 100644 index 000000000000..1e4b17eec16d --- /dev/null +++ b/sw/qa/extras/rtfimport/data/unbalanced-columns-compat.rtf @@ -0,0 +1,7 @@ +{\rtf1 +\nocolbal\sectd\cols2\pard\plain +This is in the left column.\par +This is the second line, in the same column.\par +\sect\sectd\sbknone\pard\plain +After section break.\par +} diff --git a/sw/qa/extras/rtfimport/rtfimport.cxx b/sw/qa/extras/rtfimport/rtfimport.cxx index 76de5bbdc766..a2ff94f913a8 100644 --- a/sw/qa/extras/rtfimport/rtfimport.cxx +++ b/sw/qa/extras/rtfimport/rtfimport.cxx @@ -1784,6 +1784,14 @@ DECLARE_RTFIMPORT_TEST(testFdo80905, "fdo80905.rtf") CPPUNIT_ASSERT_EQUAL(true, static_cast(xFields->hasMoreElements())); } +DECLARE_RTFIMPORT_TEST(testUnbalancedColumnsCompat, "unbalanced-columns-compat.rtf") +{ + uno::Reference xTextSectionsSupplier(mxComponent, uno::UNO_QUERY); + uno::Reference xTextSections(xTextSectionsSupplier->getTextSections(), uno::UNO_QUERY); + // This was false, we ignored the relevant compat setting to make this non-last section unbalanced. + CPPUNIT_ASSERT_EQUAL(true, getProperty(xTextSections->getByIndex(0), "DontBalanceTextColumns")); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx index 8d54a69f2388..6fe2bdc586f0 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx @@ -3311,6 +3311,9 @@ int RTFDocumentImpl::dispatchFlag(RTFKeyword nKeyword) case RTF_BRDRSH: lcl_putBorderProperty(m_aStates, NS_ooxml::LN_CT_Border_shadow, RTFValue::Pointer_t(new RTFValue(1))); break; + case RTF_NOCOLBAL: + m_aSettingsTableSprms.set(NS_ooxml::LN_CT_Compat_noColumnBalance, RTFValue::Pointer_t(new RTFValue(1))); + break; default: { SAL_INFO("writerfilter", "TODO handle flag '" << lcl_RtfToString(nKeyword) << "'"); -- cgit