summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2016-06-07 09:25:16 +0200
committerChristian Lohmaier <lohmaier+LibreOffice@googlemail.com>2016-06-07 17:51:55 +0000
commit47a218c3f9d8f12dab9813abc820d54f1e77b6f8 (patch)
tree0371b31cc9c29552d522584cc183e12e746c8882
parent9c9cd0684b53856f63286e49d7a13896cfc47c91 (diff)
tdf#50821 RTF import: fix handling of \trpaddf{b,l,r,t}
The width type is an attribute, not an sprm; this resulted in zero cell margin in the table -> the text overlapped with the border shape. (cherry picked from commit 279f1a204f8c5b5121e9f1f9c431d17bdab1f5bd) Change-Id: I611feb084a16c76faf281d376e1a4a31e162f53d Reviewed-on: https://gerrit.libreoffice.org/26027 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
-rw-r--r--sw/qa/extras/rtfimport/data/tdf50821.rtf10
-rw-r--r--sw/qa/extras/rtfimport/rtfimport.cxx8
-rw-r--r--writerfilter/source/rtftok/rtfdispatchvalue.cxx4
3 files changed, 20 insertions, 2 deletions
diff --git a/sw/qa/extras/rtfimport/data/tdf50821.rtf b/sw/qa/extras/rtfimport/data/tdf50821.rtf
new file mode 100644
index 000000000000..03f253dbe6a6
--- /dev/null
+++ b/sw/qa/extras/rtfimport/data/tdf50821.rtf
@@ -0,0 +1,10 @@
+{\rtf1
+\pard\plain
+before\par
+\trowd \trpaddl108\trpaddfl3 \cellx10362\pard\plain\intbl
+table
+\cell\row
+\pard\plain
+end
+\par
+}
diff --git a/sw/qa/extras/rtfimport/rtfimport.cxx b/sw/qa/extras/rtfimport/rtfimport.cxx
index 390079cf687a..17445cd32d38 100644
--- a/sw/qa/extras/rtfimport/rtfimport.cxx
+++ b/sw/qa/extras/rtfimport/rtfimport.cxx
@@ -2626,6 +2626,14 @@ DECLARE_RTFIMPORT_TEST(testTdf77349, "tdf77349.rtf")
CPPUNIT_ASSERT_EQUAL(OUString("Image1"), xImage->getName());
}
+DECLARE_RTFIMPORT_TEST(testTdf50821, "tdf50821.rtf")
+{
+ uno::Reference<text::XTextTable> xTable(getParagraphOrTable(2), uno::UNO_QUERY);
+ uno::Reference<text::XTextRange> xCell(xTable->getCellByName("A1"), uno::UNO_QUERY);
+ // This was 0, \trpaddfl was mishandled on import.
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(191), getProperty<sal_Int32>(xCell, "LeftBorderDistance"));
+}
+
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/writerfilter/source/rtftok/rtfdispatchvalue.cxx b/writerfilter/source/rtftok/rtfdispatchvalue.cxx
index b231ef469524..03ed97172432 100644
--- a/writerfilter/source/rtftok/rtfdispatchvalue.cxx
+++ b/writerfilter/source/rtftok/rtfdispatchvalue.cxx
@@ -1313,8 +1313,8 @@ RTFError RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam)
default:
break;
}
- putNestedSprm(m_aStates.top().aTableCellSprms, NS_ooxml::LN_CT_TcPrBase_tcMar, nSprm, std::make_shared<RTFValue>(aAttributes));
- putNestedSprm(m_aDefaultState.aTableCellSprms, NS_ooxml::LN_CT_TcPrBase_tcMar, nSprm, std::make_shared<RTFValue>(aAttributes));
+ putNestedAttribute(m_aStates.top().aTableCellSprms, NS_ooxml::LN_CT_TcPrBase_tcMar, nSprm, std::make_shared<RTFValue>(aAttributes));
+ putNestedAttribute(m_aDefaultState.aTableCellSprms, NS_ooxml::LN_CT_TcPrBase_tcMar, nSprm, std::make_shared<RTFValue>(aAttributes));
}
break;
case RTF_TRPADDB: