summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSzabolcs Toth <szabolcs450@gmail.com>2019-12-17 16:06:30 +0100
committerMiklos Vajna <vmiklos@collabora.com>2021-03-04 18:25:08 +0100
commitb7b56492239d7ace4a9dce45aefbabfd00f0e7b8 (patch)
tree3a099d14aa1f6adb9bc41d6367590467899f9191
parenttdf#129442 DOCX import: fix right border of 1-column tables (diff)
downloadcore-b7b56492239d7ace4a9dce45aefbabfd00f0e7b8.tar.gz
core-b7b56492239d7ace4a9dce45aefbabfd00f0e7b8.zip
tdf#129450 DOCX import: fix bottom border of 1-row tables
Bottom border was missing in a 1-row table with disabled inside borders. This happened because LO applied the empty horizontal borders to the bottom border of the table. (cherry picked from commit 6b1bd2699b0bdad6dc42db741dea0717cf7c1d36) Conflicts: sw/qa/extras/ooxmlexport/ooxmlexport3.cxx Change-Id: I40140bf63297189edad13088f98fc5f869969c2d
-rw-r--r--sw/qa/extras/ooxmlexport/data/tdf129450_BottomBorder.docxbin0 -> 12195 bytes
-rw-r--r--sw/qa/extras/ooxmlexport/ooxmlexport3.cxx12
-rw-r--r--writerfilter/source/dmapper/DomainMapperTableHandler.cxx5
3 files changed, 17 insertions, 0 deletions
diff --git a/sw/qa/extras/ooxmlexport/data/tdf129450_BottomBorder.docx b/sw/qa/extras/ooxmlexport/data/tdf129450_BottomBorder.docx
new file mode 100644
index 000000000000..df00bfe04421
--- /dev/null
+++ b/sw/qa/extras/ooxmlexport/data/tdf129450_BottomBorder.docx
Binary files differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport3.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport3.cxx
index f965e21674b0..137cc4b8db66 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport3.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport3.cxx
@@ -1023,6 +1023,18 @@ DECLARE_OOXMLEXPORT_TEST(testRightBorder, "tdf129442_RightBorder.docx")
assertXPath(pXmlDocument, "/w:document/w:body/w:tbl/w:tr[1]/w:tc/w:tcPr/w:tcBorders/w:end [@w:val = 'nil']", 0);
}
+DECLARE_OOXMLEXPORT_TEST(testBottomBorder, "tdf129450_BottomBorder.docx")
+{
+ // tdf#129450: Missing bottom border in one row table.
+
+ xmlDocPtr pXmlDocument = parseExport("word/document.xml");
+ if (!pXmlDocument)
+ return;
+
+ // If there is no bottom border, it is shown in tcBorders.
+ assertXPath(pXmlDocument, "/w:document/w:body/w:tbl/w:tr/w:tc[1]/w:tcPr/w:tcBorders/w:bottom [@w:val = 'nil']", 0);
+}
+
#endif
CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/writerfilter/source/dmapper/DomainMapperTableHandler.cxx b/writerfilter/source/dmapper/DomainMapperTableHandler.cxx
index bad791b6af8e..f927cd1ab754 100644
--- a/writerfilter/source/dmapper/DomainMapperTableHandler.cxx
+++ b/writerfilter/source/dmapper/DomainMapperTableHandler.cxx
@@ -828,6 +828,11 @@ CellPropertyValuesSeq_t DomainMapperTableHandler::endTableGetCellProperties(Tabl
{
rInfo.pTableBorders->Erase(META_PROP_VERTICAL_BORDER);
}
+ // Do not apply horizontal borders to a one row table.
+ else if (m_aCellProperties.size() == 1 && aRowOfCellsIterator->size() > 1)
+ {
+ rInfo.pTableBorders->Erase(META_PROP_HORIZONTAL_BORDER);
+ }
lcl_computeCellBorders( rInfo.pTableBorders, *aCellIterator, nCell, nRow, bIsEndCol, bIsEndRow );