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

Miklos Vajna vmiklos at collabora.co.uk
Wed Sep 4 08:35:06 PDT 2013


 dev/null                                     |binary
 sw/qa/extras/ooxmlexport/data/fdo68787.docx  |binary
 sw/qa/extras/ooxmlexport/ooxmlexport.cxx     |    9 +++++++++
 sw/qa/extras/ooxmlimport/ooxmlimport.cxx     |    9 ---------
 sw/source/filter/ww8/docxattributeoutput.cxx |   12 +++++++++++-
 5 files changed, 20 insertions(+), 10 deletions(-)

New commits:
commit 3f2774c771fc54757364ed50fab9b4753d067371
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Wed Sep 4 17:19:47 2013 +0200

    fdo#68787 DOCX export: handle zero width footnote separator
    
    Change-Id: Ieb1d8d1f8609558b4af06630b603a51da3e665f4

diff --git a/sw/qa/extras/ooxmlimport/data/fdo68787.docx b/sw/qa/extras/ooxmlexport/data/fdo68787.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/fdo68787.docx
rename to sw/qa/extras/ooxmlexport/data/fdo68787.docx
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
index 1445ccc..5dc83f5 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
@@ -115,6 +115,7 @@ public:
     void testBnc834035();
     void testFdo68418();
     void testA4AndBorders();
+    void testFdo68787();
 
     CPPUNIT_TEST_SUITE(Test);
 #if !defined(MACOSX) && !defined(WNT)
@@ -206,6 +207,7 @@ void Test::run()
         {"bnc834035.odt", &Test::testBnc834035},
         {"fdo68418.docx", &Test::testFdo68418},
         {"a4andborders.docx", &Test::testA4AndBorders},
+        {"fdo68787.docx", &Test::testFdo68787},
     };
     // Don't test the first import of these, for some reason those tests fail
     const char* aBlacklist[] = {
@@ -1264,6 +1266,13 @@ void Test::testA4AndBorders()
     CPPUNIT_ASSERT_EQUAL_MESSAGE("Incorrect Page Height (mm)", sal_Int32(297), getProperty<sal_Int32>(xPageStyle, "Height") / 100);
 }
 
+void Test::testFdo68787()
+{
+    uno::Reference<beans::XPropertySet> xPageStyle(getStyles("PageStyles")->getByName(DEFAULT_STYLE), uno::UNO_QUERY);
+    // This was 25, the 'lack of w:separator' <-> '0 line width' mapping was missing.
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(0), getProperty<sal_Int32>(xPageStyle, "FootnoteLineRelativeWidth"));
+}
+
 CPPUNIT_TEST_SUITE_REGISTRATION(Test);
 
 CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
index bfae9a3..973f3b1 100644
--- a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
+++ b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
@@ -131,7 +131,6 @@ public:
     void testTableStyleParprop();
     void testTablePagebreak();
     void testFdo68607();
-    void testFdo68787();
 
     CPPUNIT_TEST_SUITE(Test);
 #if !defined(MACOSX) && !defined(WNT)
@@ -229,7 +228,6 @@ void Test::run()
         {"table-style-parprop.docx", &Test::testTableStyleParprop},
         {"table-pagebreak.docx", &Test::testTablePagebreak},
         {"fdo68607.docx", &Test::testFdo68607},
-        {"fdo68787.docx", &Test::testFdo68787},
     };
     header();
     for (unsigned int i = 0; i < SAL_N_ELEMENTS(aMethods); ++i)
@@ -1542,13 +1540,6 @@ void Test::testFdo68607()
     CPPUNIT_ASSERT(getPages() > 1);
 }
 
-void Test::testFdo68787()
-{
-    uno::Reference<beans::XPropertySet> xPageStyle(getStyles("PageStyles")->getByName(DEFAULT_STYLE), uno::UNO_QUERY);
-    // This was 25, the 'lack of w:separator' <-> '0 line width' mapping was missing.
-    CPPUNIT_ASSERT_EQUAL(sal_Int32(0), getProperty<sal_Int32>(xPageStyle, "FootnoteLineRelativeWidth"));
-}
-
 CPPUNIT_TEST_SUITE_REGISTRATION(Test);
 
 CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx
index 342bd75..7f08f58 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -4340,7 +4340,17 @@ void DocxAttributeOutput::FootnotesEndnotes( bool bFootnotes )
             FSEND );
     m_pSerializer->startElementNS( XML_w, XML_p, FSEND );
     m_pSerializer->startElementNS( XML_w, XML_r, FSEND );
-    m_pSerializer->singleElementNS( XML_w, XML_separator, FSEND );
+
+    bool bSeparator = true;
+    if (bFootnotes)
+    {
+        const SwPageFtnInfo& rFtnInfo = m_rExport.pDoc->GetPageDesc(0).GetFtnInfo();
+        // Request a separator only in case the width is larger than zero.
+        bSeparator = double(rFtnInfo.GetWidth()) > 0;
+    }
+
+    if (bSeparator)
+        m_pSerializer->singleElementNS( XML_w, XML_separator, FSEND );
     m_pSerializer->endElementNS( XML_w, XML_r );
     m_pSerializer->endElementNS( XML_w, XML_p );
     m_pSerializer->endElementNS( XML_w, nItem );


More information about the Libreoffice-commits mailing list