From b5c4e120540053d0cb737720503cb7038f12d5bd Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Tue, 14 Mar 2017 09:38:44 +0100 Subject: tdf#105729 RTF import: \ltrpar should not override \qc from style This is similar to commit 92fd894ea18672cba4cf961bdc4c0bc98f168102 (tdf#94435 RTF import: \ltrpar should not override \qc, 2015-10-05), except that here the \qc is inherited from the style, it's not a direct formatting. The problematic code was added in commit 2638faa2e834c2da4c195224fd88d32c29b3d0cc (writerfilter08ooo330: applied patch for writerfilter08, 2010-07-28), and it's not really clear to me what is its purpose, given that the DOC import equivalent in SwWW8ImplReader::Read_ParaBiDi() doesn't set the paragraph alignment. Fix the situation by not touching the paragraph alignment for the RTF case at least. (cherry picked from commit 2cc5f18d10cf6ef1349d9518e6f67977f7c5d9bf) Change-Id: I2baa2c8c8012d972740da7cf3f710117812859b3 Reviewed-on: https://gerrit.libreoffice.org/35190 Tested-by: Jenkins Reviewed-by: Christian Lohmaier --- sw/qa/extras/rtfimport/data/tdf105729.rtf | 9 +++++++++ sw/qa/extras/rtfimport/rtfimport.cxx | 6 ++++++ writerfilter/source/dmapper/DomainMapper.cxx | 6 ++++-- 3 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 sw/qa/extras/rtfimport/data/tdf105729.rtf diff --git a/sw/qa/extras/rtfimport/data/tdf105729.rtf b/sw/qa/extras/rtfimport/data/tdf105729.rtf new file mode 100644 index 000000000000..996dd37b0057 --- /dev/null +++ b/sw/qa/extras/rtfimport/data/tdf105729.rtf @@ -0,0 +1,9 @@ +{\rtf1 +{\stylesheet +{\s16\qc +Titel 1;} +} +\pard\plain \ltrpar\s16\qc +Centered Title +\par +} diff --git a/sw/qa/extras/rtfimport/rtfimport.cxx b/sw/qa/extras/rtfimport/rtfimport.cxx index 1b9a2cc368a1..79f82d72dedb 100644 --- a/sw/qa/extras/rtfimport/rtfimport.cxx +++ b/sw/qa/extras/rtfimport/rtfimport.cxx @@ -2746,6 +2746,12 @@ DECLARE_RTFIMPORT_TEST(testTdf104287, "tdf104287.rtf") CPPUNIT_ASSERT(xShape->getAnchor().is()); } +DECLARE_RTFIMPORT_TEST(testTdf105729, "tdf105729.rtf") +{ + // This was style::ParagraphAdjust_LEFT, \ltrpar undone the effect of \qc from style. + CPPUNIT_ASSERT_EQUAL(style::ParagraphAdjust_CENTER, static_cast(getProperty(getParagraph(1), "ParaAdjust"))); +} + 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 fe7b9a97b0b4..79a12523f999 100644 --- a/writerfilter/source/dmapper/DomainMapper.cxx +++ b/writerfilter/source/dmapper/DomainMapper.cxx @@ -1445,12 +1445,14 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, const PropertyMapPtr& rContext ) if (nIntValue != 0) { rContext->Insert(PROP_WRITING_MODE, uno::makeAny( text::WritingMode2::RL_TB )); - rContext->Insert(PROP_PARA_ADJUST, uno::makeAny( style::ParagraphAdjust_RIGHT ), /*bOverwrite=*/false); + if (!IsRTFImport()) + rContext->Insert(PROP_PARA_ADJUST, uno::makeAny( style::ParagraphAdjust_RIGHT ), /*bOverwrite=*/false); } else { rContext->Insert(PROP_WRITING_MODE, uno::makeAny( text::WritingMode2::LR_TB )); - rContext->Insert(PROP_PARA_ADJUST, uno::makeAny( style::ParagraphAdjust_LEFT ), /*bOverwrite=*/false); + if (!IsRTFImport()) + rContext->Insert(PROP_PARA_ADJUST, uno::makeAny( style::ParagraphAdjust_LEFT ), /*bOverwrite=*/false); } } -- cgit v1.2.3