summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@suse.cz>2013-08-08 12:04:36 +0200
committerTor Lillqvist <tml@iki.fi>2013-08-09 09:52:24 +0000
commit032fcebe8db8ab0ad25153d1a62d43e56162f517 (patch)
treef05945af02e0e9222ddbd41132807849d89156f2 /sw
parent3d1576aa02dd638c252e5993e52c7de7833f9e10 (diff)
bnc#823651 WW8 import: fix paragraph style in empty first page header
The problem was that the first page SwFmtHeader / SwFmtFooter wasn't created in case the header/footer text was empty, even if fTitlePage was set. (cherry picked from commit 4bc063090c06f0c34980a3852f684b42ab25c501) Change-Id: I5e58419161bcc663e2beb0338b95877469e0fd3c Reviewed-on: https://gerrit.libreoffice.org/5314 Reviewed-by: Tor Lillqvist <tml@iki.fi> Tested-by: Tor Lillqvist <tml@iki.fi>
Diffstat (limited to 'sw')
-rwxr-xr-xsw/qa/extras/ww8import/data/n823651.docbin0 -> 30720 bytes
-rw-r--r--sw/qa/extras/ww8import/ww8import.cxx10
-rw-r--r--sw/source/filter/ww8/ww8par.cxx6
3 files changed, 14 insertions, 2 deletions
diff --git a/sw/qa/extras/ww8import/data/n823651.doc b/sw/qa/extras/ww8import/data/n823651.doc
new file mode 100755
index 000000000000..51b383c42d5d
--- /dev/null
+++ b/sw/qa/extras/ww8import/data/n823651.doc
Binary files differ
diff --git a/sw/qa/extras/ww8import/ww8import.cxx b/sw/qa/extras/ww8import/ww8import.cxx
index 0ded9f7714b9..ef68da693fed 100644
--- a/sw/qa/extras/ww8import/ww8import.cxx
+++ b/sw/qa/extras/ww8import/ww8import.cxx
@@ -35,6 +35,7 @@ public:
void testN816603();
void testN816593();
void testPageBorder();
+ void testN823651();
CPPUNIT_TEST_SUITE(Test);
#if !defined(MACOSX) && !defined(WNT)
@@ -61,6 +62,7 @@ void Test::run()
{"n816603.doc", &Test::testN816603},
{"n816593.doc", &Test::testN816593},
{"page-border.doc", &Test::testPageBorder},
+ {"n823651.doc", &Test::testN823651},
};
header();
for (unsigned int i = 0; i < SAL_N_ELEMENTS(aMethods); ++i)
@@ -282,6 +284,14 @@ void Test::testPageBorder()
CPPUNIT_ASSERT_EQUAL(sal_uInt32(TWIP_TO_MM100(6 * 20)), aBorder.LineWidth);
}
+void Test::testN823651()
+{
+ // Character height was 10pt instead of 7.5pt in the header.
+ uno::Reference<beans::XPropertySet> xStyle(getStyles("PageStyles")->getByName(DEFAULT_STYLE), uno::UNO_QUERY);
+ uno::Reference<text::XText> xText = getProperty< uno::Reference<text::XTextRange> >(xStyle, "HeaderTextFirst")->getText();
+ CPPUNIT_ASSERT_EQUAL(7.5f, getProperty<float>(getParagraphOfText(1, xText), "CharHeight"));
+}
+
CPPUNIT_TEST_SUITE_REGISTRATION(Test);
CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx
index 26c788924ca0..bf5bea0953b4 100644
--- a/sw/source/filter/ww8/ww8par.cxx
+++ b/sw/source/filter/ww8/ww8par.cxx
@@ -2005,6 +2005,8 @@ void SwWW8ImplReader::Read_HdFt(int nSect, const SwPageDesc *pPrev,
: pPD->GetMaster();
SwFrmFmt* pHdFtFmt;
+ // If we have empty first page header and footer.
+ bool bNoFirst = !(grpfIhdt & WW8_HEADER_FIRST) && !(grpfIhdt & WW8_FOOTER_FIRST);
if (bFooter)
{
bIsFooter = true;
@@ -2013,7 +2015,7 @@ void SwWW8ImplReader::Read_HdFt(int nSect, const SwPageDesc *pPrev,
pPD->GetMaster().SetFmtAttr(SwFmtFooter(true));
if (bUseLeft)
pPD->GetLeft().SetFmtAttr(SwFmtFooter(true));
- if (bUseFirst)
+ if (bUseFirst || (rSection.maSep.fTitlePage && bNoFirst))
pPD->GetFirst().SetFmtAttr(SwFmtFooter(true));
pHdFtFmt = const_cast<SwFrmFmt*>(rFmt.GetFooter().GetFooterFmt());
}
@@ -2025,7 +2027,7 @@ void SwWW8ImplReader::Read_HdFt(int nSect, const SwPageDesc *pPrev,
pPD->GetMaster().SetFmtAttr(SwFmtHeader(true));
if (bUseLeft)
pPD->GetLeft().SetFmtAttr(SwFmtHeader(true));
- if (bUseFirst)
+ if (bUseFirst || (rSection.maSep.fTitlePage && bNoFirst))
pPD->GetFirst().SetFmtAttr(SwFmtHeader(true));
pHdFtFmt = const_cast<SwFrmFmt*>(rFmt.GetHeader().GetHeaderFmt());
}