diff options
author | László Németh <nemeth@numbertext.org> | 2018-06-20 16:28:13 +0200 |
---|---|---|
committer | László Németh <nemeth@numbertext.org> | 2018-06-28 16:34:52 +0200 |
commit | 9a5c56a9c4e04589b0a6bb710573922e459d9685 (patch) | |
tree | ce22578a4ca4992bdf64c18f1012dd515540ebfa /sw | |
parent | 9c368751f6fbc50209e621182c3415ef4c4db29d (diff) |
tdf#107690 OOXML import/export of setting "Open as read-only"
Import custom document property _MarkAsFinal as LoadReadonly
setting, export LoadReadonly as _MarkAsFinal in DOCX, XLSX
and PPTX documents.
Before this fix, LibreOffice opened read-only OOXML documents
as editable, also saved and exported _MarkAsFinal=true silently,
resulting unintented read-only warning info bar in MSO.
This commit improves interoperability a lot, because this is a
basic document protection of MSO, recommended on its UI.
Note: LoadReadonly (on File->Properties...->Security, property
"Open file read-only") doesn't show "Edit read-only" info bar
from commit 630186ff4e0eba7317e542f8c3eca39ebd068721,
but it's still possible to switch on editing by Edit->Edit Mode.
MSO shows info bar for _MarkAsFinal. (There is an advantage to
hide the info bar in LibreOffice in a mixed environment,
to avoid overwriting of press-ready MSO files by LibreOffice.)
Note 2: Other differences of LoadReadonly in LO and _MarkAsFinal
in MSO: (1) Switching on editing doesn't remove the LoadReadonly
property automatically in LO. (2) Saving with LoadReadonly doesn't
switch off editing of the actual (still opened) document in LO.
Change-Id: Ie279c0670090d075103384cfa44ff1c2a2898216
Reviewed-on: https://gerrit.libreoffice.org/56180
Tested-by: Jenkins
Reviewed-by: László Németh <nemeth@numbertext.org>
Diffstat (limited to 'sw')
-rw-r--r-- | sw/source/filter/ww8/docxexport.cxx | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sw/source/filter/ww8/docxexport.cxx b/sw/source/filter/ww8/docxexport.cxx index 9355677fed3c..c3bf421ef793 100644 --- a/sw/source/filter/ww8/docxexport.cxx +++ b/sw/source/filter/ww8/docxexport.cxx @@ -886,14 +886,16 @@ void DocxExport::WriteProperties( ) // Write the core properties SwDocShell* pDocShell( m_pDoc->GetDocShell( ) ); uno::Reference<document::XDocumentProperties> xDocProps; + bool bSecurityOptOpenReadOnly = false; if ( pDocShell ) { uno::Reference<document::XDocumentPropertiesSupplier> xDPS( pDocShell->GetModel( ), uno::UNO_QUERY ); xDocProps = xDPS->getDocumentProperties(); + bSecurityOptOpenReadOnly = pDocShell->IsSecurityOptOpenReadOnly(); } - m_pFilter->exportDocumentProperties( xDocProps ); + m_pFilter->exportDocumentProperties( xDocProps, bSecurityOptOpenReadOnly ); } void DocxExport::WriteSettings() |