sw/qa/extras/ooxmlimport/data/fdo74357.docx |binary sw/qa/extras/ooxmlimport/ooxmlimport.cxx | 9 +++++++++ writerfilter/source/dmapper/DomainMapperTableHandler.cxx | 5 ++++- 3 files changed, 13 insertions(+), 1 deletion(-)
New commits: commit e5fd7c2dacf3c128cdc62622e736ce8abbc578a5 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Mon Feb 17 09:37:51 2014 +0100 fdo#74357 DOCX import: fix nested tables anchored inside tables Regression from bbef85c157169efa958ea1014d91d467cb243e6f (bnc#779620 DOCX import: try harder to convert floating tables to text frames, 2013-10-01), the conversion of nested tables is delayed by default till we know the page size. However, in case the anchor is in a table, we should convert it right away, because the conversion of the parent table would invalidate our XTextRange references. Change-Id: Id41556e721c6e1c7239e4ea25abd57c999d2219b diff --git a/sw/qa/extras/ooxmlimport/data/fdo74357.docx b/sw/qa/extras/ooxmlimport/data/fdo74357.docx new file mode 100644 index 0000000..9703729 Binary files /dev/null and b/sw/qa/extras/ooxmlimport/data/fdo74357.docx differ diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx index fb2904a..41089c9 100644 --- a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx +++ b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx @@ -745,6 +745,15 @@ DECLARE_OOXMLIMPORT_TEST(testN779627, "n779627.docx") CPPUNIT_ASSERT_EQUAL_MESSAGE("Not centered vertically relatively to page", text::RelOrientation::PAGE_FRAME, nValue); } +DECLARE_OOXMLIMPORT_TEST(testFdo74357, "fdo74357.docx") +{ + // Floating table wasn't converted to a textframe. + uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY); + uno::Reference<container::XIndexAccess> xDrawPage(xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY); + // This was 0. + CPPUNIT_ASSERT_EQUAL(sal_Int32(1), xDrawPage->getCount()); +} + DECLARE_OOXMLIMPORT_TEST(testFdo55187, "fdo55187.docx") { // 0x010d was imported as a newline. diff --git a/writerfilter/source/dmapper/DomainMapperTableHandler.cxx b/writerfilter/source/dmapper/DomainMapperTableHandler.cxx index 3bc66fa..ecacbcd 100644 --- a/writerfilter/source/dmapper/DomainMapperTableHandler.cxx +++ b/writerfilter/source/dmapper/DomainMapperTableHandler.cxx @@ -959,9 +959,12 @@ void DomainMapperTableHandler::endTable(unsigned int nestedTableLevel) // SectionPropertyMap::CloseSectionGroup(), so we'll have no idea // about the text area width, nor can fix this by delaying the text // frame conversion: just do it here. + // Also, we the anchor is within a table, then do it here as well, + // as xStart/xEnd would not point to the start/end at conversion + // time anyway. sal_Int32 nTableWidth = 0; m_aTableProperties->getValue(TablePropertyMap::TABLE_WIDTH, nTableWidth); - if (m_rDMapper_Impl.GetSectionContext()) + if (m_rDMapper_Impl.GetSectionContext() && nestedTableLevel <= 1) m_rDMapper_Impl.m_aPendingFloatingTables.push_back(FloatingTableInfo(xStart, xEnd, aFrameProperties, nTableWidth)); else m_xText->convertToTextFrame(xStart, xEnd, aFrameProperties); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits