diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2017-02-21 09:06:20 +0100 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2017-02-24 12:24:44 +0100 |
commit | 39bbbe0cab4eb1b987683d9396b67d836acbd2d2 (patch) | |
tree | dafc03ae9696d1fc081ef0cac6acaef7fee8b073 /writerfilter | |
parent | 148ce37c2977fa71dbd0d10bf57332fc2d02b259 (diff) |
tdf#104081 RTF import: handle \htmautsp
It's the opposite of OOXML's <w:doNotUseHTMLParagraphAutoSpacing/>, so
the default is different.
Also adapt the fdo82006 bugdoc where the original bugdoc contained this
flag, but the testcase did not.
(cherry picked from commit 291c9122b23ce7aa619e828b895b08dcd21bf025)
Change-Id: I2fd757a8f95be9b1bee63570c9f587c17d3b22bc
Reviewed-on: https://gerrit.libreoffice.org/34568
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
(cherry picked from commit af9d9f274ff26b462048746069a5bb38493ff115)
Diffstat (limited to 'writerfilter')
-rw-r--r-- | writerfilter/source/dmapper/DomainMapper_Impl.hxx | 2 | ||||
-rw-r--r-- | writerfilter/source/dmapper/SettingsTable.cxx | 7 | ||||
-rw-r--r-- | writerfilter/source/dmapper/SettingsTable.hxx | 2 | ||||
-rw-r--r-- | writerfilter/source/rtftok/rtfdispatchflag.cxx | 3 |
4 files changed, 10 insertions, 4 deletions
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.hxx b/writerfilter/source/dmapper/DomainMapper_Impl.hxx index 9e4ca9a1e9f2..8540dd1943a0 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.hxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.hxx @@ -596,7 +596,7 @@ public: SettingsTablePtr const & GetSettingsTable() { if( !m_pSettingsTable ) - m_pSettingsTable.reset( new SettingsTable ); + m_pSettingsTable.reset(new SettingsTable(m_rDMapper)); return m_pSettingsTable; } diff --git a/writerfilter/source/dmapper/SettingsTable.cxx b/writerfilter/source/dmapper/SettingsTable.cxx index 8d7bace52257..9a52c416f029 100644 --- a/writerfilter/source/dmapper/SettingsTable.cxx +++ b/writerfilter/source/dmapper/SettingsTable.cxx @@ -30,6 +30,7 @@ #include <comphelper/sequence.hxx> #include <ooxml/resourceids.hxx> #include <ConversionHelper.hxx> +#include <DomainMapper.hxx> #include "util.hxx" using namespace com::sun::star; @@ -99,12 +100,14 @@ struct SettingsTable_Impl }; -SettingsTable::SettingsTable() +SettingsTable::SettingsTable(const DomainMapper& rDomainMapper) : LoggedProperties("SettingsTable") , LoggedTable("SettingsTable") , m_pImpl( new SettingsTable_Impl ) { - + // HTML paragraph auto-spacing is opt-in for RTF, opt-out for OOXML. + if (rDomainMapper.IsRTFImport()) + m_pImpl->m_bDoNotUseHTMLParagraphAutoSpacing = true; } SettingsTable::~SettingsTable() diff --git a/writerfilter/source/dmapper/SettingsTable.hxx b/writerfilter/source/dmapper/SettingsTable.hxx index 6ef0a30a788c..75c0d76e490e 100644 --- a/writerfilter/source/dmapper/SettingsTable.hxx +++ b/writerfilter/source/dmapper/SettingsTable.hxx @@ -45,7 +45,7 @@ class SettingsTable : public LoggedProperties, public LoggedTable std::unique_ptr<SettingsTable_Impl> m_pImpl; public: - SettingsTable(); + SettingsTable(const DomainMapper& rDomainMapper); virtual ~SettingsTable() override; //returns default TabStop in 1/100th mm diff --git a/writerfilter/source/rtftok/rtfdispatchflag.cxx b/writerfilter/source/rtftok/rtfdispatchflag.cxx index b99876edbc19..18eac503c0eb 100644 --- a/writerfilter/source/rtftok/rtfdispatchflag.cxx +++ b/writerfilter/source/rtftok/rtfdispatchflag.cxx @@ -1069,6 +1069,9 @@ RTFError RTFDocumentImpl::dispatchFlag(RTFKeyword nKeyword) putNestedAttribute(m_aStates.top().aSectionSprms, NS_ooxml::LN_EG_SectPrContents_pgNumType, NS_ooxml::LN_CT_PageNumber_fmt, pIntValue); } break; + case RTF_HTMAUTSP: + m_aSettingsTableSprms.set(NS_ooxml::LN_CT_Compat_doNotUseHTMLParagraphAutoSpacing, std::make_shared<RTFValue>(0)); + break; default: { SAL_INFO("writerfilter", "TODO handle flag '" << keywordToString(nKeyword) << "'"); |