diff options
author | Oliver Specht <oliver.specht@cib.de> | 2016-04-25 13:25:39 +0200 |
---|---|---|
committer | Oliver Specht <oliver.specht@cib.de> | 2016-04-29 06:12:55 +0000 |
commit | 523a3d18e98cd51aa8bf76cf76314a22ddc2b2cf (patch) | |
tree | 287df68a893b7f657cec9bee1147906a5c2b880b /writerfilter | |
parent | 16777b6bb0267c2b0602f1007a1e1fecac81329b (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>
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 e3cadff891f2..59526fda0d41 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -5028,10 +5028,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 7dbda3682011..a8889e1ce401 100644 --- a/writerfilter/source/dmapper/SettingsTable.cxx +++ b/writerfilter/source/dmapper/SettingsTable.cxx @@ -64,6 +64,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; @@ -88,6 +90,7 @@ struct SettingsTable_Impl , m_bWidowControl(false) , m_bSplitPgBreakAndParaMark(false) , m_bMirrorMargin(false) + , m_bProtectForm(false) , m_pThemeFontLangProps(3) , m_pCurrentCompatSetting(3) {} @@ -143,6 +146,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 @@ -340,6 +346,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 813f8dddeae0..648bf6d41b93 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; |