diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2015-07-06 09:23:40 +0200 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2015-07-08 11:46:16 +0000 |
commit | 16626008162545d3caec72fbffc4c19a79326a74 (patch) | |
tree | b4fa9d588eac512fb8a3c4802656920357895341 /sw | |
parent | 21d5e7bbb5ba986a3fd2b4194f83c18003fc3bac (diff) |
tdf#90611 DOCX import: fix missing paragraph style on footnotes
One one hand, a problem since commit
330b860205c7ba69dd6603f65324d0f89ad9cd5f (fdo#68787 DOCX import: handle
when w:separator is missing for footnotes, 2013-09-04) was that the type
attribute from <w:footnote w:type="separator"> resulted in two
ooxml:CT_FtnEdn_type tokens, ignoring too many paragraph ends for
footnotes, which resulted in missing paragraph style on footnotes.
On the other hand, fixing the first problem showed that it wasn't
correct that commit 9389cf78e304a5a99bcf1745b9388e14ac36281a (cp#1000018
RTF import: empty para at the end of footnote text got lost, 2013-11-15)
unconditionally removed the RemoveLastParagraph() call in
DomainMapper_Impl::PopFootOrEndnote(). It turns out that RTF and DOCX
have different semantics here, the footnote is always within a <p></p>
pair in DOCX, while in RTF a \par at the end of a
footnote means an empty paragraph. Fix that by conditionally restoring
the removed RemoveLastParagraph() call.
(cherry picked from commit 519b34300f73b1e08f6194d6ba49d4fc010cf186)
Change-Id: I33020ac761c94addfec8164a17863565e4453b07
Reviewed-on: https://gerrit.libreoffice.org/16810
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sw')
-rw-r--r-- | sw/qa/extras/ooxmlimport/data/tdf90611.docx | bin | 0 -> 14706 bytes | |||
-rw-r--r-- | sw/qa/extras/ooxmlimport/ooxmlimport.cxx | 10 |
2 files changed, 10 insertions, 0 deletions
diff --git a/sw/qa/extras/ooxmlimport/data/tdf90611.docx b/sw/qa/extras/ooxmlimport/data/tdf90611.docx Binary files differnew file mode 100644 index 000000000000..ac54feedd05f --- /dev/null +++ b/sw/qa/extras/ooxmlimport/data/tdf90611.docx diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx index d8cd372ef675..2bac72a10ed9 100644 --- a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx +++ b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx @@ -2725,6 +2725,16 @@ DECLARE_OOXMLIMPORT_TEST(testTdf87460, "tdf87460.docx") CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1), xEndnotes->getCount()); } +DECLARE_OOXMLIMPORT_TEST(testTdf90611, "tdf90611.docx") +{ + uno::Reference<text::XFootnotesSupplier> xFootnotesSupplier(mxComponent, uno::UNO_QUERY); + uno::Reference<container::XIndexAccess> xFootnotes(xFootnotesSupplier->getFootnotes(), uno::UNO_QUERY); + uno::Reference<text::XText> xFootnoteText; + xFootnotes->getByIndex(0) >>= xFootnoteText; + // This was 11. + CPPUNIT_ASSERT_EQUAL(10.f, getProperty<float>(getParagraphOfText(1, xFootnoteText), "CharHeight")); +} + #endif CPPUNIT_PLUGIN_IMPLEMENT(); |