summaryrefslogtreecommitdiff
path: root/writerfilter
diff options
context:
space:
mode:
authorOliver Specht <oliver.specht@cib.de>2016-04-25 13:25:39 +0200
committerAndras Timar <andras.timar@collabora.com>2016-10-10 19:22:25 +0200
commit1e12fcfcdded86098b661bd391812eff86c79eed (patch)
tree627413cf48a7830b595c4f5ed896f72e193c9bcc /writerfilter
parent958ead3894877de753d1e163f96d3414883e6d42 (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.cxx3
-rw-r--r--writerfilter/source/dmapper/SettingsTable.cxx10
-rw-r--r--writerfilter/source/dmapper/SettingsTable.hxx1
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;