diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2014-07-05 13:01:38 +0200 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2014-07-07 11:12:36 +0000 |
commit | e262086784defe1c0f417eedf52b5de2db8e559e (patch) | |
tree | 07329e159e3ac4ebe7cc80a6c7f56c6e48eb0f2b | |
parent | 2aa92af90a50896aa4f5d2a2287eb5db12e6c621 (diff) |
fdo#73241 RTF import: ignore page break in tables
(cherry picked from commit fdc235126d6d73f47a5b56d453e1d3db8ba3e816)
Conflicts:
sw/qa/extras/rtfimport/rtfimport.cxx
Change-Id: Ibee9fec0f421b4c2ff3d45c861bc3fcfc97cbf15
Reviewed-on: https://gerrit.libreoffice.org/10092
Reviewed-by: Muthu Subramanian K <muthusuba@gmail.com>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r-- | sw/qa/extras/rtfimport/data/fdo73241.rtf | 8 | ||||
-rw-r--r-- | sw/qa/extras/rtfimport/rtfimport.cxx | 6 | ||||
-rw-r--r-- | writerfilter/source/rtftok/rtfdocumentimpl.cxx | 4 |
3 files changed, 18 insertions, 0 deletions
diff --git a/sw/qa/extras/rtfimport/data/fdo73241.rtf b/sw/qa/extras/rtfimport/data/fdo73241.rtf new file mode 100644 index 000000000000..b919e25b1da7 --- /dev/null +++ b/sw/qa/extras/rtfimport/data/fdo73241.rtf @@ -0,0 +1,8 @@ +{\rtf1 +\pard\plain Before.\par +\trowd \cellx4703\cellx9514\pard\plain\intbl +{\page First cell\cell Second cell\cell } +\pard\plain \intbl +{\trowd \cellx4703\cellx9514\row } +\pard\plain After.\par +} diff --git a/sw/qa/extras/rtfimport/rtfimport.cxx b/sw/qa/extras/rtfimport/rtfimport.cxx index 4a5b8444399b..4fd6941fce18 100644 --- a/sw/qa/extras/rtfimport/rtfimport.cxx +++ b/sw/qa/extras/rtfimport/rtfimport.cxx @@ -1703,6 +1703,12 @@ DECLARE_RTFIMPORT_TEST(testFontOverride, "font-override.rtf") CPPUNIT_ASSERT_EQUAL(OUString("Arial"), getProperty<OUString>(getRun(getParagraph(1), 1), "CharFontName")); } +DECLARE_RTFIMPORT_TEST(testFdo73241, "fdo73241.rtf") +{ + // This was 2, page break in table wasn't ignored. + CPPUNIT_ASSERT_EQUAL(1, getPages()); +} + 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 d05ac5be2999..cc627a5e5bed 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx @@ -2273,6 +2273,10 @@ int RTFDocumentImpl::dispatchSymbol(RTFKeyword nKeyword) break; case RTF_PAGE: { + // Ignore page breaks inside tables. + if (m_aStates.top().pCurrentBuffer == &m_aTableBufferStack.back()) + break; + // If we're inside a continuous section, we should send a section break, not a page one. RTFValue::Pointer_t pBreak = m_aStates.top().aSectionSprms.find(NS_ooxml::LN_EG_SectPrContents_type); // Unless we're on a title page. |