sw/qa/extras/htmlimport/data/table_border_1px.html | 22 ++++++++++++++ sw/qa/extras/htmlimport/htmlimport.cxx | 32 +++++++++++++++++++++ sw/source/filter/html/htmltab.cxx | 10 ------ 3 files changed, 55 insertions(+), 9 deletions(-)
New commits: commit 50a719755bf64fcfbd0ed490365baa8b84bab22b Author: Vasily Melenchuk <vasily.melenc...@cib.de> Date: Tue Jun 6 15:35:17 2017 +0300 Removed ancient hack, causing vertical table borders to disappear HTML tables with border="1" were parsed and displayed incorrectly: no vertical borders; invalid border width. Additional problem is in strange condition allowing setting right border. (cherry picked from commit f2d06eefa9f221bdd9212a28697d4d203d1f97f6) Change-Id: Ibe87e630ef9ef0a4352bbe659340f69c8ebc0d0d diff --git a/sw/qa/extras/htmlimport/data/table_border_1px.html b/sw/qa/extras/htmlimport/data/table_border_1px.html new file mode 100644 index 000000000000..6181aa0f82f2 --- /dev/null +++ b/sw/qa/extras/htmlimport/data/table_border_1px.html @@ -0,0 +1,22 @@ +<table border="1"> +<tr> +<td>Schlüssel</td> +<td>Name_des_Tests</td> +<td>3</td> +</tr> +<tr> +<td>Ãffnen der "Document Type" Maske</td> +<td>AF01.01</td> +<td>3</td> +</tr> +<tr> +<td>Ãffnen der "Document Type" Maske</td> +<td>Ãffnen der "Document Type" Maske</td> +<td>3</td> +</tr> +<tr> +<td>Ãffnen der "Document Type" Maske</td> +<td>Ãffnen der "Document Type" Maske</td> +<td>3</td> +</tr> +</table> \ No newline at end of file diff --git a/sw/qa/extras/htmlimport/htmlimport.cxx b/sw/qa/extras/htmlimport/htmlimport.cxx index 973b8304bda1..3f421814dec1 100644 --- a/sw/qa/extras/htmlimport/htmlimport.cxx +++ b/sw/qa/extras/htmlimport/htmlimport.cxx @@ -84,6 +84,38 @@ DECLARE_HTMLIMPORT_TEST(testInlinedImage, "inlined_image.html") } } +DECLARE_HTMLIMPORT_TEST(testTableBorder1px, "table_border_1px.html") +{ + uno::Reference<text::XTextTablesSupplier> xTablesSupplier(mxComponent, uno::UNO_QUERY); + uno::Reference<container::XIndexAccess> xTables(xTablesSupplier->getTextTables(), uno::UNO_QUERY); + CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xTables->getCount()); + uno::Reference<text::XTextTable> xTable(xTables->getByIndex(0), uno::UNO_QUERY); + + uno::Reference<text::XTextRange> xCellA1(xTable->getCellByName("A1"), uno::UNO_QUERY); + CPPUNIT_ASSERT_BORDER_EQUAL(table::BorderLine2(0x808080,9,9,9,3,26), getProperty<table::BorderLine2>(xCellA1,"TopBorder")); + CPPUNIT_ASSERT_BORDER_EQUAL(table::BorderLine2(0x808080,0,2,4,3,2), getProperty<table::BorderLine2>(xCellA1,"BottomBorder")); + CPPUNIT_ASSERT_BORDER_EQUAL(table::BorderLine2(0x808080,9,9,9,3,26), getProperty<table::BorderLine2>(xCellA1,"LeftBorder")); + CPPUNIT_ASSERT_BORDER_EQUAL(table::BorderLine2(0x808080,9,9,9,3,26), getProperty<table::BorderLine2>(xCellA1,"RightBorder")); + + uno::Reference<text::XTextRange> xCellB1(xTable->getCellByName("B1"), uno::UNO_QUERY); + CPPUNIT_ASSERT_BORDER_EQUAL(table::BorderLine2(0x808080,9,9,9,3,26), getProperty<table::BorderLine2>(xCellB1,"TopBorder")); + CPPUNIT_ASSERT_BORDER_EQUAL(table::BorderLine2(0x808080,0,2,4,3,2), getProperty<table::BorderLine2>(xCellB1,"BottomBorder")); + CPPUNIT_ASSERT_BORDER_EQUAL(table::BorderLine2(0x808080,0,2,4,3,2), getProperty<table::BorderLine2>(xCellB1,"LeftBorder")); + CPPUNIT_ASSERT_BORDER_EQUAL(table::BorderLine2(0x808080,9,9,9,3,26), getProperty<table::BorderLine2>(xCellB1,"RightBorder")); + + uno::Reference<text::XTextRange> xCellA2(xTable->getCellByName("A2"), uno::UNO_QUERY); + CPPUNIT_ASSERT_BORDER_EQUAL(table::BorderLine2(0x0,0,0,0,0,0), getProperty<table::BorderLine2>(xCellA2,"TopBorder")); + CPPUNIT_ASSERT_BORDER_EQUAL(table::BorderLine2(0x808080,0,2,4,3,2), getProperty<table::BorderLine2>(xCellA2,"BottomBorder")); + CPPUNIT_ASSERT_BORDER_EQUAL(table::BorderLine2(0x808080,9,9,9,3,26), getProperty<table::BorderLine2>(xCellA2,"LeftBorder")); + CPPUNIT_ASSERT_BORDER_EQUAL(table::BorderLine2(0x808080,9,9,9,3,26), getProperty<table::BorderLine2>(xCellA2,"RightBorder")); + + uno::Reference<text::XTextRange> xCellB2(xTable->getCellByName("B2"), uno::UNO_QUERY); + CPPUNIT_ASSERT_BORDER_EQUAL(table::BorderLine2(0x0,0,0,0,0,0), getProperty<table::BorderLine2>(xCellB2,"TopBorder")); + CPPUNIT_ASSERT_BORDER_EQUAL(table::BorderLine2(0x808080,0,2,4,3,2), getProperty<table::BorderLine2>(xCellB2,"BottomBorder")); + CPPUNIT_ASSERT_BORDER_EQUAL(table::BorderLine2(0x808080,0,2,4,3,2), getProperty<table::BorderLine2>(xCellB2,"LeftBorder")); + CPPUNIT_ASSERT_BORDER_EQUAL(table::BorderLine2(0x808080,9,9,9,3,26), getProperty<table::BorderLine2>(xCellB2,"RightBorder")); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/filter/html/htmltab.cxx b/sw/source/filter/html/htmltab.cxx index d7444f36c85b..d73358063f91 100644 --- a/sw/source/filter/html/htmltab.cxx +++ b/sw/source/filter/html/htmltab.cxx @@ -965,14 +965,6 @@ void HTMLTable::InitCtor( const HTMLTableOptions *pOptions ) if( nBorderOpt==USHRT_MAX ) nPWidth = 0; - // HACK: ein Pixel-breite Linien sollen zur Haarlinie werden, wenn - // wir mit doppelter Umrandung arbeiten - if( pOptions->nCellSpacing!=0 && nBorderOpt==1 ) - { - nPWidth = 1; - nPHeight = 1; - } - if ( pOptions->nCellSpacing != 0 ) { aTopBorderLine.SetBorderLineStyle(table::BorderLineStyle::DOUBLE); @@ -1455,7 +1447,7 @@ void HTMLTable::FixFrameFormat( SwTableBox *pBox, nInnerFrmWidth -= GetBorderWidth( rBorderLine ); bSet = true; } - if( nCol+nColSpan == nCols && bRightBorder ) + if( bRightBorder ) { aBoxItem.SetLine( &aRightBorderLine, SvxBoxItemLine::RIGHT ); nInnerFrmWidth -= GetBorderWidth( aRightBorderLine );
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits