summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2014-07-05 13:01:38 +0200
committerAndras Timar <andras.timar@collabora.com>2014-07-06 08:21:19 +0000
commit197e9fb4e7fa857d764bcd66a97474c393d8308f (patch)
treedb97719f1270d6736af87757238b025550b832ad
parent284c6681688f7075900d2351976c3611702411ce (diff)
fdo#73241 RTF import: ignore page break in tables
(cherry picked from commit fdc235126d6d73f47a5b56d453e1d3db8ba3e816) Conflicts: sw/qa/extras/rtfimport/rtfimport.cxx writerfilter/source/rtftok/rtfdocumentimpl.cxx Change-Id: Ibee9fec0f421b4c2ff3d45c861bc3fcfc97cbf15 Reviewed-on: https://gerrit.libreoffice.org/10093 Reviewed-by: Andras Timar <andras.timar@collabora.com> Tested-by: Andras Timar <andras.timar@collabora.com>
-rw-r--r--sw/qa/extras/rtfimport/data/fdo73241.rtf8
-rw-r--r--sw/qa/extras/rtfimport/rtfimport.cxx6
-rw-r--r--writerfilter/source/rtftok/rtfdocumentimpl.cxx4
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 ee7d9719e332..73ac0c91f7d4 100644
--- a/sw/qa/extras/rtfimport/rtfimport.cxx
+++ b/sw/qa/extras/rtfimport/rtfimport.cxx
@@ -1664,6 +1664,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 dd14ca53b312..66abe80dca80 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
@@ -2193,6 +2193,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 continous section, we should send a section break, not a page one.
RTFValue::Pointer_t pBreak = m_aStates.top().aSectionSprms.find(NS_sprm::LN_SBkc);
// Unless we're on a title page.