[Libreoffice-commits] core.git: sw/qa writerfilter/source
Justin Luth (via logerrit)
logerrit at kemper.freedesktop.org
Wed Feb 5 08:08:48 UTC 2020
sw/qa/extras/ooxmlexport/data/testTdf130167_spilloverHeader.docx |binary
sw/qa/extras/ooxmlexport/ooxmlexport14.cxx | 9 +++++++++
writerfilter/source/dmapper/DomainMapper.cxx | 3 +++
3 files changed, 12 insertions(+)
New commits:
commit 6d9d4f94e9c0a94bf88d006ba8b157b4cabaeebc
Author: Justin Luth <jluth at mail.com>
AuthorDate: Mon Feb 3 21:41:03 2020 +0300
Commit: Miklos Vajna <vmiklos at collabora.com>
CommitDate: Wed Feb 5 09:08:13 2020 +0100
tdf#130167 writerfilter: while bDiscardHeaderFooter, ignore inlines
Inline objects from unused headers/footers were being loaded
and then ignored, with the result that they were added to the
next text section. Similar to git log -p -w 5510f5635021
An earlier commit attempted to do the same thing I think.
git log -p -w da0c3b50c7969
My guess is that in this case we have MULTIPLE uses of the
same image file, so ultimately it wasn't deleted from
DrawObjects - and therefore could still be referenced.
I found this fix by randomly trying to shut stuff off.
It seems to make sense, but shapes are not my area
of understanding.
Change-Id: I748c0e59638bb83de8461c498e1676bbae47df92
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87909
Tested-by: Jenkins
Reviewed-by: Justin Luth <justin_luth at sil.org>
Reviewed-by: Miklos Vajna <vmiklos at collabora.com>
diff --git a/sw/qa/extras/ooxmlexport/data/testTdf130167_spilloverHeader.docx b/sw/qa/extras/ooxmlexport/data/testTdf130167_spilloverHeader.docx
new file mode 100644
index 000000000000..6bcafa285f18
Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/testTdf130167_spilloverHeader.docx differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport14.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport14.cxx
index 1de85ff3ec83..d9d952bf5b4d 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport14.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport14.cxx
@@ -144,6 +144,15 @@ DECLARE_OOXMLEXPORT_TEST(testTdf129522_removeShadowStyle, "tdf129522_removeShado
CPPUNIT_ASSERT_EQUAL(table::ShadowLocation_NONE, aShadow.Location);
}
+DECLARE_OOXMLEXPORT_TEST(testTdf130167_spilloverHeaderShape, "testTdf130167_spilloverHeader.docx")
+{
+ uno::Reference<text::XTextGraphicObjectsSupplier> xTextGraphicObjectsSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XIndexAccess> xNameAccess(
+ xTextGraphicObjectsSupplier->getGraphicObjects(), uno::UNO_QUERY);
+ // graphics from discarded headers were being added to the text body. Reduced from 5 to 2 shapes overall.
+ CPPUNIT_ASSERT(xNameAccess->getCount() < 4);
+}
+
DECLARE_OOXMLIMPORT_TEST(testTdf125038, "tdf125038.docx")
{
OUString aActual = getParagraph(1)->getString();
diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx
index aa8e7f02d6b0..68179bf31f82 100644
--- a/writerfilter/source/dmapper/DomainMapper.cxx
+++ b/writerfilter/source/dmapper/DomainMapper.cxx
@@ -2236,6 +2236,9 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, const PropertyMapPtr& rContext )
case NS_ooxml::LN_anchor_anchor: // at_character drawing
case NS_ooxml::LN_inline_inline: // as_character drawing
{
+ if ( m_pImpl->IsDiscardHeaderFooter() )
+ break;
+
writerfilter::Reference<Properties>::Pointer_t pProperties = rSprm.getProps();
if( pProperties.get())
{
More information about the Libreoffice-commits
mailing list