sw/qa/extras/ooxmlimport/data/test_extra_image.docx |binary sw/qa/extras/ooxmlimport/ooxmlimport.cxx | 8 ++++++++ writerfilter/source/dmapper/NumberingManager.cxx | 10 ++++++++++ 3 files changed, 18 insertions(+)
New commits: commit cebb4abec105c2576b065853eb48af9be1d9fde6 Author: Tushar Bende <tushar.be...@synerzip.com> Date: Fri Apr 11 22:47:33 2014 +0530 fdo#74652 : Extra image gets added to the document body after RT. Description: There was a problem for some documents, that when opened in LibreOffice extra image was getting added to the first page of the doc and same could be noticed even in RoundTripped doc. The root cause was if picture bullet is added to the doc and there is no <w:lvlPicBulletId> tag in <w:lvl> of <w:abstractNum> then removal of extra added graphic object from document body was getting missed because currently that is handled in ListsManager::lcl_sprm() inside "case NS_ooxml::LN_CT_Lvl_lvlPicBulletId". Checking if there is any remaining item in m_aNumPicBullets when LO hits the ListsManager destructor. If there is any calling dispose() for all of them. Change-Id: Ibfc3c93b68ff7d6ef0909fe789dda6db67ac11e2 Reviewed-on: https://gerrit.libreoffice.org/8940 Reviewed-by: Miklos Vajna <vmik...@collabora.co.uk> Tested-by: Miklos Vajna <vmik...@collabora.co.uk> diff --git a/sw/qa/extras/ooxmlimport/data/test_extra_image.docx b/sw/qa/extras/ooxmlimport/data/test_extra_image.docx new file mode 100644 index 0000000..cdb05af Binary files /dev/null and b/sw/qa/extras/ooxmlimport/data/test_extra_image.docx differ diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx index 8961eed..6e3388b 100644 --- a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx +++ b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx @@ -2011,6 +2011,14 @@ DECLARE_OOXMLIMPORT_TEST(testFdo38414, "fdo38414.docx" ) CPPUNIT_ASSERT_EQUAL( height3, height4 ); } +DECLARE_OOXMLIMPORT_TEST(test_extra_image, "test_extra_image.docx" ) +{ + // fdo#74652 Check there is no shape added to the doc during import + uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY); + uno::Reference<container::XIndexAccess> xDraws(xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY); + CPPUNIT_ASSERT_EQUAL(sal_Int32(0), xDraws->getCount()); +} + DECLARE_OOXMLIMPORT_TEST(testFdo74401, "fdo74401.docx") { uno::Reference<drawing::XShapes> xGroupShape(getShape(1), uno::UNO_QUERY); diff --git a/writerfilter/source/dmapper/NumberingManager.cxx b/writerfilter/source/dmapper/NumberingManager.cxx index da88e52..17e359e 100644 --- a/writerfilter/source/dmapper/NumberingManager.cxx +++ b/writerfilter/source/dmapper/NumberingManager.cxx @@ -710,6 +710,16 @@ ListsManager::ListsManager(DomainMapper& rDMapper, ListsManager::~ListsManager( ) { + uno::Reference<drawing::XShape> xShape; + for (std::vector<NumPicBullet::Pointer>::iterator it = m_aNumPicBullets.begin(); it != m_aNumPicBullets.end(); ++it) + { + xShape = (*it)->GetShape(); + if (xShape.is()) + { + uno::Reference<lang::XComponent> xShapeComponent(xShape, uno::UNO_QUERY); + xShapeComponent->dispose(); + } + } } void ListsManager::lcl_attribute( Id nName, Value& rVal ) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits