From f6a00c88482ec30b61855cb6a95a5ad240b7a517 Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Tue, 9 Jul 2013 11:29:33 +0200 Subject: fdo#66565 RTF import: don't produce cell widths smaller than MINLAY In case we have a table of a given width and the second (or later) row has fewer cells, we have to add a fake cell to such a row. However, it doesn't make sense to do this when the difference is only a few twips: we can't create such a small frame inside the cell later anyway. Regression from c3b0f13546b30e5db3aecd311c7178e4e0933208. Change-Id: Ibc0f02d4184b58bd423c3405e786e1ec25b9dd13 --- sw/qa/extras/rtfimport/data/fdo66565.rtf | 35 ++++++++++++++++++++++++++++++++ sw/qa/extras/rtfimport/rtfimport.cxx | 12 +++++++++++ 2 files changed, 47 insertions(+) create mode 100644 sw/qa/extras/rtfimport/data/fdo66565.rtf (limited to 'sw') diff --git a/sw/qa/extras/rtfimport/data/fdo66565.rtf b/sw/qa/extras/rtfimport/data/fdo66565.rtf new file mode 100644 index 000000000000..2169dc383e49 --- /dev/null +++ b/sw/qa/extras/rtfimport/data/fdo66565.rtf @@ -0,0 +1,35 @@ +{\rtf1\ansi\ansicpg1251\deflang1033 +\sectd\lndscpsxn\pgwsxn16840\pghsxn11907\marglsxn1133\margrsxn850\margtsxn850\margbsxn850\linex0\headery709\footery709\colsx709\endnhere\sectdefaultcl +{\trowd\trql\clbrdrt\brdrdb\brdrw10\clbrdrl\brdrdb\brdrw10\clbrdrr\brdrs\brdrw10\cellx453\clbrdrt\brdrdb\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx5039\clbrdrt\brdrdb\brdrw10\clbrdrb\brdrs\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx7420\clbrdrt\brdrdb\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx8162\clbrdrt\brdrdb\brdrw10\clbrdrb\brdrs\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx13717\clbrdrt\brdrdb\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx14227\clbrdrt\brdrdb\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrr\brdrdb\brdrw10\cellx14850 +\intbl +{\b\f0\fs16 A1 \cell} +{\b\f0\fs16 B1 \cell} +{\b\f0\fs16 C1 \cell} +{\b\f0\fs16 D1 \cell} +{\b\f0\fs16 E1 \cell} +{\b\f0\fs16 F1 \cell} +{\b\f0\fs16 G1 \cell} +{\row} +\trowd\trql\clbrdrb\brdrdb\brdrw10\clbrdrl\brdrdb\brdrw10\clbrdrr\brdrs\brdrw10\cellx453\clbrdrb\brdrdb\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx5039\clbrdrt\brdrs\brdrw10\clbrdrb\brdrdb\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx5832\clbrdrt\brdrs\brdrw10\clbrdrb\brdrdb\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx6625\clbrdrt\brdrs\brdrw10\clbrdrb\brdrdb\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx7418\clbrdrb\brdrdb\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx8160\clbrdrt\brdrs\brdrw10\clbrdrb\brdrdb\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx9123\clbrdrt\brdrs\brdrw10\clbrdrb\brdrdb\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx9633\clbrdrt\brdrs\brdrw10\clbrdrb\brdrdb\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx10143\clbrdrt\brdrs\brdrw10\clbrdrb\brdrdb\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx10653\clbrdrt\brdrs\brdrw10\clbrdrb\brdrdb\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx11163\clbrdrt\brdrs\brdrw10\clbrdrb\brdrdb\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx11673\clbrdrt\brdrs\brdrw10\clbrdrb\brdrdb\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx12183\clbrdrt\brdrs\brdrw10\clbrdrb\brdrdb\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx12693\clbrdrt\brdrs\brdrw10\clbrdrb\brdrdb\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx13203\clbrdrt\brdrs\brdrw10\clbrdrb\brdrdb\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx13713\clbrdrb\brdrdb\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrr\brdrs\brdrw10\cellx14223\clbrdrb\brdrdb\brdrw10\clbrdrl\brdrs\brdrw10\clbrdrr\brdrdb\brdrw10\cellx14846 +\intbl +{\b\f0\fs16 A2 \cell} +{\b\f0\fs16 B2 \cell} +{\b\f0\fs16 C2 \cell} +{\b\f0\fs16 D2 \cell} +{\b\f0\fs16 E2 \cell} +{\b\f0\fs16 F2 \cell} +{\b\f0\fs16 G2 \cell} +{\b\f0\fs16 H2 \cell} +{\b\f0\fs16 I2 \cell} +{\b\f0\fs16 J2 \cell} +{\b\f0\fs16 K2 \cell} +{\b\f0\fs16 L2 \cell} +{\b\f0\fs16 M2 \cell} +{\b\f0\fs16 N2 \cell} +{\b\f0\fs16 O2 \cell} +{\b\f0\fs16 P2 \cell} +{\b\f0\fs16 Q2 \cell} +{\b\f0\fs16 R2 \cell} +{\row} +\pard} +\par} diff --git a/sw/qa/extras/rtfimport/rtfimport.cxx b/sw/qa/extras/rtfimport/rtfimport.cxx index 3aa8d19e2109..bc8c7fc0f5d1 100644 --- a/sw/qa/extras/rtfimport/rtfimport.cxx +++ b/sw/qa/extras/rtfimport/rtfimport.cxx @@ -152,6 +152,7 @@ public: void testFdo47802(); void testFdo39001(); void testGroupshape(); + void testFdo66565(); CPPUNIT_TEST_SUITE(Test); #if !defined(MACOSX) && !defined(WNT) @@ -289,6 +290,7 @@ void Test::run() {"fdo47802.rtf", &Test::testFdo47802}, {"fdo39001.rtf", &Test::testFdo39001}, {"groupshape.rtf", &Test::testGroupshape}, + {"fdo66565.rtf", &Test::testFdo66565}, }; header(); for (unsigned int i = 0; i < SAL_N_ELEMENTS(aMethods); ++i) @@ -1407,6 +1409,16 @@ void Test::testGroupshape() CPPUNIT_ASSERT_EQUAL(sal_Int32(2), xGroupshape->getCount()); } +void Test::testFdo66565() +{ + uno::Reference xTextTablesSupplier(mxComponent, uno::UNO_QUERY); + uno::Reference xTables(xTextTablesSupplier->getTextTables(), uno::UNO_QUERY); + uno::Reference xTable(xTables->getByIndex(0), uno::UNO_QUERY); + // Cell width of A2 was 554, should be 453/14846*10000 + uno::Reference xTableRows(xTable->getRows(), uno::UNO_QUERY); + CPPUNIT_ASSERT_EQUAL(sal_Int16(304), getProperty< uno::Sequence >(xTableRows->getByIndex(1), "TableColumnSeparators")[0].Position); +} + CPPUNIT_TEST_SUITE_REGISTRATION(Test); CPPUNIT_PLUGIN_IMPLEMENT(); -- cgit