tdf#124399 DOCX import: don't apply inside borders to 1-cell tables

Extra cell borders appeared on the bottom, top, left or right
of the 1-cell tables when only the "inside borders" option was selected.
The extra borders were the ones that would normally have appeared as
inside borders if there were more than one cells in the table.

Change-Id: I05d5f2a5a0168989f220d20a95b6dacf5152f9f7
Reviewed-on: https://gerrit.libreoffice.org/82675
Reviewed-by: László Németh <nemeth@numbertext.org>
Tested-by: László Németh <nemeth@numbertext.org>
This commit is contained in:
Szabolcs Toth 2019-11-14 13:32:00 +01:00 committed by László Németh
parent 57c6920fb0
commit 8a59f18b6e
3 changed files with 18 additions and 0 deletions

View file

@ -1001,6 +1001,17 @@ DECLARE_OOXMLEXPORT_TEST(testFileOpenInputOutputError,"floatingtbl_with_formula.
assertXPathContent(pXmlDoc, "//w:tbl/w:tr/w:tc[2]/w:p/m:oMath/m:sSubSup/m:e/m:r/m:t", u"\u03C3");
}
DECLARE_OOXMLEXPORT_TEST(testSingleCellTableBorders, "tdf124399_SingleCellTableBorders.docx")
{
// tdf#124399: Extra borders on single cell tables fixed.
xmlDocPtr pXmlDocument = parseExport("word/document.xml");
if (!pXmlDocument)
return;
assertXPath(pXmlDocument, "/w:document/w:body/w:tbl/w:tr/w:tc/w:tcPr/w:tcBorders/w:top [@w:val = 'nil']", 1);
assertXPath(pXmlDocument, "/w:document/w:body/w:tbl/w:tr/w:tc/w:tcPr/w:tcBorders/w:bottom [@w:val = 'nil']", 1);
}
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */

View file

@ -823,6 +823,13 @@ CellPropertyValuesSeq_t DomainMapperTableHandler::endTableGetCellProperties(Tabl
TagLogger::getInstance().attribute("row", nRow);
#endif
// Do not apply horizontal and vertical borders to a one cell table.
if (m_aCellProperties.size() <= 1)
{
rInfo.pTableBorders->Erase(META_PROP_HORIZONTAL_BORDER);
rInfo.pTableBorders->Erase(META_PROP_VERTICAL_BORDER);
}
lcl_computeCellBorders( rInfo.pTableBorders, *aCellIterator, nCell, nRow, bIsEndCol, bIsEndRow );
//now set the default left+right border distance TODO: there's an sprm containing the default distance!