summaryrefslogtreecommitdiff
path: root/sdext/source/minimizer/configurationaccess.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sdext/source/minimizer/configurationaccess.cxx')
-rw-r--r--sdext/source/minimizer/configurationaccess.cxx541
1 files changed, 541 insertions, 0 deletions
diff --git a/sdext/source/minimizer/configurationaccess.cxx b/sdext/source/minimizer/configurationaccess.cxx
new file mode 100644
index 000000000000..449dfe79e702
--- /dev/null
+++ b/sdext/source/minimizer/configurationaccess.cxx
@@ -0,0 +1,541 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_sdext.hxx"
+
+#include "configurationaccess.hxx"
+#include <com/sun/star/frame/XComponentLoader.hpp>
+#include <com/sun/star/container/XHierarchicalNameAccess.hpp>
+#include <com/sun/star/util/XChangesBatch.hpp>
+#include <com/sun/star/container/XNameContainer.hpp>
+#include <com/sun/star/util/XMacroExpander.hpp>
+#include <com/sun/star/lang/XSingleServiceFactory.hpp>
+#include <sal/macros.h>
+
+using namespace ::rtl;
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::container;
+
+static const OUString& GetConfigurationProviderServiceName (void)
+{
+ static const OUString sConfigurationProviderServiceName (
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.configuration.ConfigurationProvider"));
+ return sConfigurationProviderServiceName;
+}
+static const OUString& GetPathToConfigurationRoot (void)
+{
+ static const OUString sPathToConfigurationRoot (
+ RTL_CONSTASCII_USTRINGPARAM("org.openoffice.Office.extension.SunPresentationMinimizer"));
+ return sPathToConfigurationRoot;
+}
+
+void OptimizerSettings::LoadSettingsFromConfiguration( const Reference< XNameAccess >& rSettings )
+{
+ if ( rSettings.is() )
+ {
+ const Sequence< OUString > aElements( rSettings->getElementNames() );
+ for ( int i = 0; i < aElements.getLength(); i++ )
+ {
+ try
+ {
+ const OUString aPropertyName( aElements[ i ] );
+ Any aValue( rSettings->getByName( aPropertyName ) );
+ switch( TKGet( aPropertyName ) )
+ {
+ case TK_Name : aValue >>= maName; break;
+ case TK_JPEGCompression : aValue >>= mbJPEGCompression; break;
+ case TK_JPEGQuality : aValue >>= mnJPEGQuality; break;
+ case TK_RemoveCropArea : aValue >>= mbRemoveCropArea; break;
+ case TK_ImageResolution : aValue >>= mnImageResolution; break;
+ case TK_EmbedLinkedGraphics : aValue >>= mbEmbedLinkedGraphics; break;
+ case TK_OLEOptimization : aValue >>= mbOLEOptimization; break;
+ case TK_OLEOptimizationType : aValue >>= mnOLEOptimizationType; break;
+ case TK_DeleteUnusedMasterPages : aValue >>= mbDeleteUnusedMasterPages; break;
+ case TK_DeleteHiddenSlides : aValue >>= mbDeleteHiddenSlides; break;
+ case TK_DeleteNotesPages : aValue >>= mbDeleteNotesPages ;break;
+ case TK_SaveAs : aValue >>= mbSaveAs; break;
+// case TK_SaveAsURL : aValue >>= maSaveAsURL; break; // URL is not saved to configuration
+// case TK_FilterName : aValue >>= maFilterName; break; // URL is not saved to configuration
+ case TK_OpenNewDocument : aValue >>= mbOpenNewDocument; break;
+ default: break;
+ }
+ }
+ catch( Exception& )
+ {
+ }
+ }
+ }
+}
+
+void OptimizerSettings::SaveSettingsToConfiguration( const Reference< XNameReplace >& rSettings )
+{
+ if ( rSettings.is() )
+ {
+ OUString pNames[] = {
+ TKGet( TK_Name ),
+ TKGet( TK_JPEGCompression ),
+ TKGet( TK_JPEGQuality ),
+ TKGet( TK_RemoveCropArea ),
+ TKGet( TK_ImageResolution ),
+ TKGet( TK_EmbedLinkedGraphics ),
+ TKGet( TK_OLEOptimization ),
+ TKGet( TK_OLEOptimizationType ),
+ TKGet( TK_DeleteUnusedMasterPages ),
+ TKGet( TK_DeleteHiddenSlides ),
+ TKGet( TK_DeleteNotesPages ),
+ TKGet( TK_SaveAs ),
+// TKGet( TK_SaveAsURL ),
+// TKGet( TK_FilterName ),
+ TKGet( TK_OpenNewDocument ) };
+
+ Any pValues[] = {
+ Any( maName ),
+ Any( mbJPEGCompression ),
+ Any( mnJPEGQuality ),
+ Any( mbRemoveCropArea ),
+ Any( mnImageResolution ),
+ Any( mbEmbedLinkedGraphics ),
+ Any( mbOLEOptimization ),
+ Any( mnOLEOptimizationType ),
+ Any( mbDeleteUnusedMasterPages ),
+ Any( mbDeleteHiddenSlides ),
+ Any( mbDeleteNotesPages ),
+ Any( mbSaveAs ),
+// Any( maSaveAsURL ),
+// Any( maFilterName ),
+ Any( mbOpenNewDocument ) };
+
+ sal_Int32 i, nCount = SAL_N_ELEMENTS( pNames );
+
+ for ( i = 0; i < nCount; i++ )
+ {
+ try
+ {
+ rSettings->replaceByName( pNames[ i ], pValues[ i ] );
+ }
+ catch( Exception& /* rException */ )
+ {
+ }
+ }
+ }
+}
+
+sal_Bool OptimizerSettings::operator==( const OptimizerSettings& rOptimizerSettings ) const
+{
+ return ( rOptimizerSettings.mbJPEGCompression == mbJPEGCompression )
+ && ( rOptimizerSettings.mnJPEGQuality == mnJPEGQuality )
+ && ( rOptimizerSettings.mbRemoveCropArea == mbRemoveCropArea )
+ && ( rOptimizerSettings.mnImageResolution == mnImageResolution )
+ && ( rOptimizerSettings.mbEmbedLinkedGraphics == mbEmbedLinkedGraphics )
+ && ( rOptimizerSettings.mbOLEOptimization == mbOLEOptimization )
+ && ( rOptimizerSettings.mnOLEOptimizationType == mnOLEOptimizationType )
+ && ( rOptimizerSettings.mbDeleteUnusedMasterPages == mbDeleteUnusedMasterPages )
+ && ( rOptimizerSettings.mbDeleteHiddenSlides == mbDeleteHiddenSlides )
+ && ( rOptimizerSettings.mbDeleteNotesPages == mbDeleteNotesPages );
+// && ( rOptimizerSettings.mbOpenNewDocument == mbOpenNewDocument );
+}
+
+
+ConfigurationAccess::ConfigurationAccess( const Reference< uno::XComponentContext >& rxMSF, OptimizerSettings* pDefaultSettings ) :
+ mxMSF( rxMSF )
+{
+ LoadStrings();
+ maSettings.push_back( pDefaultSettings ?
+ *pDefaultSettings : OptimizerSettings() );
+ maSettings.back().maName = TKGet( TK_LastUsedSettings );
+ LoadConfiguration();
+ maInitialSettings = maSettings;
+};
+
+ConfigurationAccess::~ConfigurationAccess()
+{
+}
+
+rtl::OUString ConfigurationAccess::getPath( const PPPOptimizerTokenEnum eToken )
+{
+ rtl::OUString aPath;
+ try
+ {
+ static const OUString sProtocol( RTL_CONSTASCII_USTRINGPARAM( "vnd.sun.star.expand:" ) );
+ static const OUString stheMacroExpander( RTL_CONSTASCII_USTRINGPARAM( "/singletons/com.sun.star.util.theMacroExpander" ) );
+ Reference< container::XNameAccess > xSet( OpenConfiguration( true ), UNO_QUERY_THROW );
+ if ( xSet->hasByName( TKGet( eToken ) ) )
+ xSet->getByName( TKGet( eToken ) ) >>= aPath;
+ if ( aPath.match( sProtocol, 0 ) )
+ {
+ rtl::OUString aTmp( aPath.copy( 20 ) );
+ Reference< util::XMacroExpander > xExpander;
+ if ( mxMSF->getValueByName( stheMacroExpander ) >>= xExpander )
+ {
+ aPath = xExpander->expandMacros( aTmp );
+ }
+ }
+ }
+ catch ( Exception& )
+ {
+ }
+ return aPath;
+}
+
+rtl::OUString ConfigurationAccess::getString( const PPPOptimizerTokenEnum eToken ) const
+{
+ std::map< PPPOptimizerTokenEnum, rtl::OUString, Compare >::const_iterator aIter( maStrings.find( eToken ) );
+ return aIter != maStrings.end() ? ((*aIter).second) : rtl::OUString();
+}
+
+void ConfigurationAccess::LoadStrings()
+{
+ try
+ {
+ do
+ {
+ Reference< XInterface > xRoot( OpenConfiguration( true ) );
+ if ( !xRoot.is() )
+ break;
+ Reference< container::XNameAccess > xSet( GetConfigurationNode( xRoot, TKGet( TK_Strings ) ), UNO_QUERY );
+ if ( xSet.is() )
+ {
+ const Sequence< OUString > aElements( xSet->getElementNames() );
+ for ( int i = 0; i < aElements.getLength(); i++ )
+ {
+ try
+ {
+ OUString aString, aPropertyName( aElements[ i ] );
+ if ( xSet->getByName( aPropertyName ) >>= aString )
+ maStrings[ TKGet( aPropertyName ) ] = aString;
+ }
+ catch( Exception& )
+ {
+ }
+ }
+ }
+ }
+ while( false );
+ }
+ catch( Exception& )
+ {
+ }
+}
+
+void ConfigurationAccess::LoadConfiguration()
+{
+ try
+ {
+ do
+ {
+ Reference< XInterface > xRoot( OpenConfiguration( true ) );
+ if ( !xRoot.is() )
+ break;
+ Reference< container::XNameAccess > xSet( GetConfigurationNode( xRoot, TKGet( TK_LastUsedSettings ) ), UNO_QUERY );
+ if ( xSet.is() )
+ {
+ OptimizerSettings& rCurrent( maSettings.front() );
+ rCurrent.LoadSettingsFromConfiguration( xSet );
+ }
+ xSet = Reference< container::XNameAccess >( GetConfigurationNode( xRoot, TKGet( TK_Settings_Templates ) ), UNO_QUERY );
+ if ( xSet.is() )
+ {
+ const Sequence< OUString > aElements( xSet->getElementNames() );
+ for ( int i = 0; i < aElements.getLength(); i++ )
+ {
+ try
+ {
+ OUString aPath( TKGet( TK_Settings_Templates_ ).concat( aElements[ i ] ) );
+ Reference< container::XNameAccess > xTemplates( GetConfigurationNode( xRoot, aPath ), UNO_QUERY );
+ if ( xTemplates.is() )
+ {
+ maSettings.push_back( OptimizerSettings() );
+ maSettings.back().LoadSettingsFromConfiguration( xTemplates );
+ }
+ }
+ catch( Exception& /* rException */ )
+ {
+ }
+ }
+ }
+ }
+ while( false );
+ }
+ catch( Exception& )
+ {
+ }
+}
+
+void ConfigurationAccess::SaveConfiguration()
+{
+ try
+ {
+ do
+ {
+ int i;
+ unsigned int k;
+ Reference<util::XChangesBatch> xRoot( OpenConfiguration( false ), UNO_QUERY_THROW );
+
+ // storing the last used settings
+ Reference< container::XNameReplace > xSet( GetConfigurationNode( xRoot, TKGet( TK_LastUsedSettings ) ), UNO_QUERY_THROW );
+ OptimizerSettings& rCurrent( maSettings.front() );
+ rCurrent.SaveSettingsToConfiguration( xSet );
+
+ // updating template elements
+ xSet = Reference< container::XNameReplace >( GetConfigurationNode( xRoot, TKGet( TK_Settings_Templates ) ), UNO_QUERY_THROW );
+ Reference< container::XNameContainer > xNameContainer( xSet, UNO_QUERY_THROW );
+
+ const Sequence< OUString > aElements( xSet->getElementNames() );
+ for( i = 0; i < aElements.getLength(); i++ )
+ xNameContainer->removeByName( aElements[ i ] );
+
+ for( k = 1; k < maSettings.size(); k++ )
+ {
+ OptimizerSettings& rSettings( maSettings[ k ] );
+ OUString aElementName( TKGet( TK_Template ).concat( OUString::valueOf( static_cast< sal_Int32 >( k ) ) ) );
+ Reference< lang::XSingleServiceFactory > xChildFactory ( xSet, UNO_QUERY_THROW );
+ Reference< container::XNameReplace > xChild( xChildFactory->createInstance(), UNO_QUERY_THROW );
+ xNameContainer->insertByName( aElementName, Any( xChild ) );
+
+ OUString aPath( TKGet( TK_Settings_Templates_ ).concat( aElementName ) );
+ Reference< container::XNameReplace > xTemplates( GetConfigurationNode( xRoot, aPath ), UNO_QUERY );
+ rSettings.SaveSettingsToConfiguration( xTemplates );
+ }
+ xRoot->commitChanges();
+ }
+ while( false );
+ }
+ catch( Exception& /* rException */ )
+ {
+
+ }
+}
+
+Reference< XInterface > ConfigurationAccess::OpenConfiguration( bool bReadOnly )
+{
+ Reference< XInterface > xRoot;
+ try
+ {
+ Reference< lang::XMultiServiceFactory > xProvider( mxMSF->getServiceManager()->createInstanceWithContext( GetConfigurationProviderServiceName(), mxMSF ), UNO_QUERY );
+ if ( xProvider.is() )
+ {
+ Sequence< Any > aCreationArguments( 2 );
+ aCreationArguments[0] = makeAny( PropertyValue(
+ OUString( RTL_CONSTASCII_USTRINGPARAM( "nodepath" ) ), 0,
+ makeAny( GetPathToConfigurationRoot() ),
+ PropertyState_DIRECT_VALUE ) );
+ aCreationArguments[1] = makeAny(beans::PropertyValue(
+ OUString( RTL_CONSTASCII_USTRINGPARAM( "lazywrite" ) ), 0, makeAny( true ),
+ PropertyState_DIRECT_VALUE ) );
+ OUString sAccessService;
+ if ( bReadOnly )
+ sAccessService = OUString( RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.configuration.ConfigurationAccess" ) );
+ else
+ sAccessService = OUString( RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.configuration.ConfigurationUpdateAccess" ) );
+
+ xRoot = xProvider->createInstanceWithArguments(
+ sAccessService, aCreationArguments );
+ }
+ }
+ catch ( Exception& /* rException */ )
+ {
+ }
+ return xRoot;
+}
+
+Reference< XInterface > ConfigurationAccess::GetConfigurationNode(
+ const Reference< XInterface >& xRoot,
+ const OUString& sPathToNode )
+{
+ Reference< XInterface > xNode;
+ try
+ {
+ if ( !sPathToNode.getLength() )
+ xNode = xRoot;
+ else
+ {
+ Reference< XHierarchicalNameAccess > xHierarchy( xRoot, UNO_QUERY );
+ if ( xHierarchy.is() )
+ {
+ xHierarchy->getByHierarchicalName( sPathToNode ) >>= xNode;
+ }
+ }
+ }
+ catch ( Exception& rException )
+ {
+ OSL_TRACE ("caught exception while getting configuration node %s: %s",
+ ::rtl::OUStringToOString(sPathToNode,
+ RTL_TEXTENCODING_UTF8).getStr(),
+ ::rtl::OUStringToOString(rException.Message,
+ RTL_TEXTENCODING_UTF8).getStr());
+ }
+ return xNode;
+}
+
+com::sun::star::uno::Any ConfigurationAccess::GetConfigProperty( const PPPOptimizerTokenEnum ePropertyToken ) const
+{
+ Any aRetValue;
+ const OptimizerSettings& rSettings( maSettings.front() );
+ try
+ {
+ switch( ePropertyToken )
+ {
+ case TK_Name : aRetValue <<= rSettings.maName; break;
+ case TK_JPEGCompression : aRetValue <<= rSettings.mbJPEGCompression; break;
+ case TK_JPEGQuality : aRetValue <<= rSettings.mnJPEGQuality; break;
+ case TK_RemoveCropArea : aRetValue <<= rSettings.mbRemoveCropArea; break;
+ case TK_ImageResolution : aRetValue <<= rSettings.mnImageResolution; break;
+ case TK_EmbedLinkedGraphics : aRetValue <<= rSettings.mbEmbedLinkedGraphics; break;
+ case TK_OLEOptimization : aRetValue <<= rSettings.mbOLEOptimization; break;
+ case TK_OLEOptimizationType : aRetValue <<= rSettings.mnOLEOptimizationType; break;
+ case TK_DeleteUnusedMasterPages : aRetValue <<= rSettings.mbDeleteUnusedMasterPages; break;
+ case TK_DeleteHiddenSlides : aRetValue <<= rSettings.mbDeleteHiddenSlides; break;
+ case TK_DeleteNotesPages : aRetValue <<= rSettings.mbDeleteNotesPages; break;
+ case TK_SaveAs : aRetValue <<= rSettings.mbSaveAs; break;
+ case TK_SaveAsURL : aRetValue <<= rSettings.maSaveAsURL; break;
+ case TK_FilterName : aRetValue <<= rSettings.maFilterName; break;
+ case TK_OpenNewDocument : aRetValue <<= rSettings.mbOpenNewDocument; break;
+ case TK_EstimatedFileSize : aRetValue <<= rSettings.mnEstimatedFileSize; break;
+ default:
+ break;
+ }
+ }
+ catch( Exception& /* rException */ )
+ {
+ }
+ return aRetValue;
+}
+
+void ConfigurationAccess::SetConfigProperty( const PPPOptimizerTokenEnum ePropertyToken, const com::sun::star::uno::Any& rValue )
+{
+ OptimizerSettings& rSettings( maSettings.front() );
+ try
+ {
+ switch( ePropertyToken )
+ {
+ case TK_Name : rValue >>= rSettings.maName; break;
+ case TK_JPEGCompression : rValue >>= rSettings.mbJPEGCompression; break;
+ case TK_JPEGQuality : rValue >>= rSettings.mnJPEGQuality; break;
+ case TK_RemoveCropArea : rValue >>= rSettings.mbRemoveCropArea; break;
+ case TK_ImageResolution : rValue >>= rSettings.mnImageResolution; break;
+ case TK_EmbedLinkedGraphics : rValue >>= rSettings.mbEmbedLinkedGraphics; break;
+ case TK_OLEOptimization : rValue >>= rSettings.mbOLEOptimization; break;
+ case TK_OLEOptimizationType : rValue >>= rSettings.mnOLEOptimizationType; break;
+ case TK_DeleteUnusedMasterPages : rValue >>= rSettings.mbDeleteUnusedMasterPages; break;
+ case TK_DeleteHiddenSlides : rValue >>= rSettings.mbDeleteHiddenSlides; break;
+ case TK_DeleteNotesPages : rValue >>= rSettings.mbDeleteNotesPages; break;
+ case TK_CustomShowName : rValue >>= rSettings.maCustomShowName; break;
+ case TK_SaveAs : rValue >>= rSettings.mbSaveAs; break;
+ case TK_SaveAsURL : rValue >>= rSettings.maSaveAsURL; break;
+ case TK_FilterName : rValue >>= rSettings.maFilterName; break;
+ case TK_OpenNewDocument : rValue >>= rSettings.mbOpenNewDocument; break;
+ case TK_EstimatedFileSize : rValue >>= rSettings.mnEstimatedFileSize; break;
+ default:
+ break;
+ }
+ }
+ catch( Exception& /* rException */ )
+ {
+ }
+}
+
+sal_Bool ConfigurationAccess::GetConfigProperty( const PPPOptimizerTokenEnum ePropertyToken, const sal_Bool bDefault ) const
+{
+ sal_Bool bRetValue = bDefault;
+ if ( ! ( GetConfigProperty( ePropertyToken ) >>= bRetValue ) )
+ bRetValue = bDefault;
+ return bRetValue;
+}
+
+sal_Int16 ConfigurationAccess::GetConfigProperty( const PPPOptimizerTokenEnum ePropertyToken, const sal_Int16 nDefault ) const
+{
+ sal_Int16 nRetValue = nDefault;
+ if ( ! ( GetConfigProperty( ePropertyToken ) >>= nRetValue ) )
+ nRetValue = nDefault;
+ return nRetValue;
+}
+
+sal_Int32 ConfigurationAccess::GetConfigProperty( const PPPOptimizerTokenEnum ePropertyToken, const sal_Int32 nDefault ) const
+{
+ sal_Int32 nRetValue = nDefault;
+ if ( ! ( GetConfigProperty( ePropertyToken ) >>= nRetValue ) )
+ nRetValue = nDefault;
+ return nRetValue;
+}
+
+Sequence< PropertyValue > ConfigurationAccess::GetConfigurationSequence()
+{
+ Sequence< PropertyValue > aRet( 15 );
+ OptimizerSettings& rSettings( maSettings.front() );
+ aRet[ 0 ].Name = TKGet( TK_JPEGCompression );
+ aRet[ 0 ].Value= Any( rSettings.mbJPEGCompression );
+ aRet[ 1 ].Name = TKGet( TK_JPEGQuality );
+ aRet[ 1 ].Value= Any( rSettings.mnJPEGQuality );
+ aRet[ 2 ].Name = TKGet( TK_RemoveCropArea );
+ aRet[ 2 ].Value= Any( rSettings.mbRemoveCropArea );
+ aRet[ 3 ].Name = TKGet( TK_ImageResolution );
+ aRet[ 3 ].Value= Any( rSettings.mnImageResolution );
+ aRet[ 4 ].Name = TKGet( TK_EmbedLinkedGraphics );
+ aRet[ 4 ].Value= Any( rSettings.mbEmbedLinkedGraphics );
+ aRet[ 5 ].Name = TKGet( TK_OLEOptimization );
+ aRet[ 5 ].Value= Any( rSettings.mbOLEOptimization );
+ aRet[ 6 ].Name = TKGet( TK_OLEOptimizationType );
+ aRet[ 6 ].Value= Any( rSettings.mnOLEOptimizationType );
+ aRet[ 7 ].Name = TKGet( TK_DeleteUnusedMasterPages );
+ aRet[ 7 ].Value= Any( rSettings.mbDeleteUnusedMasterPages );
+ aRet[ 8 ].Name = TKGet( TK_DeleteHiddenSlides );
+ aRet[ 8 ].Value= Any( rSettings.mbDeleteHiddenSlides );
+ aRet[ 9 ].Name = TKGet( TK_DeleteNotesPages );
+ aRet[ 9 ].Value= Any( rSettings.mbDeleteNotesPages );
+ aRet[ 10].Name = TKGet( TK_CustomShowName );
+ aRet[ 10].Value= Any( rSettings.maCustomShowName );
+ aRet[ 11].Name = TKGet( TK_SaveAsURL );
+ aRet[ 11].Value= Any( rSettings.maSaveAsURL );
+ aRet[ 12].Name = TKGet( TK_FilterName );
+ aRet[ 12].Value= Any( rSettings.maFilterName );
+ aRet[ 13].Name = TKGet( TK_OpenNewDocument );
+ aRet[ 13].Value= Any( rSettings.mbOpenNewDocument );
+ aRet[ 14].Name = TKGet( TK_EstimatedFileSize );
+ aRet[ 14].Value= Any( rSettings.mnEstimatedFileSize );
+ return aRet;
+}
+
+std::vector< OptimizerSettings >::iterator ConfigurationAccess::GetOptimizerSettingsByName( const rtl::OUString& rName )
+{
+ std::vector< OptimizerSettings >::iterator aIter( maSettings.begin() + 1 );
+ while ( aIter != maSettings.end() )
+ {
+ if ( aIter->maName == rName )
+ break;
+ aIter++;
+ }
+ return aIter;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */