summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sw/qa/extras/rtfimport/data/footer-para.rtf5
-rw-r--r--sw/qa/extras/rtfimport/rtfimport.cxx14
-rw-r--r--writerfilter/source/rtftok/rtfdocumentimpl.cxx3
3 files changed, 21 insertions, 1 deletions
diff --git a/sw/qa/extras/rtfimport/data/footer-para.rtf b/sw/qa/extras/rtfimport/data/footer-para.rtf
new file mode 100644
index 000000000000..28863b202f17
--- /dev/null
+++ b/sw/qa/extras/rtfimport/data/footer-para.rtf
@@ -0,0 +1,5 @@
+{\rtf1\fbidis\ansi\ansicpg0\uc0\deff0\deflang0\deflangfe0\paperw11905\paperh16838\margl1200\margr1200\margt1200\margb1200\headery600\footery600\viewscale100\viewzk0\titlepg
+{\fonttbl{\f0\fnil Arial;}}
+{\footerf
+\pard\s0\fi0\li0\qc\ri0\sb0\sa0\itap0 \plain \f0\fs18 All Rights Reserved.\par}
+\pard\par}
diff --git a/sw/qa/extras/rtfimport/rtfimport.cxx b/sw/qa/extras/rtfimport/rtfimport.cxx
index 379475e84d9b..6010c7cea85b 100644
--- a/sw/qa/extras/rtfimport/rtfimport.cxx
+++ b/sw/qa/extras/rtfimport/rtfimport.cxx
@@ -1445,6 +1445,20 @@ DECLARE_RTFIMPORT_TEST(testContSectionPageBreak, "cont-section-pagebreak.rtf")
CPPUNIT_ASSERT_EQUAL(2, getPages());
}
+DECLARE_RTFIMPORT_TEST(testFooterPara, "footer-para.rtf")
+{
+ // check that paragraph properties in footer are imported
+ uno::Reference<text::XText> xFooterText =
+ getProperty< uno::Reference<text::XText> >(
+ getStyles("PageStyles")->getByName("First Page"), "FooterText");
+ uno::Reference<text::XTextContent> xParagraph =
+ getParagraphOrTable(1, xFooterText);
+ CPPUNIT_ASSERT_EQUAL(OUString("All Rights Reserved."),
+ uno::Reference<text::XTextRange>(xParagraph, uno::UNO_QUERY)->getString());
+ CPPUNIT_ASSERT_EQUAL((sal_Int16)style::ParagraphAdjust_CENTER,
+ getProperty</*style::ParagraphAdjust*/sal_Int16>(xParagraph, "ParaAdjust"));
+}
+
DECLARE_RTFIMPORT_TEST(testCp1000016, "hello.rtf")
{
// The single-line document had a second fake empty para on Windows.
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
index 38d427fb6ae3..746420228fbf 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
@@ -424,8 +424,9 @@ void RTFDocumentImpl::setNeedSect(bool bNeedSect)
if (!m_pSuperstream) // no sections in header/footer!
{
Mapper().startSectionGroup();
- m_bNeedSect = bNeedSect;
}
+ // set flag in substream too - otherwise multiple startParagraphGroup
+ m_bNeedSect = bNeedSect;
Mapper().startParagraphGroup();
setNeedPar(true);
}