sw/qa/extras/uiwriter/data/autotext-dotm.dotm |binary sw/qa/extras/uiwriter/uiwriter.cxx | 18 ++++++++++++++++++ sw/source/filter/docx/swdocxreader.cxx | 7 ++++++- 3 files changed, 24 insertions(+), 1 deletion(-)
New commits: commit 3a654934be5581a22c50e72999ebf91ce37d0504 Author: Szymon KÅos <szymon.k...@collabora.com> Date: Thu May 4 11:57:20 2017 +0200 AutoText: fix dotm support + dotm files don't contain additional empty paragraphs at the end of AutoText entry + added test for dotm import Change-Id: I336145dcf8a5dd69aa9ed82318a0f05a6f62596c Reviewed-on: https://gerrit.libreoffice.org/37230 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Szymon KÅos <szymon.k...@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/37233 Tested-by: Szymon KÅos <szymon.k...@collabora.com> diff --git a/sw/qa/extras/uiwriter/data/autotext-dotm.dotm b/sw/qa/extras/uiwriter/data/autotext-dotm.dotm new file mode 100644 index 000000000000..4909296d2117 Binary files /dev/null and b/sw/qa/extras/uiwriter/data/autotext-dotm.dotm differ diff --git a/sw/qa/extras/uiwriter/uiwriter.cxx b/sw/qa/extras/uiwriter/uiwriter.cxx index 69b0a1eabeb3..e298c322f690 100644 --- a/sw/qa/extras/uiwriter/uiwriter.cxx +++ b/sw/qa/extras/uiwriter/uiwriter.cxx @@ -118,6 +118,7 @@ public: void testExportRTF(); void testDOCXAutoTextEmpty(); void testDOCXAutoTextMultiple(); + void testDOTMAutoText(); void testTdf67238(); void testFdo75110(); void testFdo75898(); @@ -237,6 +238,7 @@ public: CPPUNIT_TEST(testExportRTF); CPPUNIT_TEST(testDOCXAutoTextEmpty); CPPUNIT_TEST(testDOCXAutoTextMultiple); + CPPUNIT_TEST(testDOTMAutoText); CPPUNIT_TEST(testTdf67238); CPPUNIT_TEST(testFdo75110); CPPUNIT_TEST(testFdo75898); @@ -780,6 +782,22 @@ void SwUiWriterTest::testDOCXAutoTextMultiple() CPPUNIT_ASSERT_EQUAL(OUString("complex"), rLastNode.GetTextNode()->GetText()); } +void SwUiWriterTest::testDOTMAutoText() +{ + // this is dotm file difference is that in the dotm + // there are no empty paragraphs at the end of each entry + SwTextBlocks* pGlossary = readDOCXAutotext("autotext-dotm.dotm"); + + SwDoc* pDoc = pGlossary->GetDoc(); + CPPUNIT_ASSERT(pDoc != nullptr); + + // check if content is correct + SwNodeIndex aDocEnd(pDoc->GetNodes().GetEndOfContent()); + SwNodeIndex aStart(*aDocEnd.GetNode().StartOfSectionNode(), 1); + SwNode& rNode = aStart.GetNode(); + CPPUNIT_ASSERT_EQUAL(OUString("paragraph"), rNode.GetTextNode()->GetText()); +} + void SwUiWriterTest::testFdo74981() { // create a document with an input field diff --git a/sw/source/filter/docx/swdocxreader.cxx b/sw/source/filter/docx/swdocxreader.cxx index 7558b4dfba10..8939e4922b02 100644 --- a/sw/source/filter/docx/swdocxreader.cxx +++ b/sw/source/filter/docx/swdocxreader.cxx @@ -33,6 +33,7 @@ #include <ndtxt.hxx> #include <poolfmt.hxx> #include <svl/urihelper.hxx> +#include <doc.hxx> #include <swerror.h> #include <tools/ref.hxx> #include <unotxdoc.hxx> @@ -139,7 +140,11 @@ bool SwDOCXReader::MakeEntries( SwDoc *pD, SwTextBlocks &rBlocks ) aPam.SetMark(); { SwNodeIndex& rIdx = aPam.GetPoint()->nNode; - rIdx = aStart.GetNode().EndOfSectionIndex() - 2; + rIdx = aStart.GetNode().EndOfSectionIndex() - 1; + // don't add extra empty text node if exist (.dotx but not .dotm) + if( rIdx.GetNode().GetTextNode() && + rIdx.GetNode().GetTextNode()->GetText().isEmpty() ) + rIdx = aStart.GetNode().EndOfSectionIndex() - 2; if( ( nullptr == ( pCNd = rIdx.GetNode().GetContentNode() ) ) ) { ++rIdx;
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits