diff options
author | Oliver Specht <oliver.specht@cib.de> | 2016-04-25 13:25:39 +0200 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2016-10-10 19:22:25 +0200 |
commit | 1e12fcfcdded86098b661bd391812eff86c79eed (patch) | |
tree | 627413cf48a7830b595c4f5ed896f72e193c9bcc /writerfilter | |
parent | 958ead3894877de753d1e163f96d3414883e6d42 (diff) |
tdf#99434: import/export documentProtection-forms from .docx incl. test
the setting <w:documentProtection w:edit="forms"> disables editing of content
outside of form controls.
Change-Id: I0d11373d9010778ed5798598020e453cde06fa0f
Reviewed-on: https://gerrit.libreoffice.org/24365
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Oliver Specht <oliver.specht@cib.de>
(cherry picked from commit 523a3d18e98cd51aa8bf76cf76314a22ddc2b2cf)
Diffstat (limited to 'writerfilter')
-rw-r--r-- | writerfilter/source/dmapper/DomainMapper_Impl.cxx | 3 | ||||
-rw-r--r-- | writerfilter/source/dmapper/SettingsTable.cxx | 10 | ||||
-rw-r--r-- | writerfilter/source/dmapper/SettingsTable.hxx | 1 |
3 files changed, 13 insertions, 1 deletions
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index e0dba9c8ab59..83f9d9c210a6 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -5042,10 +5042,11 @@ void DomainMapper_Impl::ApplySettingsTable() if( m_pSettingsTable->GetEmbedSystemFonts()) xSettings->setPropertyValue( getPropertyName( PROP_EMBED_SYSTEM_FONTS ), uno::makeAny(true) ); xSettings->setPropertyValue("AddParaTableSpacing", uno::makeAny(m_pSettingsTable->GetDoNotUseHTMLParagraphAutoSpacing())); - // Web Layout. if (m_pSettingsTable->GetView() == NS_ooxml::LN_Value_doc_ST_View_web) xSettings->setPropertyValue("InBrowseMode", uno::makeAny(true)); + if( m_pSettingsTable->GetProtectForm() ) + xSettings->setPropertyValue("ProtectForm", uno::makeAny( true )); } catch(const uno::Exception&) { diff --git a/writerfilter/source/dmapper/SettingsTable.cxx b/writerfilter/source/dmapper/SettingsTable.cxx index 6aae48da4da1..572ad4eb92a5 100644 --- a/writerfilter/source/dmapper/SettingsTable.cxx +++ b/writerfilter/source/dmapper/SettingsTable.cxx @@ -66,6 +66,8 @@ struct SettingsTable_Impl bool m_bWidowControl; bool m_bSplitPgBreakAndParaMark; bool m_bMirrorMargin; + bool m_bProtectForm; + uno::Sequence<beans::PropertyValue> m_pThemeFontLangProps; std::vector<beans::PropertyValue> m_aCompatSettings; @@ -91,6 +93,7 @@ struct SettingsTable_Impl , m_bWidowControl(false) , m_bSplitPgBreakAndParaMark(false) , m_bMirrorMargin(false) + , m_bProtectForm(false) , m_pThemeFontLangProps(3) , m_pCurrentCompatSetting(3) {} @@ -146,6 +149,9 @@ void SettingsTable::lcl_attribute(Id nName, Value & val) m_pImpl->m_pCurrentCompatSetting[2].Name = "val"; m_pImpl->m_pCurrentCompatSetting[2].Value <<= sStringValue; break; + case NS_ooxml::LN_CT_DocProtect_edit: + m_pImpl->m_bProtectForm = val.getInt() == NS_ooxml::LN_Value_doc_ST_DocProtect_forms; + break; default: { #ifdef DEBUG_WRITERFILTER @@ -343,6 +349,10 @@ bool SettingsTable::GetMirrorMarginSettings() const return m_pImpl->m_bMirrorMargin; } +bool SettingsTable::GetProtectForm() const +{ + return m_pImpl->m_bProtectForm; +} uno::Sequence<beans::PropertyValue> SettingsTable::GetThemeFontLangProperties() const { return m_pImpl->m_pThemeFontLangProps; diff --git a/writerfilter/source/dmapper/SettingsTable.hxx b/writerfilter/source/dmapper/SettingsTable.hxx index 5a0d6886b4c0..e0a000c26f08 100644 --- a/writerfilter/source/dmapper/SettingsTable.hxx +++ b/writerfilter/source/dmapper/SettingsTable.hxx @@ -71,6 +71,7 @@ class SettingsTable : public LoggedProperties, public LoggedTable bool GetSplitPgBreakAndParaMark() const; bool GetMirrorMarginSettings() const; bool GetNoColumnBalance() const; + bool GetProtectForm() const; css::uno::Sequence<css::beans::PropertyValue> GetThemeFontLangProperties() const; |