Kaydet (Commit) 3f2774c7 authored tarafından Miklos Vajna's avatar Miklos Vajna

fdo#68787 DOCX export: handle zero width footnote separator

Change-Id: Ieb1d8d1f8609558b4af06630b603a51da3e665f4
üst 3a021c00
...@@ -115,6 +115,7 @@ public: ...@@ -115,6 +115,7 @@ public:
void testBnc834035(); void testBnc834035();
void testFdo68418(); void testFdo68418();
void testA4AndBorders(); void testA4AndBorders();
void testFdo68787();
CPPUNIT_TEST_SUITE(Test); CPPUNIT_TEST_SUITE(Test);
#if !defined(MACOSX) && !defined(WNT) #if !defined(MACOSX) && !defined(WNT)
...@@ -206,6 +207,7 @@ void Test::run() ...@@ -206,6 +207,7 @@ void Test::run()
{"bnc834035.odt", &Test::testBnc834035}, {"bnc834035.odt", &Test::testBnc834035},
{"fdo68418.docx", &Test::testFdo68418}, {"fdo68418.docx", &Test::testFdo68418},
{"a4andborders.docx", &Test::testA4AndBorders}, {"a4andborders.docx", &Test::testA4AndBorders},
{"fdo68787.docx", &Test::testFdo68787},
}; };
// Don't test the first import of these, for some reason those tests fail // Don't test the first import of these, for some reason those tests fail
const char* aBlacklist[] = { const char* aBlacklist[] = {
...@@ -1264,6 +1266,13 @@ void Test::testA4AndBorders() ...@@ -1264,6 +1266,13 @@ void Test::testA4AndBorders()
CPPUNIT_ASSERT_EQUAL_MESSAGE("Incorrect Page Height (mm)", sal_Int32(297), getProperty<sal_Int32>(xPageStyle, "Height") / 100); 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_TEST_SUITE_REGISTRATION(Test);
CPPUNIT_PLUGIN_IMPLEMENT(); CPPUNIT_PLUGIN_IMPLEMENT();
......
...@@ -131,7 +131,6 @@ public: ...@@ -131,7 +131,6 @@ public:
void testTableStyleParprop(); void testTableStyleParprop();
void testTablePagebreak(); void testTablePagebreak();
void testFdo68607(); void testFdo68607();
void testFdo68787();
CPPUNIT_TEST_SUITE(Test); CPPUNIT_TEST_SUITE(Test);
#if !defined(MACOSX) && !defined(WNT) #if !defined(MACOSX) && !defined(WNT)
...@@ -229,7 +228,6 @@ void Test::run() ...@@ -229,7 +228,6 @@ void Test::run()
{"table-style-parprop.docx", &Test::testTableStyleParprop}, {"table-style-parprop.docx", &Test::testTableStyleParprop},
{"table-pagebreak.docx", &Test::testTablePagebreak}, {"table-pagebreak.docx", &Test::testTablePagebreak},
{"fdo68607.docx", &Test::testFdo68607}, {"fdo68607.docx", &Test::testFdo68607},
{"fdo68787.docx", &Test::testFdo68787},
}; };
header(); header();
for (unsigned int i = 0; i < SAL_N_ELEMENTS(aMethods); ++i) for (unsigned int i = 0; i < SAL_N_ELEMENTS(aMethods); ++i)
...@@ -1542,13 +1540,6 @@ void Test::testFdo68607() ...@@ -1542,13 +1540,6 @@ void Test::testFdo68607()
CPPUNIT_ASSERT(getPages() > 1); 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_TEST_SUITE_REGISTRATION(Test);
CPPUNIT_PLUGIN_IMPLEMENT(); CPPUNIT_PLUGIN_IMPLEMENT();
......
...@@ -4340,7 +4340,17 @@ void DocxAttributeOutput::FootnotesEndnotes( bool bFootnotes ) ...@@ -4340,7 +4340,17 @@ void DocxAttributeOutput::FootnotesEndnotes( bool bFootnotes )
FSEND ); FSEND );
m_pSerializer->startElementNS( XML_w, XML_p, FSEND ); m_pSerializer->startElementNS( XML_w, XML_p, FSEND );
m_pSerializer->startElementNS( XML_w, XML_r, 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_r );
m_pSerializer->endElementNS( XML_w, XML_p ); m_pSerializer->endElementNS( XML_w, XML_p );
m_pSerializer->endElementNS( XML_w, nItem ); m_pSerializer->endElementNS( XML_w, nItem );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment