sw/qa/extras/ooxmlimport/data/Table_cell_auto_width_fdo69656.docx |binary sw/qa/extras/ooxmlimport/ooxmlimport.cxx | 12 +++++++--- writerfilter/source/dmapper/DomainMapperTableManager.cxx | 11 +++++++-- 3 files changed, 18 insertions(+), 5 deletions(-)
New commits: commit 08ab57473236b0a34917d8c24c56f157e9ae5be6 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Thu Feb 13 10:20:54 2014 +0100 CppunitTest_sw_ooxmlimport: make this actually test something again Change-Id: I05d8b0dafcdea68d57137873ea52d4ab28a9b12b diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx index c9d578b..3b3a227 100644 --- a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx +++ b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx @@ -1339,11 +1339,10 @@ DECLARE_OOXMLIMPORT_TEST(testFdo65632, "fdo65632.docx") DECLARE_OOXMLIMPORT_TEST(testFdo66474, "fdo66474.docx") { - // The table wasn't relative (relative with was 0), so the table didn't - // take the full available width, like it would have to. + // The table width was too small, so the text in the second cell was unreadable: this was 1397. uno::Reference<text::XTextTablesSupplier> xTablesSupplier(mxComponent, uno::UNO_QUERY); uno::Reference<container::XIndexAccess> xTables(xTablesSupplier->getTextTables( ), uno::UNO_QUERY); - CPPUNIT_ASSERT_EQUAL(sal_Int16(0), getProperty<sal_Int16>(xTables->getByIndex(0), "RelativeWidth")); + CPPUNIT_ASSERT_EQUAL(sal_Int32(10492), getProperty<sal_Int32>(xTables->getByIndex(0), "Width")); } DECLARE_OOXMLIMPORT_TEST(testGroupshapeRotation, "groupshape-rotation.docx") commit 4d34d43b29be2b14a02b001b35fcde2459fb1993 Author: sushil_shinde <sushil.shi...@synerzip.com> Date: Wed Jan 22 17:10:11 2014 +0530 fdo#69656 table with auto-width and at least one column with auto-width. - In case of auto width of table and atleast one cell of table is auto width It was setting table width to 100% relative width. - hence it was causing rederening problem, table width was wrong while rendering. - Changed 100% hardcoded value, now setting total width of table as per grid values. - modified one UT since we no longer setting width of table to 100% default in case of 'auto' width. - Added one UT to check proper table width while importing. Conflicts: sw/qa/extras/ooxmlimport/ooxmlimport.cxx Reviewed on: https://gerrit.libreoffice.org/7593 Change-Id: Iae396c632eb1ef0c06efaa8c1965e4a68f12c6b1 diff --git a/sw/qa/extras/ooxmlimport/data/Table_cell_auto_width_fdo69656.docx b/sw/qa/extras/ooxmlimport/data/Table_cell_auto_width_fdo69656.docx new file mode 100644 index 0000000..10b8f9d Binary files /dev/null and b/sw/qa/extras/ooxmlimport/data/Table_cell_auto_width_fdo69656.docx differ diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx index f9a0240..c9d578b 100644 --- a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx +++ b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx @@ -1343,7 +1343,7 @@ DECLARE_OOXMLIMPORT_TEST(testFdo66474, "fdo66474.docx") // take the full available width, like it would have to. uno::Reference<text::XTextTablesSupplier> xTablesSupplier(mxComponent, uno::UNO_QUERY); uno::Reference<container::XIndexAccess> xTables(xTablesSupplier->getTextTables( ), uno::UNO_QUERY); - CPPUNIT_ASSERT_EQUAL(sal_Int16(100), getProperty<sal_Int16>(xTables->getByIndex(0), "RelativeWidth")); + CPPUNIT_ASSERT_EQUAL(sal_Int16(0), getProperty<sal_Int16>(xTables->getByIndex(0), "RelativeWidth")); } DECLARE_OOXMLIMPORT_TEST(testGroupshapeRotation, "groupshape-rotation.docx") @@ -1842,6 +1842,13 @@ DECLARE_OOXMLIMPORT_TEST(testPictureWithSchemeColor, "picture-with-schemecolor.d CPPUNIT_ASSERT_EQUAL( static_cast<sal_Int8>(110), aDIB[136] ); CPPUNIT_ASSERT_EQUAL( static_cast<sal_Int8>(49), aDIB[137] ); } + +DECLARE_OOXMLIMPORT_TEST(testFdo69656, "Table_cell_auto_width_fdo69656.docx") +{ + uno::Reference<text::XTextTablesSupplier> xTablesSupplier(mxComponent, uno::UNO_QUERY); + uno::Reference<container::XIndexAccess> xTables(xTablesSupplier->getTextTables( ), uno::UNO_QUERY); + CPPUNIT_ASSERT_EQUAL(sal_Int32(8154), getProperty<sal_Int32>(xTables->getByIndex(0), "Width")); +} #endif CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/writerfilter/source/dmapper/DomainMapperTableManager.cxx b/writerfilter/source/dmapper/DomainMapperTableManager.cxx index 2b66761..29d28b4 100644 --- a/writerfilter/source/dmapper/DomainMapperTableManager.cxx +++ b/writerfilter/source/dmapper/DomainMapperTableManager.cxx @@ -169,7 +169,7 @@ bool DomainMapperTableManager::sprm(Sprm & rSprm) { // Set the width type of table with 'Auto' and set the width value to 100(%) pPropMap->setValue( TablePropertyMap::TABLE_WIDTH_TYPE, text::SizeType::VARIABLE ); - pPropMap->setValue( TablePropertyMap::TABLE_WIDTH, 100 ); + pPropMap->setValue( TablePropertyMap::TABLE_WIDTH, 0 ); } } m_bTableSizeTypeInserted = true; @@ -667,7 +667,14 @@ void DomainMapperTableManager::endOfRowAction() { propMap->setValue( TablePropertyMap::TABLE_WIDTH, m_nTableWidth ); } - + if (nTableWidthType == text::SizeType::VARIABLE ) + { + if(nTableWidth > 100 || nTableWidth <= 0) + { + propMap->setValue( TablePropertyMap::TABLE_WIDTH, m_nTableWidth); + propMap->setValue( TablePropertyMap::TABLE_WIDTH_TYPE, text::SizeType::FIX); + } + } uno::Sequence< text::TableColumnSeparator > aSeparators( m_nCell.back( ) - 1 ); text::TableColumnSeparator* pSeparators = aSeparators.getArray(); sal_Int16 nLastRelPos = 0; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits