writerfilter/source/dmapper/TablePropertiesHandler.cxx | 20 ++++++++++++++++- writerfilter/source/dmapper/TblStylePrHandler.cxx | 12 ++++++++-- 2 files changed, 29 insertions(+), 3 deletions(-)
New commits: commit c2b8170cbdac557bdd63a467be8bf4f124e74702 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Tue Oct 29 17:40:06 2013 +0100 DOCX import: also read tblPr/tcPr inside tblStylePr into InteropGrabBag Change-Id: I1670e5c51d19aa17188c5707856ab61874fab6c2 diff --git a/writerfilter/source/dmapper/TablePropertiesHandler.cxx b/writerfilter/source/dmapper/TablePropertiesHandler.cxx index e2b5c3b..255547c 100644 --- a/writerfilter/source/dmapper/TablePropertiesHandler.cxx +++ b/writerfilter/source/dmapper/TablePropertiesHandler.cxx @@ -133,7 +133,7 @@ namespace dmapper { case NS_ooxml::LN_CT_TcPrBase_vAlign://90694 { sal_Int16 nVertOrient = text::VertOrientation::NONE; - switch( nIntValue ) //0 - top 1 - center 3 - bottom + switch( nIntValue ) //0 - top 1 - center 3 - bottom (ST_VerticalJc) { case 1: nVertOrient = text::VertOrientation::CENTER; break; case 3: nVertOrient = text::VertOrientation::BOTTOM; break; @@ -143,6 +143,24 @@ namespace dmapper { pCellPropMap->Insert( PROP_VERT_ORIENT, uno::makeAny( nVertOrient ) ); //todo: in ooxml import the value of m_ncell is wrong cellProps( pCellPropMap ); + if (m_pCurrentInteropGrabBag) + { + OUString aVertOrient; + switch( nIntValue ) + { + case 0: aVertOrient = "top"; break; + case 1: aVertOrient = "center"; break; + case 2: aVertOrient = "both"; break; + case 3: aVertOrient = "bottom"; break; + }; + if (!aVertOrient.isEmpty()) + { + beans::PropertyValue aValue; + aValue.Name = "vAlign"; + aValue.Value = uno::makeAny(aVertOrient); + m_pCurrentInteropGrabBag->push_back(aValue); + } + } } break; case NS_ooxml::LN_CT_TblPrBase_tblBorders: //table borders, might be defined in table style diff --git a/writerfilter/source/dmapper/TblStylePrHandler.cxx b/writerfilter/source/dmapper/TblStylePrHandler.cxx index faedeba..194aceb 100644 --- a/writerfilter/source/dmapper/TblStylePrHandler.cxx +++ b/writerfilter/source/dmapper/TblStylePrHandler.cxx @@ -80,18 +80,26 @@ void TblStylePrHandler::lcl_sprm(Sprm & rSprm) case NS_ooxml::LN_CT_TcPrBase: { std::vector<beans::PropertyValue> aSavedGrabBag; - if (rSprm.getId() == NS_ooxml::LN_CT_PPrBase || rSprm.getId() == NS_ooxml::LN_EG_RPrBase) + bool bGrabBag = rSprm.getId() == NS_ooxml::LN_CT_PPrBase || + rSprm.getId() == NS_ooxml::LN_EG_RPrBase || + rSprm.getId() == NS_ooxml::LN_CT_TblPrBase || + rSprm.getId() == NS_ooxml::LN_CT_TcPrBase; + if (bGrabBag) { aSavedGrabBag = m_aInteropGrabBag; m_aInteropGrabBag.clear(); } resolveSprmProps( rSprm ); - if (rSprm.getId() == NS_ooxml::LN_CT_PPrBase || rSprm.getId() == NS_ooxml::LN_EG_RPrBase) + if (bGrabBag) { if (rSprm.getId() == NS_ooxml::LN_CT_PPrBase) aSavedGrabBag.push_back(getInteropGrabBag("pPr")); else if (rSprm.getId() == NS_ooxml::LN_EG_RPrBase) aSavedGrabBag.push_back(getInteropGrabBag("rPr")); + else if (rSprm.getId() == NS_ooxml::LN_CT_TblPrBase) + aSavedGrabBag.push_back(getInteropGrabBag("tblPr")); + else if (rSprm.getId() == NS_ooxml::LN_CT_TcPrBase) + aSavedGrabBag.push_back(getInteropGrabBag("tcPr")); m_aInteropGrabBag = aSavedGrabBag; } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits