summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2014-11-01 22:00:46 +0100
committerMiklos Vajna <vmiklos@collabora.co.uk>2014-11-01 22:41:27 +0100
commitdcb37dcebcde6188eb58ef7d8d34d08fea4badb8 (patch)
treed652d3b21d85025bd1b61e85e46aabf5ce53625f
parent501f25e3291dd0ab38e3612de2fc160d953c1846 (diff)
fdo#82512 RTF import: fix position of column break
Change-Id: Ib0f39c4af7cc32d0f4491f13ea207d90a449a47d
-rw-r--r--sw/qa/extras/rtfimport/data/fdo82512.rtf10
-rw-r--r--sw/qa/extras/rtfimport/rtfimport.cxx6
-rw-r--r--writerfilter/source/dmapper/DomainMapper.cxx8
3 files changed, 24 insertions, 0 deletions
diff --git a/sw/qa/extras/rtfimport/data/fdo82512.rtf b/sw/qa/extras/rtfimport/data/fdo82512.rtf
new file mode 100644
index 000000000000..925cc4bf6f9e
--- /dev/null
+++ b/sw/qa/extras/rtfimport/data/fdo82512.rtf
@@ -0,0 +1,10 @@
+{\rtf1\ansi\deff0
+\cols2\colsx709
+\pard\plain
+{First col\par}{
+\column
+\par
+\par
+Second col\par
+}
+}
diff --git a/sw/qa/extras/rtfimport/rtfimport.cxx b/sw/qa/extras/rtfimport/rtfimport.cxx
index 90ae2eff8bf2..6639948ce305 100644
--- a/sw/qa/extras/rtfimport/rtfimport.cxx
+++ b/sw/qa/extras/rtfimport/rtfimport.cxx
@@ -2007,6 +2007,12 @@ DECLARE_RTFIMPORT_TEST(testFdo82076, "fdo82076.rtf")
CPPUNIT_ASSERT_EQUAL(OUString("Footnote"), getProperty<OUString>(getRun(getParagraphOfText(1, xCell->getText()), 2), "TextPortionType"));
}
+DECLARE_RTFIMPORT_TEST(testFdo82512, "fdo82512.rtf")
+{
+ // This was style::BreakType_NONE, column break was before the 3rd paragraph, not before the 2nd one.
+ CPPUNIT_ASSERT_EQUAL(style::BreakType_COLUMN_BEFORE, getProperty<style::BreakType>(getParagraph(2), "BreakType"));
+}
+
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx
index a06935d248de..1491440a3f3a 100644
--- a/writerfilter/source/dmapper/DomainMapper.cxx
+++ b/writerfilter/source/dmapper/DomainMapper.cxx
@@ -2798,8 +2798,16 @@ void DomainMapper::lcl_text(const sal_uInt8 * data_, size_t len)
m_pImpl->getTableManager().text(data_, len);
return;
case 0x0d:
+ {
+ PropertyMapPtr pContext = m_pImpl->GetTopContextOfType(CONTEXT_PARAGRAPH);
+ if (pContext && m_pImpl->isBreakDeferred(COLUMN_BREAK))
+ {
+ pContext->Insert(PROP_BREAK_TYPE, uno::makeAny(style::BreakType_COLUMN_BEFORE));
+ m_pImpl->clearDeferredBreak(COLUMN_BREAK);
+ }
m_pImpl->finishParagraph(m_pImpl->GetTopContextOfType(CONTEXT_PARAGRAPH));
return;
+ }
case 0x13:
m_pImpl->PushFieldContext();
return;