Kaydet (Commit) a895a27c authored tarafından Katarina Behrens's avatar Katarina Behrens Kaydeden (comit) Samuel Mehrbrodt

fdo#63483: support for modify passwd in Impress and Draw

iow, allow opening Impress and Draw ODF documents read-only

Change-Id: I379b9f92b9bfb20e99998177d9a5fae80069d98f
Reviewed-on: https://gerrit.libreoffice.org/11495Reviewed-by: 's avatarSamuel Mehrbrodt <s.mehrbrodt@gmail.com>
Tested-by: 's avatarSamuel Mehrbrodt <s.mehrbrodt@gmail.com>
üst 52b8b3d3
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 . * the License at http://www.apache.org/licenses/LICENSE-2.0 .
--> -->
<node oor:name="draw8" oor:op="replace"> <node oor:name="draw8" oor:op="replace">
<prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN DEFAULT PREFERRED ENCRYPTION</value></prop> <prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN DEFAULT PREFERRED ENCRYPTION PASSWORDTOMODIFY</value></prop>
<prop oor:name="UIComponent"/> <prop oor:name="UIComponent"/>
<prop oor:name="FilterService"/> <prop oor:name="FilterService"/>
<prop oor:name="UserData"><value>XML</value></prop> <prop oor:name="UserData"><value>XML</value></prop>
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 . * the License at http://www.apache.org/licenses/LICENSE-2.0 .
--> -->
<node oor:name="draw8_template" oor:op="replace"> <node oor:name="draw8_template" oor:op="replace">
<prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE TEMPLATEPATH OWN ENCRYPTION</value></prop> <prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE TEMPLATEPATH OWN ENCRYPTION PASSWORDTOMODIFY</value></prop>
<prop oor:name="UIComponent"/> <prop oor:name="UIComponent"/>
<prop oor:name="FilterService"/> <prop oor:name="FilterService"/>
<prop oor:name="UserData"><value>CXMLV</value></prop> <prop oor:name="UserData"><value>CXMLV</value></prop>
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 . * the License at http://www.apache.org/licenses/LICENSE-2.0 .
--> -->
<node oor:name="impress8" oor:op="replace"> <node oor:name="impress8" oor:op="replace">
<prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN DEFAULT PREFERRED ENCRYPTION</value></prop> <prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN DEFAULT PREFERRED ENCRYPTION PASSWORDTOMODIFY</value></prop>
<prop oor:name="UIComponent"/> <prop oor:name="UIComponent"/>
<prop oor:name="FilterService"/> <prop oor:name="FilterService"/>
<prop oor:name="UserData"><value>XML</value></prop> <prop oor:name="UserData"><value>XML</value></prop>
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 . * the License at http://www.apache.org/licenses/LICENSE-2.0 .
--> -->
<node oor:name="impress8_draw" oor:op="replace"> <node oor:name="impress8_draw" oor:op="replace">
<prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN ENCRYPTION</value></prop> <prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN ENCRYPTION PASSWORDTOMODIFY</value></prop>
<prop oor:name="UIComponent"/> <prop oor:name="UIComponent"/>
<prop oor:name="FilterService"/> <prop oor:name="FilterService"/>
<prop oor:name="UserData"><value>XML</value></prop> <prop oor:name="UserData"><value>XML</value></prop>
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 . * the License at http://www.apache.org/licenses/LICENSE-2.0 .
--> -->
<node oor:name="impress8_template" oor:op="replace"> <node oor:name="impress8_template" oor:op="replace">
<prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE TEMPLATEPATH OWN ENCRYPTION</value></prop> <prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE TEMPLATEPATH OWN ENCRYPTION PASSWORDTOMODIFY</value></prop>
<prop oor:name="UIComponent"/> <prop oor:name="UIComponent"/>
<prop oor:name="FilterService"/> <prop oor:name="FilterService"/>
<prop oor:name="UserData"><value>CXMLV</value></prop> <prop oor:name="UserData"><value>CXMLV</value></prop>
......
...@@ -139,7 +139,7 @@ enum SdDocumentSettingsPropertyHandles ...@@ -139,7 +139,7 @@ enum SdDocumentSettingsPropertyHandles
HANDLE_PRINTERNAME, HANDLE_PRINTERJOB, HANDLE_PARAGRAPHSUMMATION, HANDLE_CHARCOMPRESS, HANDLE_ASIANPUNCT, HANDLE_UPDATEFROMTEMPLATE, HANDLE_PRINTERNAME, HANDLE_PRINTERJOB, HANDLE_PARAGRAPHSUMMATION, HANDLE_CHARCOMPRESS, HANDLE_ASIANPUNCT, HANDLE_UPDATEFROMTEMPLATE,
HANDLE_PRINTER_INDEPENDENT_LAYOUT HANDLE_PRINTER_INDEPENDENT_LAYOUT
// #i33095# // #i33095#
,HANDLE_LOAD_READONLY, HANDLE_SAVE_VERSION ,HANDLE_LOAD_READONLY, HANDLE_MODIFY_PASSWD, HANDLE_SAVE_VERSION
,HANDLE_SLIDESPERHANDOUT, HANDLE_HANDOUTHORIZONTAL, HANDLE_EMBED_FONTS ,HANDLE_SLIDESPERHANDOUT, HANDLE_HANDOUTHORIZONTAL, HANDLE_EMBED_FONTS
}; };
...@@ -200,6 +200,7 @@ enum SdDocumentSettingsPropertyHandles ...@@ -200,6 +200,7 @@ enum SdDocumentSettingsPropertyHandles
{ OUString("PrinterIndependentLayout"),HANDLE_PRINTER_INDEPENDENT_LAYOUT,::cppu::UnoType<sal_Int16>::get(), 0, 0 }, { OUString("PrinterIndependentLayout"),HANDLE_PRINTER_INDEPENDENT_LAYOUT,::cppu::UnoType<sal_Int16>::get(), 0, 0 },
// --> #i33095# // --> #i33095#
{ OUString("LoadReadonly"), HANDLE_LOAD_READONLY, ::getBooleanCppuType(), 0, 0 }, { OUString("LoadReadonly"), HANDLE_LOAD_READONLY, ::getBooleanCppuType(), 0, 0 },
{ OUString("ModifyPasswordInfo"), HANDLE_MODIFY_PASSWD, ::getCppuType((uno::Sequence < beans::PropertyValue > *)0), 0, 0 },
{ OUString("SaveVersionOnClose"), HANDLE_SAVE_VERSION, ::getBooleanCppuType(), 0, 0 }, { OUString("SaveVersionOnClose"), HANDLE_SAVE_VERSION, ::getBooleanCppuType(), 0, 0 },
{ OUString("EmbedFonts"), HANDLE_EMBED_FONTS, ::getBooleanCppuType(), 0, 0 }, { OUString("EmbedFonts"), HANDLE_EMBED_FONTS, ::getBooleanCppuType(), 0, 0 },
{ OUString(), 0, css::uno::Type(), 0, 0 } { OUString(), 0, css::uno::Type(), 0, 0 }
...@@ -388,6 +389,10 @@ uno::Sequence<beans::PropertyValue> ...@@ -388,6 +389,10 @@ uno::Sequence<beans::PropertyValue>
return aRet; return aRet;
} }
// Most of the code reading/writing UNO document settings is the same in
// sd, sc and sw and it is mostly copy-pasted back and forth.
// TODO: Move _setPropertyValues and _getPropertyValues to some shared
// place, at least for the settings that are common to sd, sc and sw
void void
DocumentSettings::_setPropertyValues(const PropertyMapEntry** ppEntries, DocumentSettings::_setPropertyValues(const PropertyMapEntry** ppEntries,
const Any* pValues) const Any* pValues)
...@@ -898,6 +903,22 @@ throw (UnknownPropertyException, PropertyVetoException, ...@@ -898,6 +903,22 @@ throw (UnknownPropertyException, PropertyVetoException,
} }
break; break;
case HANDLE_MODIFY_PASSWD:
{
uno::Sequence< beans::PropertyValue > aInfo;
if ( !( *pValues >>= aInfo ) )
throw lang::IllegalArgumentException(
OUString( "Value of type Sequence<PropertyValue> expected!" ),
uno::Reference< uno::XInterface >(),
2 );
if ( !pDocSh->SetModifyPasswordInfo( aInfo ) )
throw beans::PropertyVetoException(
"The hash is not allowed to be changed now!" );
}
break;
case HANDLE_SAVE_VERSION: case HANDLE_SAVE_VERSION:
{ {
bool bNewValue = false; bool bNewValue = false;
...@@ -1149,6 +1170,12 @@ throw (UnknownPropertyException, WrappedTargetException, RuntimeException) ...@@ -1149,6 +1170,12 @@ throw (UnknownPropertyException, WrappedTargetException, RuntimeException)
} }
break; break;
case HANDLE_MODIFY_PASSWD:
{
*pValue <<= pDocSh->GetModifyPasswordInfo();
}
break;
case HANDLE_SAVE_VERSION: case HANDLE_SAVE_VERSION:
{ {
*pValue <<= pDocSh->IsSaveVersionOnClose(); *pValue <<= pDocSh->IsSaveVersionOnClose();
......
...@@ -95,6 +95,7 @@ void GraphicViewShell::InitInterface_Impl() ...@@ -95,6 +95,7 @@ void GraphicViewShell::InitInterface_Impl()
GetStaticInterface()->RegisterChildWindow(SID_NAVIGATOR, true); GetStaticInterface()->RegisterChildWindow(SID_NAVIGATOR, true);
GetStaticInterface()->RegisterChildWindow(SfxTemplateDialogWrapper::GetChildWindowId()); GetStaticInterface()->RegisterChildWindow(SfxTemplateDialogWrapper::GetChildWindowId());
GetStaticInterface()->RegisterChildWindow(SfxInfoBarContainerChild::GetChildWindowId());
GetStaticInterface()->RegisterChildWindow(SvxFontWorkChildWindow::GetChildWindowId()); GetStaticInterface()->RegisterChildWindow(SvxFontWorkChildWindow::GetChildWindowId());
GetStaticInterface()->RegisterChildWindow(SvxColorChildWindow::GetChildWindowId()); GetStaticInterface()->RegisterChildWindow(SvxColorChildWindow::GetChildWindowId());
GetStaticInterface()->RegisterChildWindow(Svx3DChildWindow::GetChildWindowId()); GetStaticInterface()->RegisterChildWindow(Svx3DChildWindow::GetChildWindowId());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment