tdf#103931 DOCX import: fix lost section break
When there are multiple sections in a document, every <w:p> element triggers a handleLastParagraphInSection() call, and that's how the previous section is ended and the next one is started if necessary. In case the section contains no paragraphs at all, the section was lost on import. Fix this by also calling handleLastParagraphInSection() on <w:sectPr> as well. It's not a problem if there are both <w:p> and <w:sectPr> in a section (which is the usual situation) as only the first call closes the previous section / starts the next one. Change-Id: I64f2c403dcb2ceca76d444ab06df3052235d2795 Reviewed-on: https://gerrit.libreoffice.org/34715 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
This commit is contained in:
parent
14faa41beb
commit
6603947329
3 changed files with 9 additions and 0 deletions
BIN
sw/qa/extras/ooxmlexport/data/tdf103931.docx
Normal file
BIN
sw/qa/extras/ooxmlexport/data/tdf103931.docx
Normal file
Binary file not shown.
|
@ -231,6 +231,14 @@ DECLARE_OOXMLEXPORT_TEST(testTdf106001, "tdf106001.docx")
|
|||
CPPUNIT_ASSERT_EQUAL( static_cast<sal_Int16>( 100 ), getProperty<sal_Int16>(getRun(getParagraph(1), 1), "CharScaleWidth" ));
|
||||
}
|
||||
|
||||
DECLARE_OOXMLEXPORT_TEST(testTdf103931, "tdf103931.docx")
|
||||
{
|
||||
uno::Reference<text::XTextSectionsSupplier> xTextSectionsSupplier(mxComponent, uno::UNO_QUERY);
|
||||
uno::Reference<container::XIndexAccess> xTextSections(xTextSectionsSupplier->getTextSections(), uno::UNO_QUERY);
|
||||
// This was 2, the last (empty) section of the document was lost on import.
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(3), xTextSections->getCount());
|
||||
}
|
||||
|
||||
CPPUNIT_PLUGIN_IMPLEMENT();
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
||||
|
|
|
@ -17822,6 +17822,7 @@
|
|||
</resource>
|
||||
<resource name="CT_SectPrBase" resource="Properties"/>
|
||||
<resource name="CT_SectPr" resource="Properties">
|
||||
<action name="start" action="handleLastParagraphInSection"/>
|
||||
<element name="sectPrChange" tokenid="ooxml:CT_SectPr_sectPrChange"/>
|
||||
<action name="start" action="setLastParagraphInSection"/>
|
||||
</resource>
|
||||
|
|
Loading…
Reference in a new issue