[Libreoffice-commits] core.git: sw/qa sw/source
Justin Luth
justin_luth at sil.org
Mon Oct 10 06:31:15 UTC 2016
dev/null |binary
sw/qa/extras/ooxmlexport/data/inheritFirstHeader.docx |binary
sw/qa/extras/ooxmlexport/data/tdf95367_inheritFollowStyle.docx |binary
sw/qa/extras/ooxmlexport/ooxmlexport4.cxx | 28 ++++++++++
sw/qa/extras/ooxmlimport/ooxmlimport.cxx | 28 ----------
sw/source/filter/ww8/docxattributeoutput.cxx | 6 +-
sw/source/filter/ww8/docxexport.cxx | 4 +
sw/source/filter/ww8/wrtww8.cxx | 4 +
8 files changed, 39 insertions(+), 31 deletions(-)
New commits:
commit 7060c7b642fdc0a369505e430652ee44205e7eed
Author: Justin Luth <justin_luth at sil.org>
Date: Thu Oct 6 16:53:23 2016 +0300
tdf#95367 DOCX: allow r-t of changed first/follow sections
Change-Id: Ibb97411a7dfeebc3edbdd149842bfe626942cf7f
Reviewed-on: https://gerrit.libreoffice.org/29559
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
diff --git a/sw/qa/extras/ooxmlimport/data/inheritFirstHeader.docx b/sw/qa/extras/ooxmlexport/data/inheritFirstHeader.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/inheritFirstHeader.docx
rename to sw/qa/extras/ooxmlexport/data/inheritFirstHeader.docx
diff --git a/sw/qa/extras/ooxmlimport/data/tdf95367_inheritFollowStyle.docx b/sw/qa/extras/ooxmlexport/data/tdf95367_inheritFollowStyle.docx
similarity index 100%
rename from sw/qa/extras/ooxmlimport/data/tdf95367_inheritFollowStyle.docx
rename to sw/qa/extras/ooxmlexport/data/tdf95367_inheritFollowStyle.docx
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx
index 559c4a7..1a6c967 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx
@@ -1031,6 +1031,34 @@ DECLARE_OOXMLEXPORT_TEST(testTdf90697_continuousBreaksComplex2,"tdf92724_continu
}
}
+DECLARE_OOXMLEXPORT_TEST(testTdf95367_inheritFollowStyle, "tdf95367_inheritFollowStyle.docx")
+{
+ CPPUNIT_ASSERT_EQUAL(OUString("header"), parseDump("/root/page[2]/header/txt/text()"));
+}
+
+DECLARE_OOXMLEXPORT_TEST(testInheritFirstHeader,"inheritFirstHeader.docx")
+{
+// First page headers always link to last used first header, never to a follow header
+ uno::Reference<frame::XModel> xModel(mxComponent, uno::UNO_QUERY);
+ uno::Reference<text::XTextViewCursorSupplier> xTextViewCursorSupplier(xModel->getCurrentController(), uno::UNO_QUERY);
+ uno::Reference<text::XPageCursor> xCursor(xTextViewCursorSupplier->getViewCursor(), uno::UNO_QUERY);
+
+ xCursor->jumpToLastPage();
+ OUString sPageStyleName = getProperty<OUString>( xCursor, "PageStyleName" );
+ uno::Reference<text::XText> xHeaderText = getProperty< uno::Reference<text::XText> >(getStyles("PageStyles")->getByName(sPageStyleName), "HeaderText");
+ CPPUNIT_ASSERT_EQUAL( OUString("Last Header"), xHeaderText->getString() );
+
+ xCursor->jumpToPreviousPage();
+ sPageStyleName = getProperty<OUString>( xCursor, "PageStyleName" );
+ xHeaderText = getProperty< uno::Reference<text::XText> >(getStyles("PageStyles")->getByName(sPageStyleName), "HeaderText");
+ CPPUNIT_ASSERT_EQUAL( OUString("First Header"), xHeaderText->getString() );
+
+ xCursor->jumpToPreviousPage();
+ sPageStyleName = getProperty<OUString>( xCursor, "PageStyleName" );
+ xHeaderText = getProperty< uno::Reference<text::XText> >(getStyles("PageStyles")->getByName(sPageStyleName), "HeaderText");
+ CPPUNIT_ASSERT_EQUAL( OUString("Follow Header"), xHeaderText->getString() );
+}
+
DECLARE_OOXMLEXPORT_TEST(testTdf81345_045Original,"tdf81345.docx")
{
//Header wasn't replaced and columns were missing because no new style was created.
diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
index f42f1e6..912e01b 100644
--- a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
+++ b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
@@ -443,11 +443,6 @@ are on page 2 and page 3
CPPUNIT_ASSERT_EQUAL( OUString("two"), parseDump("/root/page[3]/body/txt/text()") );
}
-DECLARE_OOXMLIMPORT_TEST(testTdf95367_inheritFollowStyle, "tdf95367_inheritFollowStyle.docx")
-{
- CPPUNIT_ASSERT_EQUAL(OUString("header"), parseDump("/root/page[2]/header/txt/text()"));
-}
-
DECLARE_OOXMLIMPORT_TEST(testN652364, "n652364.docx")
{
/*
@@ -993,29 +988,6 @@ DECLARE_OOXMLIMPORT_TEST(testN780843b, "n780843b.docx")
CPPUNIT_ASSERT_EQUAL( OUString("hidden footer"), xFooterText->getString() );
}
-DECLARE_OOXMLIMPORT_TEST(testInheritFirstHeader,"inheritFirstHeader.docx")
-{
-// First page headers always link to last used first header, never to a follow header
- uno::Reference<frame::XModel> xModel(mxComponent, uno::UNO_QUERY);
- uno::Reference<text::XTextViewCursorSupplier> xTextViewCursorSupplier(xModel->getCurrentController(), uno::UNO_QUERY);
- uno::Reference<text::XPageCursor> xCursor(xTextViewCursorSupplier->getViewCursor(), uno::UNO_QUERY);
-
- xCursor->jumpToLastPage();
- OUString sPageStyleName = getProperty<OUString>( xCursor, "PageStyleName" );
- uno::Reference<text::XText> xHeaderText = getProperty< uno::Reference<text::XText> >(getStyles("PageStyles")->getByName(sPageStyleName), "HeaderText");
- CPPUNIT_ASSERT_EQUAL( OUString("Last Header"), xHeaderText->getString() );
-
- xCursor->jumpToPreviousPage();
- sPageStyleName = getProperty<OUString>( xCursor, "PageStyleName" );
- xHeaderText = getProperty< uno::Reference<text::XText> >(getStyles("PageStyles")->getByName(sPageStyleName), "HeaderText");
- CPPUNIT_ASSERT_EQUAL( OUString("First Header"), xHeaderText->getString() );
-
- xCursor->jumpToPreviousPage();
- sPageStyleName = getProperty<OUString>( xCursor, "PageStyleName" );
- xHeaderText = getProperty< uno::Reference<text::XText> >(getStyles("PageStyles")->getByName(sPageStyleName), "HeaderText");
- CPPUNIT_ASSERT_EQUAL( OUString("Follow Header"), xHeaderText->getString() );
-}
-
DECLARE_OOXMLIMPORT_TEST(testShadow, "imgshadow.docx")
{
/*
diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx
index 62e8e8f..582e8cd 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -821,13 +821,13 @@ void DocxAttributeOutput::SectionBreaks(const SwNode& rNode)
}
else if (rNode.IsEndNode())
{
- // End of something: make sure that it's the end of a table.
- assert(rNode.StartOfSectionNode()->IsTableNode());
if (aNextIndex.GetNode().IsTextNode())
{
// Handle section break between a table and a text node following it.
+ // Also handle section endings
const SwTextNode* pTextNode = aNextIndex.GetNode().GetTextNode();
- m_rExport.OutputSectionBreaks(pTextNode->GetpSwAttrSet(), *pTextNode, m_tableReference->m_bTableCellOpen, pTextNode->GetText().isEmpty());
+ if (rNode.StartOfSectionNode()->IsTableNode() || rNode.StartOfSectionNode()->IsSectionNode())
+ m_rExport.OutputSectionBreaks(pTextNode->GetpSwAttrSet(), *pTextNode, m_tableReference->m_bTableCellOpen, pTextNode->GetText().isEmpty());
}
}
}
diff --git a/sw/source/filter/ww8/docxexport.cxx b/sw/source/filter/ww8/docxexport.cxx
index e19cf19..05459de 100644
--- a/sw/source/filter/ww8/docxexport.cxx
+++ b/sw/source/filter/ww8/docxexport.cxx
@@ -509,6 +509,10 @@ void DocxExport::OutputEndNode( const SwEndNode& rEndNode )
AttrOutput().SectionBreak( msword::PageBreak, m_pSections->CurrentSectionInfo( ) );
m_pSections->AppendSection( m_pAktPageDesc, pParentFormat, nRstLnNum );
}
+ else
+ {
+ AttrOutput().SectionBreaks( rEndNode );
+ }
}
else if (TXT_MAINTEXT == m_nTextTyp && rEndNode.StartOfSectionNode()->IsTableNode())
// End node of a table: see if a section break should be written after the table.
diff --git a/sw/source/filter/ww8/wrtww8.cxx b/sw/source/filter/ww8/wrtww8.cxx
index 63324ec..224f961 100644
--- a/sw/source/filter/ww8/wrtww8.cxx
+++ b/sw/source/filter/ww8/wrtww8.cxx
@@ -2735,6 +2735,10 @@ void MSWordExportBase::WriteText()
AppendSection( m_pAktPageDesc, pParentFormat, nRstLnNum );
}
+ else
+ {
+ OutputEndNode( *rNd.GetEndNode() );
+ }
}
}
else if ( rNd.IsStartNode() )
More information about the Libreoffice-commits
mailing list