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

László Németh (via logerrit) logerrit at kemper.freedesktop.org
Fri Jan 17 11:35:33 UTC 2020


 sw/qa/extras/ooxmlexport/data/tdf88496.docx |binary
 sw/qa/extras/ooxmlexport/ooxmlexport11.cxx  |   10 ++++++++++
 sw/source/core/layout/tabfrm.cxx            |    7 ++++---
 3 files changed, 14 insertions(+), 3 deletions(-)

New commits:
commit f7e071a00542c414a7e9d7bcf4434d908f225e59
Author:     László Németh <nemeth at numbertext.org>
AuthorDate: Thu Jan 16 21:14:45 2020 +0100
Commit:     László Németh <nemeth at numbertext.org>
CommitDate: Fri Jan 17 12:34:57 2020 +0100

    tdf#88496 DOCX: disable long repeating table header
    
    if the pages could contain only that, hiding the
    non-repeating table rows. This behavior is similar
    to MSO.
    
    See also commit 110781a3a27dffe9e6690839bdce993796a08331
    (tdf#58944 DOCX import: workaround for hidden table headers).
    
    Change-Id: I646be45c6d2c5fe9e1df0badeee4583097dc79f1
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86928
    Reviewed-by: László Németh <nemeth at numbertext.org>
    Tested-by: László Németh <nemeth at numbertext.org>

diff --git a/sw/qa/extras/ooxmlexport/data/tdf88496.docx b/sw/qa/extras/ooxmlexport/data/tdf88496.docx
new file mode 100644
index 000000000000..b34f30389e2f
Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf88496.docx differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx
index 36b4a8331466..aa57c48f19e1 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport11.cxx
@@ -1021,6 +1021,16 @@ DECLARE_OOXMLEXPORT_EXPORTONLY_TEST(testTdf81100, "tdf81100.docx")
         assertXPath(pDump, "/root/page[3]/body/tab/row", 1);
 }
 
+DECLARE_OOXMLEXPORT_EXPORTONLY_TEST(testTdf88496, "tdf88496.docx")
+{
+    xmlDocPtr pXmlDoc = parseExport("word/styles.xml");
+    CPPUNIT_ASSERT(pXmlDoc);
+    // Switch off repeating header, there is no place for it.
+    // Now there are only 3 pages with complete table content
+    // instead of a 51-page long table only with header.
+    CPPUNIT_ASSERT_EQUAL(3, getPages());
+}
+
 DECLARE_OOXMLEXPORT_EXPORTONLY_TEST(testTdf121597TrackedDeletionOfMultipleParagraphs, "tdf121597.odt")
 {
     xmlDocPtr pXmlDoc = parseExport("word/document.xml");
diff --git a/sw/source/core/layout/tabfrm.cxx b/sw/source/core/layout/tabfrm.cxx
index 26d834113ee8..b3f4ffef0ab2 100644
--- a/sw/source/core/layout/tabfrm.cxx
+++ b/sw/source/core/layout/tabfrm.cxx
@@ -1074,10 +1074,11 @@ bool SwTabFrame::Split( const SwTwips nCutPos, bool bTryToSplit, bool bTableRowK
     if ( nRowCount < nRepeat )
     {
         // First case: One of the repeated headline does not fit to the page anymore.
-        // At least one more non-heading row has to stay in this table in
-        // order to avoid loops:
+        // tdf#88496 Disable repeated headline (like for #i44910#) to avoid loops and
+        // to fix interoperability problems (very long tables only with headline)
         OSL_ENSURE( !GetIndPrev(), "Table is supposed to be at beginning" );
-        bKeepNextRow = true;
+        m_pTable->SetRowsToRepeat(0);
+        return false;
     }
     else if ( !GetIndPrev() && nRepeat == nRowCount )
     {


More information about the Libreoffice-commits mailing list