summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.com>2021-02-05 17:27:26 +0100
committerMiklos Vajna <vmiklos@collabora.com>2021-02-10 12:11:47 +0100
commit4165dd0f8acb3fe95542056f45e861f4a156807a (patch)
tree8d72e514607ff1eae09f754ea38c9b4338a74bb8 /sw
parent6afcf92af0b7589911eb011a373ea23970a481e6 (diff)
tdf#91920 sw page gutter margin, from top: add RTF export
The documentation for \gutterprl is "Parallel gutter.", but it seems that's what Word use to convert between RTF and DOCX's <w:gutterAtTop/>. (cherry picked from commit faf0635def4ef603563f7288cb29d24e3f2ce1e3) Change-Id: I06d80f234c6f52950db8a047bfc88910b808977d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110670 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Diffstat (limited to 'sw')
-rw-r--r--sw/qa/extras/rtfexport/data/gutter-top.rtf4
-rw-r--r--sw/qa/extras/rtfexport/rtfexport4.cxx14
-rw-r--r--sw/source/filter/ww8/rtfexport.cxx7
3 files changed, 25 insertions, 0 deletions
diff --git a/sw/qa/extras/rtfexport/data/gutter-top.rtf b/sw/qa/extras/rtfexport/data/gutter-top.rtf
new file mode 100644
index 000000000000..9c9a78ce2d03
--- /dev/null
+++ b/sw/qa/extras/rtfexport/data/gutter-top.rtf
@@ -0,0 +1,4 @@
+{\rtf1
+\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter720\gutterprl
+\pard\plain Half inch gutter on the top\par
+}
diff --git a/sw/qa/extras/rtfexport/rtfexport4.cxx b/sw/qa/extras/rtfexport/rtfexport4.cxx
index a1b5d5e599b8..c5159522f7e9 100644
--- a/sw/qa/extras/rtfexport/rtfexport4.cxx
+++ b/sw/qa/extras/rtfexport/rtfexport4.cxx
@@ -310,6 +310,20 @@ CPPUNIT_TEST_FIXTURE(Test, testGutterLeft)
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1270), nGutterMargin);
}
+CPPUNIT_TEST_FIXTURE(Test, testGutterTop)
+{
+ load(mpTestDocumentPath, "gutter-top.rtf");
+ reload(mpFilter, "gutter-left.rtf");
+ uno::Reference<lang::XMultiServiceFactory> xFactory(mxComponent, uno::UNO_QUERY);
+ uno::Reference<beans::XPropertySet> xSettings(
+ xFactory->createInstance("com.sun.star.document.Settings"), uno::UNO_QUERY);
+ bool bGutterAtTop{};
+ xSettings->getPropertyValue("GutterAtTop") >>= bGutterAtTop;
+ // Without the accompanying fix in place, this test would have failed, becase the gutter was
+ // at the left.
+ CPPUNIT_ASSERT(bGutterAtTop);
+}
+
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/filter/ww8/rtfexport.cxx b/sw/source/filter/ww8/rtfexport.cxx
index 81550b420f0f..58457aebda82 100644
--- a/sw/source/filter/ww8/rtfexport.cxx
+++ b/sw/source/filter/ww8/rtfexport.cxx
@@ -728,6 +728,13 @@ ErrCode RtfExport::ExportDocument_Impl()
// Mirror margins?
if ((UseOnPage::Mirror & m_pDoc->GetPageDesc(0).ReadUseOn()) == UseOnPage::Mirror)
Strm().WriteCharPtr(OOO_STRING_SVTOOLS_RTF_MARGMIRROR);
+
+ // Gutter at top?
+ if (m_pDoc->getIDocumentSettingAccess().get(DocumentSettingId::GUTTER_AT_TOP))
+ {
+ Strm().WriteCharPtr(LO_STRING_SVTOOLS_RTF_GUTTERPRL);
+ }
+
// Init sections
m_pSections = new MSWordSections(*this);