From b71f470e370c1819cba99abe5ef654d28bbf8749 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Wed, 27 Apr 2016 14:50:05 +0100 Subject: Resolves: tdf#99498 don't overwrite trwWidth value if set on a table MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Ia39da999a2de1ca2b8bec5fc7f35d2f9ffe2dd19 Reviewed-on: https://gerrit.libreoffice.org/24430 Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara --- writerfilter/source/rtftok/rtfdocumentimpl.cxx | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'writerfilter') diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx index 0d726f4e2be1..459f0a1076dd 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx @@ -1382,10 +1382,14 @@ void RTFDocumentImpl::prepareProperties( } // Table width. - auto pUnitValue = std::make_shared(3); - lcl_putNestedAttribute(rState.aTableRowSprms, NS_ooxml::LN_CT_TblPrBase_tblW, NS_ooxml::LN_CT_TblWidth_type, pUnitValue); - auto pWValue = std::make_shared(nCurrentCellX); - lcl_putNestedAttribute(rState.aTableRowSprms, NS_ooxml::LN_CT_TblPrBase_tblW, NS_ooxml::LN_CT_TblWidth_w, pWValue); + RTFValue::Pointer_t const pTableWidthProps = rState.aTableRowSprms.find(NS_ooxml::LN_CT_TblPrBase_tblW); + if (!pTableWidthProps.get()) + { + auto pUnitValue = std::make_shared(3); + lcl_putNestedAttribute(rState.aTableRowSprms, NS_ooxml::LN_CT_TblPrBase_tblW, NS_ooxml::LN_CT_TblWidth_type, pUnitValue); + auto pWValue = std::make_shared(nCurrentCellX); + lcl_putNestedAttribute(rState.aTableRowSprms, NS_ooxml::LN_CT_TblPrBase_tblW, NS_ooxml::LN_CT_TblWidth_w, pWValue); + } auto pRowValue = std::make_shared(1); if (nCells > 0) @@ -4846,6 +4850,12 @@ RTFError RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam) lcl_putNestedSprm(m_aStates.top().aTableRowSprms, NS_ooxml::LN_CT_TblPrBase_tblCellMar, NS_ooxml::LN_CT_TblCellMar_right, std::make_shared(aAttributes)); } break; + case RTF_TRFTSWIDTH: + lcl_putNestedAttribute(m_aStates.top().aTableRowSprms, NS_ooxml::LN_CT_TblPrBase_tblW, NS_ooxml::LN_CT_TblWidth_type, pIntValue); + break; + case RTF_TRWWIDTH: + lcl_putNestedAttribute(m_aStates.top().aTableRowSprms, NS_ooxml::LN_CT_TblPrBase_tblW, NS_ooxml::LN_CT_TblWidth_w, pIntValue); + break; case RTF_PROPTYPE: { switch (nParam) -- cgit