[Libreoffice-commits] core.git: sw/CppunitTest_sw_ooxmlimport2.mk sw/qa writerfilter/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Thu Feb 28 12:37:53 UTC 2019


 sw/CppunitTest_sw_ooxmlimport2.mk                 |    1 +
 sw/qa/extras/ooxmlimport/data/tdf121440.docx      |binary
 sw/qa/extras/ooxmlimport/ooxmlimport2.cxx         |   17 +++++++++++++++++
 writerfilter/source/dmapper/DomainMapper_Impl.cxx |    6 ++++++
 4 files changed, 24 insertions(+)

New commits:
commit 691ca4e1a3e510d54894a1e7df7fa4ad9f9cba11
Author:     Vasily Melenchuk <vasily.melenchuk at cib.de>
AuthorDate: Mon Feb 25 08:35:54 2019 +0300
Commit:     Thorsten Behrens <Thorsten.Behrens at CIB.de>
CommitDate: Thu Feb 28 13:37:24 2019 +0100

    tdf#121440 writerfilter: do not use imported style for foot/endnotes
    
    Extra style is causing editing problem near footnote/endnote
    references. This behavior is a side effect of
    eaa9cf6a3069fba3d82c046f0041bfb537d9e648, allowing emission
    of these "technical" styles.
    
    Change-Id: I1885b92814746e7b5cd19f3ddd7bc22eb691615e
    Reviewed-on: https://gerrit.libreoffice.org/68304
    Tested-by: Jenkins
    Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>

diff --git a/sw/CppunitTest_sw_ooxmlimport2.mk b/sw/CppunitTest_sw_ooxmlimport2.mk
index c269c7282028..1760b61e98b3 100644
--- a/sw/CppunitTest_sw_ooxmlimport2.mk
+++ b/sw/CppunitTest_sw_ooxmlimport2.mk
@@ -39,6 +39,7 @@ $(eval $(call gb_CppunitTest_use_externals,sw_ooxmlimport2,\
 $(eval $(call gb_CppunitTest_set_include,sw_ooxmlimport2,\
     -I$(SRCDIR)/sw/inc \
     -I$(SRCDIR)/sw/source/core/inc \
+    -I$(SRCDIR)/sw/source/uibase/inc \
     -I$(SRCDIR)/sw/qa/extras/inc \
     $$(INCLUDE) \
 ))
diff --git a/sw/qa/extras/ooxmlimport/data/tdf121440.docx b/sw/qa/extras/ooxmlimport/data/tdf121440.docx
new file mode 100644
index 000000000000..023599aec3ff
Binary files /dev/null and b/sw/qa/extras/ooxmlimport/data/tdf121440.docx differ
diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport2.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport2.cxx
index e29432694e9a..7a03744d46f2 100644
--- a/sw/qa/extras/ooxmlimport/ooxmlimport2.cxx
+++ b/sw/qa/extras/ooxmlimport/ooxmlimport2.cxx
@@ -17,6 +17,7 @@
 #endif
 
 #include <swmodeltestbase.hxx>
+#include <wrtsh.hxx>
 #include <com/sun/star/beans/XPropertySet.hpp>
 #include <com/sun/star/document/XEmbeddedObjectSupplier2.hpp>
 #include <com/sun/star/embed/Aspects.hpp>
@@ -306,6 +307,22 @@ DECLARE_OOXMLIMPORT_TEST(testTdf122224, "tdf122224.docx")
     CPPUNIT_ASSERT_EQUAL(OUString("2000"), xCell->getString());
 }
 
+DECLARE_OOXMLIMPORT_TEST(testTdf121440, "tdf121440.docx")
+{
+    // Insert some text in front of footnote
+    SwXTextDocument* pTextDoc = dynamic_cast<SwXTextDocument*>(mxComponent.get());
+    CPPUNIT_ASSERT(pTextDoc);
+    SwWrtShell* pWrtShell = pTextDoc->GetDocShell()->GetWrtShell();
+    SwRootFrame* pLayout(pWrtShell->GetLayout());
+    CPPUNIT_ASSERT(!pLayout->IsHideRedlines());
+    pWrtShell->Insert("test");
+
+    // Ensure that inserted text is not superscripted
+    CPPUNIT_ASSERT_EQUAL_MESSAGE(
+        "Inserted text should be not a superscript!", static_cast<sal_Int32>(0),
+        getProperty<sal_Int32>(getRun(getParagraph(1), 1), "CharEscapement"));
+}
+
 // tests should only be added to ooxmlIMPORT *if* they fail round-tripping in ooxmlEXPORT
 
 CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
index 2a1be9d95cfc..cc8f1c555621 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
@@ -2015,6 +2015,12 @@ void DomainMapper_Impl::PushFootOrEndnote( bool bIsFootnote )
         m_aRedlines.push(std::vector< RedlineParamsPtr >());
 
         PropertyMapPtr pTopContext = GetTopContext();
+
+        // Remove style reference, if any. This reference did appear here as a side effect of tdf#43017
+        // Seems it is not required by LO, but causes side effects during editing. So remove it
+        // for footnotes/endnotes to restore original LO behavior here.
+        pTopContext->Erase(PROP_CHAR_STYLE_NAME);
+
         uno::Reference< text::XText > xFootnoteText;
         if (GetTextFactory().is())
             xFootnoteText.set( GetTextFactory()->createInstance(


More information about the Libreoffice-commits mailing list