tdf#109228: FILESAVE: ODT: Anchor changed to 'to character' after RT
Ignore frames without names, becuase the code does not handle
them well. It does not affect those use case for which the
deduplication code was added.
Reviewed-on: https://gerrit.libreoffice.org/40222
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>
(cherry picked from commit 615c2a2c54d3e7aefb4986ae7d8de81a42022988)
Change-Id: I08ad062b8b11cc06323467329d8c4e97bc4932dd
Reviewed-on: https://gerrit.libreoffice.org/40232
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
diff --git a/sw/qa/extras/odfimport/data/tdf109228.odt b/sw/qa/extras/odfimport/data/tdf109228.odt
new file mode 100755
index 0000000..0f3368e
--- /dev/null
+++ b/sw/qa/extras/odfimport/data/tdf109228.odt
Binary files differ
diff --git a/sw/qa/extras/odfimport/odfimport.cxx b/sw/qa/extras/odfimport/odfimport.cxx
index 2f1f122..2439334 100644
--- a/sw/qa/extras/odfimport/odfimport.cxx
+++ b/sw/qa/extras/odfimport/odfimport.cxx
@@ -831,5 +831,11 @@ DECLARE_ODFIMPORT_TEST(testTdf109080_style_ns, "tdf109080_style_ns.odt")
parseDump("/root/page[2]/footer/txt/text()"));
}
DECLARE_ODFIMPORT_TEST(testTdf109228, "tdf109228.odt")
{
// Embedded object with no frame name was imported incorrectly, it was achored 'to character' instead of 'as character'
CPPUNIT_ASSERT_EQUAL(text::TextContentAnchorType_AS_CHARACTER, getProperty<text::TextContentAnchorType>(getShape(1), "AnchorType"));
}
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/text/XMLTextFrameContext.cxx b/xmloff/source/text/XMLTextFrameContext.cxx
index ece946e..4876f75 100644
--- a/xmloff/source/text/XMLTextFrameContext.cxx
+++ b/xmloff/source/text/XMLTextFrameContext.cxx
@@ -526,6 +526,7 @@ void XMLTextFrameContext_Impl::Create()
// Skip duplicated frames
if(!mbMultipleContent && // It's allowed to have multiple image for the same frame
!sName.isEmpty() &&
xTextImportHelper->IsDuplicateFrame(sName, nX, nY, nWidth, nHeight))
{
bCreateFailed = true;