sw/qa/extras/ooxmlexport/ooxmlexport.cxx | 1 + sw/source/filter/ww8/docxtablestyleexport.cxx | 11 +++++++---- writerfilter/source/dmapper/TablePropertiesHandler.cxx | 5 +++++ 3 files changed, 13 insertions(+), 4 deletions(-)
New commits: commit ebf3df49118dad83acaf045b71815d7900289046 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Tue Nov 5 11:01:38 2013 +0100 DOCX filter: handle tcMar inside tblStylePr Change-Id: Ifc7694b39337fb9824c2b57083fee101d48f6b84 diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx index 91dd026..dcb106c 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx @@ -1357,6 +1357,7 @@ DECLARE_OOXML_TEST(testQuicktables, "quicktables.docx") assertXPath(pXmlStyles, "/w:styles/w:style[@w:styleId='Calendar4']/w:tcPr/w:shd", "themeFillShade", "80"); assertXPath(pXmlStyles, "/w:styles/w:style[@w:styleId='Calendar4']/w:tblStylePr[@w:type='firstCol']/w:pPr/w:ind", "rightChars", "0"); assertXPath(pXmlStyles, "/w:styles/w:style[@w:styleId='Calendar4']/w:tblStylePr[@w:type='firstCol']/w:pPr/w:ind", "right", "144"); + assertXPath(pXmlStyles, "/w:styles/w:style[@w:styleId='Calendar4']/w:tblStylePr[@w:type='band2Horz']/w:tcPr/w:tcMar/w:bottom", "w", "86"); } DECLARE_OOXML_TEST(testSmartart, "smartart.docx") diff --git a/sw/source/filter/ww8/docxtablestyleexport.cxx b/sw/source/filter/ww8/docxtablestyleexport.cxx index 8a1510d..4cc4174 100644 --- a/sw/source/filter/ww8/docxtablestyleexport.cxx +++ b/sw/source/filter/ww8/docxtablestyleexport.cxx @@ -71,12 +71,12 @@ DocxStringTokenMap const aTblCellMarTokens[] = { }; /// Export of w:tblCellMar in a table style. -void lcl_TableStyleTblCellMar(sax_fastparser::FSHelperPtr pSerializer, uno::Sequence<beans::PropertyValue>& rTblCellMar) +void lcl_TableStyleTblCellMar(sax_fastparser::FSHelperPtr pSerializer, uno::Sequence<beans::PropertyValue>& rTblCellMar, sal_Int32 nType = XML_tblCellMar) { if (!rTblCellMar.hasElements()) return; - pSerializer->startElementNS(XML_w, XML_tblCellMar, FSEND); + pSerializer->startElementNS(XML_w, nType, FSEND); for (sal_Int32 i = 0; i < rTblCellMar.getLength(); ++i) { if (sal_Int32 nToken = DocxStringGetToken(aTblCellMarTokens, rTblCellMar[i].Name)) @@ -88,7 +88,7 @@ void lcl_TableStyleTblCellMar(sax_fastparser::FSHelperPtr pSerializer, uno::Sequ FSEND); } } - pSerializer->endElementNS(XML_w, XML_tblCellMar); + pSerializer->endElementNS(XML_w, nType); } static DocxStringTokenMap const aTcBorderTokens[] = { @@ -448,7 +448,7 @@ void lcl_TableStyleTcPr(sax_fastparser::FSHelperPtr pSerializer, uno::Sequence<b pSerializer->startElementNS(XML_w, XML_tcPr, FSEND); - uno::Sequence<beans::PropertyValue> aShd, aTcBorders; + uno::Sequence<beans::PropertyValue> aShd, aTcBorders, aTcMar; OUString aVAlign; for (sal_Int32 i = 0; i < rTcPr.getLength(); ++i) { @@ -456,10 +456,13 @@ void lcl_TableStyleTcPr(sax_fastparser::FSHelperPtr pSerializer, uno::Sequence<b aShd = rTcPr[i].Value.get< uno::Sequence<beans::PropertyValue> >(); else if (rTcPr[i].Name == "tcBorders") aTcBorders = rTcPr[i].Value.get< uno::Sequence<beans::PropertyValue> >(); + else if (rTcPr[i].Name == "tcMar") + aTcMar = rTcPr[i].Value.get< uno::Sequence<beans::PropertyValue> >(); else if (rTcPr[i].Name == "vAlign") aVAlign = rTcPr[i].Value.get<OUString>(); } lcl_TableStyleTcBorders(pSerializer, aTcBorders); + lcl_TableStyleTblCellMar(pSerializer, aTcMar, XML_tcMar); lcl_TableStyleShd(pSerializer, aShd); if (!aVAlign.isEmpty()) pSerializer->singleElementNS(XML_w, XML_vAlign, diff --git a/writerfilter/source/dmapper/TablePropertiesHandler.cxx b/writerfilter/source/dmapper/TablePropertiesHandler.cxx index 824cd0b..6854f92 100644 --- a/writerfilter/source/dmapper/TablePropertiesHandler.cxx +++ b/writerfilter/source/dmapper/TablePropertiesHandler.cxx @@ -211,12 +211,17 @@ namespace dmapper { } break; case NS_ooxml::LN_CT_TcPrBase_tcMar: + // { writerfilter::Reference<Properties>::Pointer_t pProperties = rSprm.getProps(); if (pProperties.get()) { CellMarginHandlerPtr pCellMarginHandler(new CellMarginHandler); + if (m_pCurrentInteropGrabBag) + pCellMarginHandler->enableInteropGrabBag("tcMar"); pProperties->resolve(*pCellMarginHandler); + if (m_pCurrentInteropGrabBag) + m_pCurrentInteropGrabBag->push_back(pCellMarginHandler->getInteropGrabBag()); TablePropertyMapPtr pCellProperties(new TablePropertyMap); if (pCellMarginHandler->m_bTopMarginValid) pCellProperties->Insert(PROP_TOP_BORDER_DISTANCE, uno::makeAny(pCellMarginHandler->m_nTopMargin)); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits