/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed * with this work for additional information regarding copyright * ownership. The ASF licenses this file to you under the Apache * License, Version 2.0 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include "itemholder1.hxx" #include using namespace utl; using namespace com::sun::star::uno; class SvtSaveOptions_Impl; class SvtLoadOptions_Impl; #define CFG_READONLY_DEFAULT false struct SvtLoadSaveOptions_Impl { SvtSaveOptions_Impl* pSaveOpt; SvtLoadOptions_Impl* pLoadOpt; }; static SvtLoadSaveOptions_Impl* pOptions = NULL; static sal_Int32 nRefCount = 0; class SvtSaveOptions_Impl : public utl::ConfigItem { sal_Int32 nAutoSaveTime; bool bUseUserData, bBackup, bAutoSave, bAutoSavePrompt, bUserAutoSave, bDocInfSave, bSaveWorkingSet, bSaveDocView, bSaveRelINet, bSaveRelFSys, bSaveUnpacked, bDoPrettyPrinting, bWarnAlienFormat, bLoadDocPrinter, bUseSHA1InODF12, bUseBlowfishInODF12; SvtSaveOptions::ODFDefaultVersion eODFDefaultVersion; bool bROAutoSaveTime, bROUseUserData, bROBackup, bROAutoSave, bROAutoSavePrompt, bROUserAutoSave, bRODocInfSave, bROSaveWorkingSet, bROSaveDocView, bROSaveRelINet, bROSaveRelFSys, bROSaveUnpacked, bROWarnAlienFormat, bRODoPrettyPrinting, bROLoadDocPrinter, bROODFDefaultVersion, bROUseSHA1InODF12, bROUseBlowfishInODF12; virtual void ImplCommit() override; public: SvtSaveOptions_Impl(); virtual ~SvtSaveOptions_Impl(); virtual void Notify( const com::sun::star::uno::Sequence< OUString >& aPropertyNames ) override; sal_Int32 GetAutoSaveTime() const { return nAutoSaveTime; } bool IsUseUserData() const { return bUseUserData; } bool IsBackup() const { return bBackup; } bool IsAutoSave() const { return bAutoSave; } bool IsAutoSavePrompt() const { return bAutoSavePrompt; } bool IsUserAutoSave() const { return bUserAutoSave; } bool IsDocInfoSave() const { return bDocInfSave; } bool IsSaveWorkingSet() const { return bSaveWorkingSet; } bool IsSaveDocView() const { return bSaveDocView; } bool IsSaveRelINet() const { return bSaveRelINet; } bool IsSaveRelFSys() const { return bSaveRelFSys; } bool IsSaveUnpacked() const { return bSaveUnpacked; } bool IsPrettyPrintingEnabled( ) const { return bDoPrettyPrinting; } bool IsWarnAlienFormat() const { return bWarnAlienFormat; } bool IsLoadDocPrinter() const { return bLoadDocPrinter; } bool IsUseSHA1InODF12() const { return bUseSHA1InODF12; } bool IsUseBlowfishInODF12() const { return bUseBlowfishInODF12; } SvtSaveOptions::ODFDefaultVersion GetODFDefaultVersion() const { return eODFDefaultVersion; } void SetAutoSaveTime( sal_Int32 n ); void SetUseUserData( bool b ); void SetBackup( bool b ); void SetAutoSave( bool b ); void SetAutoSavePrompt( bool b ); void SetUserAutoSave( bool b ); void SetDocInfoSave( bool b ); void SetSaveWorkingSet( bool b ); void SetSaveDocView( bool b ); void SetSaveRelINet( bool b ); void SetSaveRelFSys( bool b ); void EnablePrettyPrinting( bool _bDoPP ); void SetWarnAlienFormat( bool _bDoPP ); void SetLoadDocPrinter( bool bNew ); void SetODFDefaultVersion( SvtSaveOptions::ODFDefaultVersion eNew ); bool IsReadOnly( SvtSaveOptions::EOption eOption ) const; }; void SvtSaveOptions_Impl::SetAutoSaveTime( sal_Int32 n ) { if (!bROAutoSaveTime && nAutoSaveTime!=n) { nAutoSaveTime = n; SetModified(); Commit(); } } void SvtSaveOptions_Impl::SetUseUserData( bool b ) { if (!bROUseUserData && bUseUserData!=b) { bUseUserData = b; SetModified(); } } void SvtSaveOptions_Impl::SetBackup( bool b ) { if (!bROBackup && bBackup!=b) { bBackup = b; SetModified(); } } void SvtSaveOptions_Impl::SetAutoSave( bool b ) { if (!bROAutoSave && bAutoSave!=b) { bAutoSave = b; SetModified(); Commit(); } } void SvtSaveOptions_Impl::SetAutoSavePrompt( bool b ) { if (!bROAutoSavePrompt && bAutoSavePrompt!=b) { bAutoSavePrompt = b; SetModified(); } } void SvtSaveOptions_Impl::SetUserAutoSave( bool b ) { if (!bROUserAutoSave && bUserAutoSave!=b) { bUserAutoSave = b; SetModified(); Commit(); } } void SvtSaveOptions_Impl::SetDocInfoSave(bool b) { if (!bRODocInfSave && bDocInfSave!=b) { bDocInfSave = b; SetModified(); } } void SvtSaveOptions_Impl::SetSaveWorkingSet( bool b ) { if (!bROSaveWorkingSet && bSaveWorkingSet!=b) { bSaveWorkingSet = b; SetModified(); } } void SvtSaveOptions_Impl::SetSaveDocView( bool b ) { if (!bROSaveDocView && bSaveDocView!=b) { bSaveDocView = b; SetModified(); } } void SvtSaveOptions_Impl::SetSaveRelINet( bool b ) { if (!bROSaveRelINet && bSaveRelINet!=b) { bSaveRelINet = b; SetModified(); } } void SvtSaveOptions_Impl::SetSaveRelFSys( bool b ) { if (!bROSaveRelFSys && bSaveRelFSys!=b) { bSaveRelFSys = b; SetModified(); } } void SvtSaveOptions_Impl::EnablePrettyPrinting( bool _bDoPP ) { if (!bRODoPrettyPrinting && bDoPrettyPrinting!=_bDoPP) { bDoPrettyPrinting = _bDoPP; SetModified(); } } void SvtSaveOptions_Impl::SetWarnAlienFormat( bool _bDoPP ) { if (!bROWarnAlienFormat && bWarnAlienFormat!=_bDoPP) { bWarnAlienFormat = _bDoPP; SetModified(); } } void SvtSaveOptions_Impl::SetLoadDocPrinter( bool bNew ) { if ( !bROLoadDocPrinter && bLoadDocPrinter != bNew ) { bLoadDocPrinter = bNew; SetModified(); } } void SvtSaveOptions_Impl::SetODFDefaultVersion( SvtSaveOptions::ODFDefaultVersion eNew ) { if ( !bROODFDefaultVersion && eODFDefaultVersion != eNew ) { eODFDefaultVersion = eNew; SetModified(); } } bool SvtSaveOptions_Impl::IsReadOnly( SvtSaveOptions::EOption eOption ) const { bool bReadOnly = CFG_READONLY_DEFAULT; switch(eOption) { case SvtSaveOptions::E_AUTOSAVETIME : bReadOnly = bROAutoSaveTime; break; case SvtSaveOptions::E_USEUSERDATA : bReadOnly = bROUseUserData; break; case SvtSaveOptions::E_BACKUP : bReadOnly = bROBackup; break; case SvtSaveOptions::E_AUTOSAVE : bReadOnly = bROAutoSave; break; case SvtSaveOptions::E_AUTOSAVEPROMPT : bReadOnly = bROAutoSavePrompt; break; case SvtSaveOptions::E_USERAUTOSAVE : bReadOnly = bROUserAutoSave; break; case SvtSaveOptions::E_DOCINFSAVE : bReadOnly = bRODocInfSave; break; case SvtSaveOptions::E_SAVEWORKINGSET : bReadOnly = bROSaveWorkingSet; break; case SvtSaveOptions::E_SAVEDOCVIEW : bReadOnly = bROSaveDocView; break; case SvtSaveOptions::E_SAVERELINET : bReadOnly = bROSaveRelINet; break; case SvtSaveOptions::E_SAVERELFSYS : bReadOnly = bROSaveRelFSys; break; case SvtSaveOptions::E_SAVEUNPACKED : bReadOnly = bROSaveUnpacked; break; case SvtSaveOptions::E_DOPRETTYPRINTING : bReadOnly = bRODoPrettyPrinting; break; case SvtSaveOptions::E_WARNALIENFORMAT : bReadOnly = bROWarnAlienFormat; break; case SvtSaveOptions::E_LOADDOCPRINTER : bReadOnly = bROLoadDocPrinter; break; case SvtSaveOptions::E_ODFDEFAULTVERSION : bReadOnly = bROLoadDocPrinter; break; case SvtSaveOptions::E_USESHA1INODF12: bReadOnly = bROUseSHA1InODF12; break; case SvtSaveOptions::E_USEBLOWFISHINODF12: bReadOnly = bROUseBlowfishInODF12; break; } return bReadOnly; } #define FORMAT 0 #define TIMEINTERVALL 1 #define USEUSERDATA 2 #define CREATEBACKUP 3 #define AUTOSAVE 4 #define PROMPT 5 #define EDITPROPERTY 6 #define SAVEVIEWINFO 7 #define UNPACKED 8 #define PRETTYPRINTING 9 #define WARNALIENFORMAT 10 #define LOADDOCPRINTER 11 #define FILESYSTEM 12 #define INTERNET 13 #define SAVEWORKINGSET 14 #define ODFDEFAULTVERSION 15 #define USESHA1INODF12 16 #define USEBLOWFISHINODF12 17 Sequence< OUString > GetPropertyNames() { static const char* aPropNames[] = { "Graphic/Format", "Document/AutoSaveTimeIntervall", "Document/UseUserData", "Document/CreateBackup", "Document/AutoSave", "Document/AutoSavePrompt", "Document/EditProperty", "Document/ViewInfo", "Document/Unpacked", "Document/PrettyPrinting", "Document/WarnAlienFormat", "Document/LoadPrinter", "URL/FileSystem", "URL/Internet", "WorkingSet", "ODF/DefaultVersion", "ODF/UseSHA1InODF12", "ODF/UseBlowfishInODF12" }; const int nCount = sizeof( aPropNames ) / sizeof( const char* ); Sequence< OUString > aNames( nCount ); OUString* pNames = aNames.getArray(); for ( int i = 0; i < nCount; i++ ) pNames[i] = OUString::createFromAscii( aPropNames[i] ); return aNames; } SvtSaveOptions_Impl::SvtSaveOptions_Impl() : ConfigItem( OUString("Office.Common/Save") ) , nAutoSaveTime( 0 ) , bUseUserData( false ) , bBackup( false ) , bAutoSave( false ) , bAutoSavePrompt( false ) , bUserAutoSave( false ) , bDocInfSave( false ) , bSaveWorkingSet( false ) , bSaveDocView( false ) , bSaveRelINet( false ) , bSaveRelFSys( false ) , bSaveUnpacked( false ) , bDoPrettyPrinting( false ) , bWarnAlienFormat( true ) , bLoadDocPrinter( true ) , bUseSHA1InODF12( false ) , bUseBlowfishInODF12( false ) , eODFDefaultVersion( SvtSaveOptions::ODFVER_LATEST ) , bROAutoSaveTime( CFG_READONLY_DEFAULT ) , bROUseUserData( CFG_READONLY_DEFAULT ) , bROBackup( CFG_READONLY_DEFAULT ) , bROAutoSave( CFG_READONLY_DEFAULT ) , bROAutoSavePrompt( CFG_READONLY_DEFAULT ) , bROUserAutoSave( CFG_READONLY_DEFAULT ) , bRODocInfSave( CFG_READONLY_DEFAULT ) , bROSaveWorkingSet( CFG_READONLY_DEFAULT ) , bROSaveDocView( CFG_READONLY_DEFAULT ) , bROSaveRelINet( CFG_READONLY_DEFAULT ) , bROSaveRelFSys( CFG_READONLY_DEFAULT ) , bROSaveUnpacked( CFG_READONLY_DEFAULT ) , bROWarnAlienFormat( CFG_READONLY_DEFAULT ) , bRODoPrettyPrinting( CFG_READONLY_DEFAULT ) , bROLoadDocPrinter( CFG_READONLY_DEFAULT ) , bROODFDefaultVersion( CFG_READONLY_DEFAULT ) , bROUseSHA1InODF12( CFG_READONLY_DEFAULT ) , bROUseBlowfishInODF12( CFG_READONLY_DEFAULT ) { Sequence< OUString > aNames = GetPropertyNames(); Sequence< Any > aValues = GetProperties( aNames ); Sequence< sal_Bool > aROStates = GetReadOnlyStates( aNames ); EnableNotification( aNames ); const Any* pValues = aValues.getConstArray(); const sal_Bool* pROStates = aROStates.getConstArray(); DBG_ASSERT( aValues.getLength() == aNames.getLength(), "GetProperties failed" ); DBG_ASSERT( aROStates.getLength() == aNames.getLength(), "GetReadOnlyStates failed" ); if ( aValues.getLength() == aNames.getLength() && aROStates.getLength() == aNames.getLength() ) { for ( int nProp = 0; nProp < aNames.getLength(); nProp++ ) { if ( pValues[nProp].hasValue() ) { sal_Int32 nTemp = 0; switch ( nProp ) { case FORMAT: // not supported anymore break; case TIMEINTERVALL : if ( pValues[nProp] >>= nTemp ) nAutoSaveTime = nTemp; else { OSL_FAIL( "Wrong Type!" ); }; bROAutoSaveTime = pROStates[nProp]; break; case ODFDEFAULTVERSION : { sal_Int16 nTmp = 0; if ( pValues[nProp] >>= nTmp ) { if( nTmp == 3 ) eODFDefaultVersion = SvtSaveOptions::ODFVER_LATEST; else eODFDefaultVersion = SvtSaveOptions::ODFDefaultVersion( nTmp ); } else { SAL_WARN( "unotools.config", "SvtSaveOptions_Impl::SvtSaveOptions_Impl(): Wrong Type!" ); }; bROODFDefaultVersion = pROStates[nProp]; break; } default: { bool bTemp = bool(); if ( pValues[nProp] >>= bTemp ) { switch ( nProp ) { case USEUSERDATA : bUseUserData = bTemp; bROUseUserData = pROStates[nProp]; break; case CREATEBACKUP : bBackup = bTemp; bROBackup = pROStates[nProp]; break; case AUTOSAVE : bAutoSave = bTemp; bROAutoSave = pROStates[nProp]; break; case PROMPT : bAutoSavePrompt = bTemp; bROAutoSavePrompt = pROStates[nProp]; break; case EDITPROPERTY : bDocInfSave = bTemp; bRODocInfSave = pROStates[nProp]; break; case SAVEWORKINGSET : bSaveWorkingSet = bTemp; bROSaveWorkingSet = pROStates[nProp]; break; case SAVEVIEWINFO : bSaveDocView = bTemp; bROSaveDocView = pROStates[nProp]; break; case FILESYSTEM : bSaveRelFSys = bTemp; bROSaveRelFSys = pROStates[nProp]; break; case INTERNET : bSaveRelINet = bTemp; bROSaveRelINet = pROStates[nProp]; break; case UNPACKED : bSaveUnpacked = bTemp; bROSaveUnpacked = pROStates[nProp]; break; case PRETTYPRINTING: bDoPrettyPrinting = bTemp; bRODoPrettyPrinting = pROStates[nProp]; break; case WARNALIENFORMAT: bWarnAlienFormat = bTemp; bROWarnAlienFormat = pROStates[nProp]; break; case LOADDOCPRINTER: bLoadDocPrinter = bTemp; bROLoadDocPrinter = pROStates[nProp]; break; case USESHA1INODF12: bUseSHA1InODF12 = bTemp; bROUseSHA1InODF12 = pROStates[nProp]; break; case USEBLOWFISHINODF12: bUseBlowfishInODF12 = bTemp; bROUseBlowfishInODF12 = pROStates[nProp]; break; default : SAL_WARN( "unotools.config", "invalid index to load a path" ); } } else { OSL_FAIL( "Wrong Type!" ); } } } } } } if (!utl::ConfigManager::IsAvoidConfig()) { bAutoSave = officecfg::Office::Recovery::AutoSave::Enabled::get(); nAutoSaveTime = officecfg::Office::Recovery::AutoSave::TimeIntervall::get(); bUserAutoSave = officecfg::Office::Recovery::AutoSave::UserAutoSaveEnabled::get(); } else { bAutoSave = false; nAutoSaveTime = 0; bUserAutoSave = false; } } SvtSaveOptions_Impl::~SvtSaveOptions_Impl() {} void SvtSaveOptions_Impl::ImplCommit() { Sequence< OUString > aOrgNames = GetPropertyNames(); OUString* pOrgNames = aOrgNames.getArray(); sal_Int32 nOrgCount = aOrgNames.getLength(); Sequence< OUString > aNames( nOrgCount ); Sequence< Any > aValues( nOrgCount ); OUString* pNames = aNames.getArray(); Any* pValues = aValues.getArray(); sal_Int32 nRealCount = 0; for (sal_Int32 i=0; i batch( comphelper::ConfigurationChanges::create()); officecfg::Office::Recovery::AutoSave::TimeIntervall::set(nAutoSaveTime, batch); officecfg::Office::Recovery::AutoSave::Enabled::set(bAutoSave, batch); officecfg::Office::Recovery::AutoSave::UserAutoSaveEnabled::set(bUserAutoSave, batch); batch->commit(); } void SvtSaveOptions_Impl::Notify( const Sequence& ) { } class SvtLoadOptions_Impl : public utl::ConfigItem { private: bool bLoadUserDefinedSettings; virtual void ImplCommit() override; public: SvtLoadOptions_Impl(); virtual ~SvtLoadOptions_Impl(); virtual void Notify( const com::sun::star::uno::Sequence< OUString >& aPropertyNames ) override; void SetLoadUserSettings(bool b){bLoadUserDefinedSettings = b; SetModified();} bool IsLoadUserSettings() const {return bLoadUserDefinedSettings;} }; const sal_Char cUserDefinedSettings[] = "UserDefinedSettings"; SvtLoadOptions_Impl::SvtLoadOptions_Impl() : ConfigItem( OUString("Office.Common/Load") ) , bLoadUserDefinedSettings( false ) { Sequence< OUString > aNames(1); aNames[0] = cUserDefinedSettings; Sequence< Any > aValues = GetProperties( aNames ); EnableNotification( aNames ); const Any* pValues = aValues.getConstArray(); DBG_ASSERT( aValues.getLength() == aNames.getLength(), "GetProperties failed" ); if (pValues[0].getValueTypeClass() == ::com::sun::star::uno::TypeClass_BOOLEAN) bLoadUserDefinedSettings = *static_cast(pValues[0].getValue()); } SvtLoadOptions_Impl::~SvtLoadOptions_Impl() { } void SvtLoadOptions_Impl::ImplCommit() { Sequence< OUString > aNames(1); aNames[0] = cUserDefinedSettings; Sequence< Any > aValues( 1 ); aValues[0].setValue(&bLoadUserDefinedSettings, cppu::UnoType::get()); PutProperties( aNames, aValues ); } void SvtLoadOptions_Impl::Notify( const Sequence& ) { SAL_WARN( "unotools.config", "properties have been changed" ); } namespace { class LocalSingleton : public rtl::Static< osl::Mutex, LocalSingleton > { }; } SvtSaveOptions::SvtSaveOptions() { // Global access, must be guarded (multithreading) ::osl::MutexGuard aGuard( LocalSingleton::get() ); if ( !pOptions ) { pOptions = new SvtLoadSaveOptions_Impl; pOptions->pSaveOpt = new SvtSaveOptions_Impl; pOptions->pLoadOpt = new SvtLoadOptions_Impl; ItemHolder1::holdConfigItem(E_SAVEOPTIONS); } ++nRefCount; pImp = pOptions; } SvtSaveOptions::~SvtSaveOptions() { // Global access, must be guarded (multithreading) ::osl::MutexGuard aGuard( LocalSingleton::get() ); if ( !--nRefCount ) { if ( pOptions->pSaveOpt->IsModified() ) pOptions->pSaveOpt->Commit(); if ( pOptions->pLoadOpt->IsModified() ) pOptions->pLoadOpt->Commit(); DELETEZ( pOptions->pLoadOpt ); DELETEZ( pOptions->pSaveOpt ); DELETEZ( pOptions ); } } void SvtSaveOptions::SetAutoSaveTime( sal_Int32 n ) { pImp->pSaveOpt->SetAutoSaveTime( n ); } sal_Int32 SvtSaveOptions::GetAutoSaveTime() const { return pImp->pSaveOpt->GetAutoSaveTime(); } void SvtSaveOptions::SetUseUserData( bool b ) { pImp->pSaveOpt->SetUseUserData( b ); } bool SvtSaveOptions::IsUseUserData() const { return pImp->pSaveOpt->IsUseUserData(); } void SvtSaveOptions::SetBackup( bool b ) { pImp->pSaveOpt->SetBackup( b ); } bool SvtSaveOptions::IsBackup() const { return pImp->pSaveOpt->IsBackup(); } void SvtSaveOptions::SetAutoSave( bool b ) { pImp->pSaveOpt->SetAutoSave( b ); } bool SvtSaveOptions::IsAutoSave() const { return pImp->pSaveOpt->IsAutoSave(); } void SvtSaveOptions::SetAutoSavePrompt( bool b ) { pImp->pSaveOpt->SetAutoSavePrompt( b ); } bool SvtSaveOptions::IsAutoSavePrompt() const { return pImp->pSaveOpt->IsAutoSavePrompt(); } void SvtSaveOptions::SetUserAutoSave( bool b ) { pImp->pSaveOpt->SetUserAutoSave( b ); } bool SvtSaveOptions::IsUserAutoSave() const { return pImp->pSaveOpt->IsUserAutoSave(); } void SvtSaveOptions::SetDocInfoSave(bool b) { pImp->pSaveOpt->SetDocInfoSave( b ); } bool SvtSaveOptions::IsDocInfoSave() const { return pImp->pSaveOpt->IsDocInfoSave(); } void SvtSaveOptions::SetSaveWorkingSet( bool b ) { pImp->pSaveOpt->SetSaveWorkingSet( b ); } bool SvtSaveOptions::IsSaveWorkingSet() const { return pImp->pSaveOpt->IsSaveWorkingSet(); } void SvtSaveOptions::SetSaveDocView( bool b ) { pImp->pSaveOpt->SetSaveDocView( b ); } bool SvtSaveOptions::IsSaveDocView() const { return pImp->pSaveOpt->IsSaveDocView(); } void SvtSaveOptions::SetSaveRelINet( bool b ) { pImp->pSaveOpt->SetSaveRelINet( b ); } bool SvtSaveOptions::IsSaveRelINet() const { return pImp->pSaveOpt->IsSaveRelINet(); } void SvtSaveOptions::SetSaveRelFSys( bool b ) { pImp->pSaveOpt->SetSaveRelFSys( b ); } bool SvtSaveOptions::IsSaveRelFSys() const { return pImp->pSaveOpt->IsSaveRelFSys(); } bool SvtSaveOptions::IsSaveUnpacked() const { return pImp->pSaveOpt->IsSaveUnpacked(); } void SvtSaveOptions::SetLoadUserSettings(bool b) { pImp->pLoadOpt->SetLoadUserSettings(b); } bool SvtSaveOptions::IsLoadUserSettings() const { return pImp->pLoadOpt->IsLoadUserSettings(); } void SvtSaveOptions::SetPrettyPrinting( bool _bEnable ) { pImp->pSaveOpt->EnablePrettyPrinting( _bEnable ); } bool SvtSaveOptions::IsPrettyPrinting() const { return pImp->pSaveOpt->IsPrettyPrintingEnabled(); } void SvtSaveOptions::SetWarnAlienFormat( bool _bEnable ) { pImp->pSaveOpt->SetWarnAlienFormat( _bEnable ); } bool SvtSaveOptions::IsWarnAlienFormat() const { return pImp->pSaveOpt->IsWarnAlienFormat(); } void SvtSaveOptions::SetLoadDocumentPrinter( bool _bEnable ) { pImp->pSaveOpt->SetLoadDocPrinter( _bEnable ); } bool SvtSaveOptions::IsLoadDocumentPrinter() const { return pImp->pSaveOpt->IsLoadDocPrinter(); } void SvtSaveOptions::SetODFDefaultVersion( SvtSaveOptions::ODFDefaultVersion eVersion ) { pImp->pSaveOpt->SetODFDefaultVersion( eVersion ); } SvtSaveOptions::ODFDefaultVersion SvtSaveOptions::GetODFDefaultVersion() const { return pImp->pSaveOpt->GetODFDefaultVersion(); } SvtSaveOptions::ODFSaneDefaultVersion SvtSaveOptions::GetODFSaneDefaultVersion() const { const ODFSaneDefaultVersion NOW_CURRENT_LATEST = ODFSVER_012_EXTENDED; switch (pImp->pSaveOpt->GetODFDefaultVersion()) { default: assert(!"map new ODFDefaultVersion to ODFSaneDefaultVersion"); break; case ODFVER_UNKNOWN: case ODFVER_LATEST: return NOW_CURRENT_LATEST; case ODFVER_010: return ODFSVER_010; case ODFVER_011: return ODFSVER_011; case ODFVER_012: return ODFSVER_012; case ODFVER_012_EXT_COMPAT: return ODFSVER_012_EXT_COMPAT; } return NOW_CURRENT_LATEST; } bool SvtSaveOptions::IsUseSHA1InODF12() const { return pImp->pSaveOpt->IsUseSHA1InODF12(); } bool SvtSaveOptions::IsUseBlowfishInODF12() const { return pImp->pSaveOpt->IsUseBlowfishInODF12(); } bool SvtSaveOptions::IsReadOnly( SvtSaveOptions::EOption eOption ) const { return pImp->pSaveOpt->IsReadOnly(eOption); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */