diff options
Diffstat (limited to 'sw/source/filter/ww8/docxattributeoutput.cxx')
-rw-r--r-- | sw/source/filter/ww8/docxattributeoutput.cxx | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx index 8ea9ec639f2d..a8c2c08fcfe1 100644 --- a/sw/source/filter/ww8/docxattributeoutput.cxx +++ b/sw/source/filter/ww8/docxattributeoutput.cxx @@ -3558,7 +3558,8 @@ void DocxAttributeOutput::TableCellProperties( ww8::WW8TableNodeInfoInner::Point const SvxBoxItem& rDefaultBox = (*tableFirstCells.rbegin())->getTableBox( )->GetFrameFormat( )->GetBox( ); { // The cell borders - impl_borders( m_pSerializer, rBox, lcl_getTableCellBorderOptions(bEcma), m_aTableStyleConf ); + impl_borders(m_pSerializer, rBox, lcl_getTableCellBorderOptions(bEcma), + m_aTableStyleConfs.back()); } TableBackgrounds( pTableTextNodeInfoInner ); @@ -3597,6 +3598,8 @@ void DocxAttributeOutput::InitTableHelper( ww8::WW8TableNodeInfoInner::Pointer_t void DocxAttributeOutput::StartTable( ww8::WW8TableNodeInfoInner::Pointer_t const & pTableTextNodeInfoInner ) { + m_aTableStyleConfs.push_back({}); + // In case any paragraph SDT's are open, close them here. EndParaSdtBlock(); @@ -3630,7 +3633,7 @@ void DocxAttributeOutput::EndTable() // Cleans the table helper m_xTableWrt.reset(nullptr); - m_aTableStyleConf.clear(); + m_aTableStyleConfs.pop_back(); } void DocxAttributeOutput::StartTableRow( ww8::WW8TableNodeInfoInner::Pointer_t const & pTableTextNodeInfoInner ) @@ -3863,7 +3866,8 @@ void DocxAttributeOutput::TableDefinition( ww8::WW8TableNodeInfoInner::Pointer_t // We should clear the TableStyle map. In case of Table inside multiple tables it contains the // table border style of the previous table. - m_aTableStyleConf.clear(); + std::map<SvxBoxItemLine, css::table::BorderLine2>& rTableStyleConf = m_aTableStyleConfs.back(); + rTableStyleConf.clear(); // Extract properties from grab bag for( const auto & rGrabBagElement : aGrabBag ) @@ -3876,13 +3880,16 @@ void DocxAttributeOutput::TableDefinition( ww8::WW8TableNodeInfoInner::Pointer_t FSEND ); } else if( rGrabBagElement.first == "TableStyleTopBorder" ) - m_aTableStyleConf[ SvxBoxItemLine::TOP ] = rGrabBagElement.second.get<table::BorderLine2>(); + rTableStyleConf[SvxBoxItemLine::TOP] = rGrabBagElement.second.get<table::BorderLine2>(); else if( rGrabBagElement.first == "TableStyleBottomBorder" ) - m_aTableStyleConf[ SvxBoxItemLine::BOTTOM ] = rGrabBagElement.second.get<table::BorderLine2>(); + rTableStyleConf[SvxBoxItemLine::BOTTOM] + = rGrabBagElement.second.get<table::BorderLine2>(); else if( rGrabBagElement.first == "TableStyleLeftBorder" ) - m_aTableStyleConf[ SvxBoxItemLine::LEFT ] = rGrabBagElement.second.get<table::BorderLine2>(); + rTableStyleConf[SvxBoxItemLine::LEFT] + = rGrabBagElement.second.get<table::BorderLine2>(); else if( rGrabBagElement.first == "TableStyleRightBorder" ) - m_aTableStyleConf[ SvxBoxItemLine::RIGHT ] = rGrabBagElement.second.get<table::BorderLine2>(); + rTableStyleConf[SvxBoxItemLine::RIGHT] + = rGrabBagElement.second.get<table::BorderLine2>(); else if (rGrabBagElement.first == "TableStyleLook") { FastAttributeList* pAttributeList = FastSerializerHelper::createAttrList(); |