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:
parent
57c6920fb0
commit
8a59f18b6e
3 changed files with 18 additions and 0 deletions
BIN
sw/qa/extras/ooxmlexport/data/tdf124399_SingleCellTableBorders.docx
Executable file
BIN
sw/qa/extras/ooxmlexport/data/tdf124399_SingleCellTableBorders.docx
Executable file
Binary file not shown.
|
@ -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: */
|
||||
|
|
|
@ -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!
|
||||
|
|
Loading…
Reference in a new issue