xref: /trunk/main/sdext/source/minimizer/configurationaccess.cxx (revision e1f21a75e902abd525fc1025e6a6b5d6bd46bd17)
1c142477cSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3c142477cSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4c142477cSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5c142477cSAndrew Rist  * distributed with this work for additional information
6c142477cSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7c142477cSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8c142477cSAndrew Rist  * "License"); you may not use this file except in compliance
9c142477cSAndrew Rist  * with the License.  You may obtain a copy of the License at
10cdf0e10cSrcweir  *
11c142477cSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
13c142477cSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14c142477cSAndrew Rist  * software distributed under the License is distributed on an
15c142477cSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16c142477cSAndrew Rist  * KIND, either express or implied.  See the License for the
17c142477cSAndrew Rist  * specific language governing permissions and limitations
18c142477cSAndrew Rist  * under the License.
19cdf0e10cSrcweir  *
20c142477cSAndrew Rist  *************************************************************/
21c142477cSAndrew Rist 
22cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
23cdf0e10cSrcweir #include "precompiled_sdext.hxx"
24cdf0e10cSrcweir 
25cdf0e10cSrcweir #include "configurationaccess.hxx"
26cdf0e10cSrcweir #include <com/sun/star/frame/XComponentLoader.hpp>
27cdf0e10cSrcweir #include <com/sun/star/container/XHierarchicalNameAccess.hpp>
28cdf0e10cSrcweir #include <com/sun/star/util/XChangesBatch.hpp>
29cdf0e10cSrcweir #include <com/sun/star/container/XNameContainer.hpp>
30cdf0e10cSrcweir #include <com/sun/star/util/XMacroExpander.hpp>
31cdf0e10cSrcweir #include <com/sun/star/lang/XSingleServiceFactory.hpp>
32597a4c59SAriel Constenla-Haile #include <com/sun/star/resource/XResourceBundleLoader.hpp>
33cdf0e10cSrcweir 
34597a4c59SAriel Constenla-Haile #include <rtl/ustrbuf.hxx>
35597a4c59SAriel Constenla-Haile 
36597a4c59SAriel Constenla-Haile #include "minimizer.hrc"
37597a4c59SAriel Constenla-Haile 
38cdf0e10cSrcweir using namespace ::com::sun::star;
39cdf0e10cSrcweir using namespace ::com::sun::star::uno;
40cdf0e10cSrcweir using namespace ::com::sun::star::beans;
41cdf0e10cSrcweir using namespace ::com::sun::star::container;
42cdf0e10cSrcweir 
43597a4c59SAriel Constenla-Haile using rtl::OUString;
44597a4c59SAriel Constenla-Haile using rtl::OUStringBuffer;
45597a4c59SAriel Constenla-Haile 
46597a4c59SAriel Constenla-Haile #include <rtl/instance.hxx>
47597a4c59SAriel Constenla-Haile 
48597a4c59SAriel Constenla-Haile typedef std::map < sal_Int32, rtl::OUString > StringResourceMap;
49597a4c59SAriel Constenla-Haile 
50597a4c59SAriel Constenla-Haile struct StaticResourceMap
51597a4c59SAriel Constenla-Haile     : public rtl::StaticWithInit< StringResourceMap, StaticResourceMap >
52597a4c59SAriel Constenla-Haile {
53597a4c59SAriel Constenla-Haile     StringResourceMap &
54597a4c59SAriel Constenla-Haile     operator()() const;
55597a4c59SAriel Constenla-Haile };
56597a4c59SAriel Constenla-Haile 
57597a4c59SAriel Constenla-Haile StringResourceMap &
operator ()() const58597a4c59SAriel Constenla-Haile StaticResourceMap::operator()() const
59597a4c59SAriel Constenla-Haile {
60597a4c59SAriel Constenla-Haile     static StringResourceMap aMap;
61597a4c59SAriel Constenla-Haile     return aMap;
62597a4c59SAriel Constenla-Haile }
63597a4c59SAriel Constenla-Haile 
GetConfigurationProviderServiceName(void)64cdf0e10cSrcweir static const OUString& GetConfigurationProviderServiceName (void)
65cdf0e10cSrcweir {
66cdf0e10cSrcweir     static const OUString sConfigurationProviderServiceName (
67cdf0e10cSrcweir         RTL_CONSTASCII_USTRINGPARAM(
68cdf0e10cSrcweir             "com.sun.star.configuration.ConfigurationProvider"));
69cdf0e10cSrcweir     return sConfigurationProviderServiceName;
70cdf0e10cSrcweir }
GetPathToConfigurationRoot(void)71cdf0e10cSrcweir static const OUString& GetPathToConfigurationRoot (void)
72cdf0e10cSrcweir {
73cdf0e10cSrcweir     static const OUString sPathToConfigurationRoot (
74597a4c59SAriel Constenla-Haile         RTL_CONSTASCII_USTRINGPARAM("org.openoffice.Office.Impress/PresentationMinimizer"));
75cdf0e10cSrcweir     return sPathToConfigurationRoot;
76cdf0e10cSrcweir }
77cdf0e10cSrcweir 
lcl_loadString(const Reference<resource::XResourceBundle> xResourceBundle,sal_Int32 nResourceId)78597a4c59SAriel Constenla-Haile static OUString lcl_loadString(
79597a4c59SAriel Constenla-Haile     const Reference< resource::XResourceBundle > xResourceBundle,
80597a4c59SAriel Constenla-Haile     sal_Int32 nResourceId )
81597a4c59SAriel Constenla-Haile {
82597a4c59SAriel Constenla-Haile     OUString sString;
83597a4c59SAriel Constenla-Haile     OUStringBuffer sKey;
84597a4c59SAriel Constenla-Haile     sKey.appendAscii( RTL_CONSTASCII_STRINGPARAM( "string:" ) );
85597a4c59SAriel Constenla-Haile     sKey.append( nResourceId );
86597a4c59SAriel Constenla-Haile 
87597a4c59SAriel Constenla-Haile     try
88597a4c59SAriel Constenla-Haile     {
89597a4c59SAriel Constenla-Haile         OSL_VERIFY( xResourceBundle->getByName( sKey.makeStringAndClear() ) >>= sString );
90597a4c59SAriel Constenla-Haile     }
91597a4c59SAriel Constenla-Haile     catch( const uno::Exception& )
92597a4c59SAriel Constenla-Haile     {
93597a4c59SAriel Constenla-Haile         OSL_ENSURE( false, "OptimizerSettings: missing resource!" );
94597a4c59SAriel Constenla-Haile     }
95597a4c59SAriel Constenla-Haile 
96597a4c59SAriel Constenla-Haile     return sString;
97597a4c59SAriel Constenla-Haile }
98597a4c59SAriel Constenla-Haile 
LoadSettingsFromConfiguration(const Reference<XNameAccess> & rSettings)99cdf0e10cSrcweir void OptimizerSettings::LoadSettingsFromConfiguration( const Reference< XNameAccess >& rSettings )
100cdf0e10cSrcweir {
101cdf0e10cSrcweir     if ( rSettings.is() )
102cdf0e10cSrcweir     {
103cdf0e10cSrcweir         const Sequence< OUString > aElements( rSettings->getElementNames() );
104cdf0e10cSrcweir         for ( int i = 0; i < aElements.getLength(); i++ )
105cdf0e10cSrcweir         {
106cdf0e10cSrcweir             try
107cdf0e10cSrcweir             {
108cdf0e10cSrcweir                 const OUString aPropertyName( aElements[ i ] );
109cdf0e10cSrcweir                 Any aValue( rSettings->getByName( aPropertyName ) );
110cdf0e10cSrcweir                 switch( TKGet( aPropertyName ) )
111cdf0e10cSrcweir                 {
112cdf0e10cSrcweir                     case TK_Name :                      aValue >>= maName; break;
113cdf0e10cSrcweir                     case TK_JPEGCompression :           aValue >>= mbJPEGCompression; break;
114cdf0e10cSrcweir                     case TK_JPEGQuality :               aValue >>= mnJPEGQuality; break;
115cdf0e10cSrcweir                     case TK_RemoveCropArea :            aValue >>= mbRemoveCropArea; break;
116cdf0e10cSrcweir                     case TK_ImageResolution :           aValue >>= mnImageResolution; break;
117cdf0e10cSrcweir                     case TK_EmbedLinkedGraphics :       aValue >>= mbEmbedLinkedGraphics; break;
118cdf0e10cSrcweir                     case TK_OLEOptimization :           aValue >>= mbOLEOptimization; break;
119cdf0e10cSrcweir                     case TK_OLEOptimizationType :       aValue >>= mnOLEOptimizationType; break;
120cdf0e10cSrcweir                     case TK_DeleteUnusedMasterPages :   aValue >>= mbDeleteUnusedMasterPages; break;
121cdf0e10cSrcweir                     case TK_DeleteHiddenSlides :        aValue >>= mbDeleteHiddenSlides; break;
122cdf0e10cSrcweir                     case TK_DeleteNotesPages :          aValue >>= mbDeleteNotesPages ;break;
123cdf0e10cSrcweir                     case TK_SaveAs :                    aValue >>= mbSaveAs; break;
124cdf0e10cSrcweir //                  case TK_SaveAsURL :                 aValue >>= maSaveAsURL; break;      // URL is not saved to configuration
125cdf0e10cSrcweir //                  case TK_FilterName :                aValue >>= maFilterName; break;     // URL is not saved to configuration
126cdf0e10cSrcweir                     case TK_OpenNewDocument :           aValue >>= mbOpenNewDocument; break;
127cdf0e10cSrcweir                     default: break;
128cdf0e10cSrcweir                 }
129cdf0e10cSrcweir             }
130cdf0e10cSrcweir             catch( Exception& )
131cdf0e10cSrcweir             {
132cdf0e10cSrcweir             }
133cdf0e10cSrcweir         }
134cdf0e10cSrcweir     }
135cdf0e10cSrcweir }
136cdf0e10cSrcweir 
SaveSettingsToConfiguration(const Reference<XNameReplace> & rSettings)137cdf0e10cSrcweir void OptimizerSettings::SaveSettingsToConfiguration( const Reference< XNameReplace >& rSettings )
138cdf0e10cSrcweir {
139cdf0e10cSrcweir     if ( rSettings.is() )
140cdf0e10cSrcweir     {
141cdf0e10cSrcweir         OUString pNames[] = {
142cdf0e10cSrcweir             TKGet( TK_Name ),
143cdf0e10cSrcweir             TKGet( TK_JPEGCompression ),
144cdf0e10cSrcweir             TKGet( TK_JPEGQuality ),
145cdf0e10cSrcweir             TKGet( TK_RemoveCropArea ),
146cdf0e10cSrcweir             TKGet( TK_ImageResolution ),
147cdf0e10cSrcweir             TKGet( TK_EmbedLinkedGraphics ),
148cdf0e10cSrcweir             TKGet( TK_OLEOptimization ),
149cdf0e10cSrcweir             TKGet( TK_OLEOptimizationType ),
150cdf0e10cSrcweir             TKGet( TK_DeleteUnusedMasterPages ),
151cdf0e10cSrcweir             TKGet( TK_DeleteHiddenSlides ),
152cdf0e10cSrcweir             TKGet( TK_DeleteNotesPages ),
153cdf0e10cSrcweir             TKGet( TK_SaveAs ),
154cdf0e10cSrcweir //          TKGet( TK_SaveAsURL ),
155cdf0e10cSrcweir //          TKGet( TK_FilterName ),
156cdf0e10cSrcweir             TKGet( TK_OpenNewDocument ) };
157cdf0e10cSrcweir 
158cdf0e10cSrcweir         Any pValues[] = {
159cdf0e10cSrcweir             Any( maName ),
160cdf0e10cSrcweir             Any( mbJPEGCompression ),
161cdf0e10cSrcweir             Any( mnJPEGQuality ),
162cdf0e10cSrcweir             Any( mbRemoveCropArea ),
163cdf0e10cSrcweir             Any( mnImageResolution ),
164cdf0e10cSrcweir             Any( mbEmbedLinkedGraphics ),
165cdf0e10cSrcweir             Any( mbOLEOptimization ),
166cdf0e10cSrcweir             Any( mnOLEOptimizationType ),
167cdf0e10cSrcweir             Any( mbDeleteUnusedMasterPages ),
168cdf0e10cSrcweir             Any( mbDeleteHiddenSlides ),
169cdf0e10cSrcweir             Any( mbDeleteNotesPages ),
170cdf0e10cSrcweir             Any( mbSaveAs ),
171cdf0e10cSrcweir //          Any( maSaveAsURL ),
172cdf0e10cSrcweir //          Any( maFilterName ),
173cdf0e10cSrcweir             Any( mbOpenNewDocument ) };
174cdf0e10cSrcweir 
175cdf0e10cSrcweir         sal_Int32 i, nCount = sizeof( pNames ) / sizeof( OUString );
176cdf0e10cSrcweir 
177cdf0e10cSrcweir         for ( i = 0; i < nCount; i++ )
178cdf0e10cSrcweir         {
179cdf0e10cSrcweir             try
180cdf0e10cSrcweir             {
181cdf0e10cSrcweir                 rSettings->replaceByName( pNames[ i ], pValues[ i ] );
182cdf0e10cSrcweir             }
183cdf0e10cSrcweir             catch( Exception& /* rException */ )
184cdf0e10cSrcweir             {
185cdf0e10cSrcweir             }
186cdf0e10cSrcweir         }
187cdf0e10cSrcweir     }
188cdf0e10cSrcweir }
189cdf0e10cSrcweir 
operator ==(const OptimizerSettings & rOptimizerSettings) const190cdf0e10cSrcweir sal_Bool OptimizerSettings::operator==( const OptimizerSettings& rOptimizerSettings ) const
191cdf0e10cSrcweir {
192cdf0e10cSrcweir     return ( rOptimizerSettings.mbJPEGCompression == mbJPEGCompression )
193cdf0e10cSrcweir         && ( rOptimizerSettings.mnJPEGQuality == mnJPEGQuality )
194cdf0e10cSrcweir         && ( rOptimizerSettings.mbRemoveCropArea == mbRemoveCropArea )
195cdf0e10cSrcweir         && ( rOptimizerSettings.mnImageResolution == mnImageResolution )
196cdf0e10cSrcweir         && ( rOptimizerSettings.mbEmbedLinkedGraphics == mbEmbedLinkedGraphics )
197cdf0e10cSrcweir         && ( rOptimizerSettings.mbOLEOptimization == mbOLEOptimization )
198cdf0e10cSrcweir         && ( rOptimizerSettings.mnOLEOptimizationType == mnOLEOptimizationType )
199cdf0e10cSrcweir         && ( rOptimizerSettings.mbDeleteUnusedMasterPages == mbDeleteUnusedMasterPages )
200cdf0e10cSrcweir         && ( rOptimizerSettings.mbDeleteHiddenSlides == mbDeleteHiddenSlides )
201cdf0e10cSrcweir         && ( rOptimizerSettings.mbDeleteNotesPages == mbDeleteNotesPages );
202cdf0e10cSrcweir //      && ( rOptimizerSettings.mbOpenNewDocument == mbOpenNewDocument );
203cdf0e10cSrcweir }
204cdf0e10cSrcweir 
205cdf0e10cSrcweir 
ConfigurationAccess(const Reference<uno::XComponentContext> & rxContext,OptimizerSettings * pDefaultSettings)206597a4c59SAriel Constenla-Haile ConfigurationAccess::ConfigurationAccess( const Reference< uno::XComponentContext >& rxContext, OptimizerSettings* pDefaultSettings ) :
207597a4c59SAriel Constenla-Haile     m_xContext( rxContext )
208cdf0e10cSrcweir {
209cdf0e10cSrcweir     LoadStrings();
210cdf0e10cSrcweir     maSettings.push_back( pDefaultSettings ?
211cdf0e10cSrcweir         *pDefaultSettings : OptimizerSettings() );
212cdf0e10cSrcweir     maSettings.back().maName = TKGet( TK_LastUsedSettings );
213cdf0e10cSrcweir     LoadConfiguration();
214cdf0e10cSrcweir     maInitialSettings = maSettings;
215cdf0e10cSrcweir };
216cdf0e10cSrcweir 
~ConfigurationAccess()217cdf0e10cSrcweir ConfigurationAccess::~ConfigurationAccess()
218cdf0e10cSrcweir {
219cdf0e10cSrcweir }
220cdf0e10cSrcweir 
getString(sal_Int32 nResId)221597a4c59SAriel Constenla-Haile rtl::OUString ConfigurationAccess::getString( sal_Int32 nResId )
222cdf0e10cSrcweir {
223597a4c59SAriel Constenla-Haile     const StringResourceMap &aStrings = StaticResourceMap::get();
224597a4c59SAriel Constenla-Haile     StringResourceMap::const_iterator aIter( aStrings.find( nResId ) );
225597a4c59SAriel Constenla-Haile     return aIter != aStrings.end() ? ((*aIter).second) : rtl::OUString();
226cdf0e10cSrcweir }
227cdf0e10cSrcweir 
LoadStrings()228cdf0e10cSrcweir void ConfigurationAccess::LoadStrings()
229cdf0e10cSrcweir {
230597a4c59SAriel Constenla-Haile     static bool bLoaded = false;
231597a4c59SAriel Constenla-Haile     if ( bLoaded )
232597a4c59SAriel Constenla-Haile         return;
233597a4c59SAriel Constenla-Haile     else
234597a4c59SAriel Constenla-Haile         bLoaded = true;
235cdf0e10cSrcweir     try
236cdf0e10cSrcweir     {
237597a4c59SAriel Constenla-Haile 
238597a4c59SAriel Constenla-Haile         Reference< resource::XResourceBundleLoader > xResourceBundleLoader(
239597a4c59SAriel Constenla-Haile             m_xContext->getValueByName(
240597a4c59SAriel Constenla-Haile                 OUString( RTL_CONSTASCII_USTRINGPARAM(
241597a4c59SAriel Constenla-Haile                     "/singletons/com.sun.star.resource.OfficeResourceLoader" ) ) ),
242597a4c59SAriel Constenla-Haile                         UNO_QUERY_THROW );
243597a4c59SAriel Constenla-Haile 
244597a4c59SAriel Constenla-Haile         Reference< resource::XResourceBundle > xResourceBundle(
245597a4c59SAriel Constenla-Haile             xResourceBundleLoader->loadBundle_Default(
246597a4c59SAriel Constenla-Haile                 OUString( RTL_CONSTASCII_USTRINGPARAM( "minimizer" ) ) ),
247597a4c59SAriel Constenla-Haile                     UNO_SET_THROW );
248597a4c59SAriel Constenla-Haile 
249597a4c59SAriel Constenla-Haile         StringResourceMap &aStrings = StaticResourceMap::get();
250597a4c59SAriel Constenla-Haile         aStrings[ STR_PRESENTATION_MINIMIZER   ] = lcl_loadString( xResourceBundle, STR_PRESENTATION_MINIMIZER );
251597a4c59SAriel Constenla-Haile         aStrings[ STR_STEPS                    ] = lcl_loadString( xResourceBundle, STR_STEPS );
252597a4c59SAriel Constenla-Haile         aStrings[ STR_HELP                     ] = lcl_loadString( xResourceBundle, STR_HELP );
253597a4c59SAriel Constenla-Haile         aStrings[ STR_BACK                     ] = lcl_loadString( xResourceBundle, STR_BACK );
254597a4c59SAriel Constenla-Haile         aStrings[ STR_NEXT                     ] = lcl_loadString( xResourceBundle, STR_NEXT );
255597a4c59SAriel Constenla-Haile         aStrings[ STR_FINISH                   ] = lcl_loadString( xResourceBundle, STR_FINISH );
256597a4c59SAriel Constenla-Haile         aStrings[ STR_CANCEL                   ] = lcl_loadString( xResourceBundle, STR_CANCEL );
257597a4c59SAriel Constenla-Haile         aStrings[ STR_INTRODUCTION             ] = lcl_loadString( xResourceBundle, STR_INTRODUCTION );
258597a4c59SAriel Constenla-Haile         aStrings[ STR_INTRODUCTION_T           ] = lcl_loadString( xResourceBundle, STR_INTRODUCTION_T );
259*e1f21a75Smseidel         aStrings[ STR_CHOOSE_SETTINGS          ] = lcl_loadString( xResourceBundle, STR_CHOOSE_SETTINGS );
260597a4c59SAriel Constenla-Haile         aStrings[ STR_REMOVE                   ] = lcl_loadString( xResourceBundle, STR_REMOVE );
261597a4c59SAriel Constenla-Haile         aStrings[ STR_GRAPHIC_OPTIMIZATION     ] = lcl_loadString( xResourceBundle, STR_GRAPHIC_OPTIMIZATION );
262597a4c59SAriel Constenla-Haile         aStrings[ STR_IMAGE_OPTIMIZATION       ] = lcl_loadString( xResourceBundle, STR_IMAGE_OPTIMIZATION );
263597a4c59SAriel Constenla-Haile         aStrings[ STR_LOSSLESS_COMPRESSION     ] = lcl_loadString( xResourceBundle, STR_LOSSLESS_COMPRESSION );
264597a4c59SAriel Constenla-Haile         aStrings[ STR_JPEG_COMPRESSION         ] = lcl_loadString( xResourceBundle, STR_JPEG_COMPRESSION );
265597a4c59SAriel Constenla-Haile         aStrings[ STR_QUALITY                  ] = lcl_loadString( xResourceBundle, STR_QUALITY );
266597a4c59SAriel Constenla-Haile         aStrings[ STR_REMOVE_CROP_AREA         ] = lcl_loadString( xResourceBundle, STR_REMOVE_CROP_AREA );
267597a4c59SAriel Constenla-Haile         aStrings[ STR_IMAGE_RESOLUTION         ] = lcl_loadString( xResourceBundle, STR_IMAGE_RESOLUTION );
268597a4c59SAriel Constenla-Haile         aStrings[ STR_IMAGE_RESOLUTION_0       ] = lcl_loadString( xResourceBundle, STR_IMAGE_RESOLUTION_0 );
269597a4c59SAriel Constenla-Haile         aStrings[ STR_IMAGE_RESOLUTION_1       ] = lcl_loadString( xResourceBundle, STR_IMAGE_RESOLUTION_1 );
270597a4c59SAriel Constenla-Haile         aStrings[ STR_IMAGE_RESOLUTION_2       ] = lcl_loadString( xResourceBundle, STR_IMAGE_RESOLUTION_2 );
271597a4c59SAriel Constenla-Haile         aStrings[ STR_IMAGE_RESOLUTION_3       ] = lcl_loadString( xResourceBundle, STR_IMAGE_RESOLUTION_3 );
272597a4c59SAriel Constenla-Haile         aStrings[ STR_EMBED_LINKED_GRAPHICS    ] = lcl_loadString( xResourceBundle, STR_EMBED_LINKED_GRAPHICS );
273597a4c59SAriel Constenla-Haile         aStrings[ STR_OLE_OBJECTS              ] = lcl_loadString( xResourceBundle, STR_OLE_OBJECTS );
274597a4c59SAriel Constenla-Haile         aStrings[ STR_OLE_OPTIMIZATION         ] = lcl_loadString( xResourceBundle, STR_OLE_OPTIMIZATION );
275597a4c59SAriel Constenla-Haile         aStrings[ STR_OLE_REPLACE              ] = lcl_loadString( xResourceBundle, STR_OLE_REPLACE );
276597a4c59SAriel Constenla-Haile         aStrings[ STR_ALL_OLE_OBJECTS          ] = lcl_loadString( xResourceBundle, STR_ALL_OLE_OBJECTS );
277597a4c59SAriel Constenla-Haile         aStrings[ STR_ALIEN_OLE_OBJECTS_ONLY   ] = lcl_loadString( xResourceBundle, STR_ALIEN_OLE_OBJECTS_ONLY );
278597a4c59SAriel Constenla-Haile         aStrings[ STR_OLE_OBJECTS_DESC         ] = lcl_loadString( xResourceBundle, STR_OLE_OBJECTS_DESC );
279597a4c59SAriel Constenla-Haile         aStrings[ STR_NO_OLE_OBJECTS_DESC      ] = lcl_loadString( xResourceBundle, STR_NO_OLE_OBJECTS_DESC );
280597a4c59SAriel Constenla-Haile         aStrings[ STR_SLIDES                   ] = lcl_loadString( xResourceBundle, STR_SLIDES );
281597a4c59SAriel Constenla-Haile         aStrings[ STR_CHOOSE_SLIDES            ] = lcl_loadString( xResourceBundle, STR_CHOOSE_SLIDES );
282597a4c59SAriel Constenla-Haile         aStrings[ STR_MASTER_PAGES             ] = lcl_loadString( xResourceBundle, STR_MASTER_PAGES );
283597a4c59SAriel Constenla-Haile         aStrings[ STR_DELETE_MASTER_PAGES      ] = lcl_loadString( xResourceBundle, STR_DELETE_MASTER_PAGES );
284597a4c59SAriel Constenla-Haile         aStrings[ STR_DELETE_NOTES_PAGES       ] = lcl_loadString( xResourceBundle, STR_DELETE_NOTES_PAGES );
285597a4c59SAriel Constenla-Haile         aStrings[ STR_DELETE_HIDDEN_SLIDES     ] = lcl_loadString( xResourceBundle, STR_DELETE_HIDDEN_SLIDES );
286597a4c59SAriel Constenla-Haile         aStrings[ STR_CUSTOM_SHOW              ] = lcl_loadString( xResourceBundle, STR_CUSTOM_SHOW );
287597a4c59SAriel Constenla-Haile         aStrings[ STR_SUMMARY                  ] = lcl_loadString( xResourceBundle, STR_SUMMARY );
288597a4c59SAriel Constenla-Haile         aStrings[ STR_SUMMARY_TITLE            ] = lcl_loadString( xResourceBundle, STR_SUMMARY_TITLE );
289597a4c59SAriel Constenla-Haile         aStrings[ STR_PROGRESS                 ] = lcl_loadString( xResourceBundle, STR_PROGRESS );
290597a4c59SAriel Constenla-Haile         aStrings[ STR_OBJECTS_OPTIMIZED        ] = lcl_loadString( xResourceBundle, STR_OBJECTS_OPTIMIZED );
291597a4c59SAriel Constenla-Haile         aStrings[ STR_APPLY_TO_CURRENT         ] = lcl_loadString( xResourceBundle, STR_APPLY_TO_CURRENT );
292597a4c59SAriel Constenla-Haile         aStrings[ STR_AUTOMATICALLY_OPEN       ] = lcl_loadString( xResourceBundle, STR_AUTOMATICALLY_OPEN );
293597a4c59SAriel Constenla-Haile         aStrings[ STR_SAVE_SETTINGS            ] = lcl_loadString( xResourceBundle, STR_SAVE_SETTINGS );
294597a4c59SAriel Constenla-Haile         aStrings[ STR_SAVE_AS                  ] = lcl_loadString( xResourceBundle, STR_SAVE_AS );
295597a4c59SAriel Constenla-Haile         aStrings[ STR_DELETE_SLIDES            ] = lcl_loadString( xResourceBundle, STR_DELETE_SLIDES );
296597a4c59SAriel Constenla-Haile         aStrings[ STR_OPTIMIZE_IMAGES          ] = lcl_loadString( xResourceBundle, STR_OPTIMIZE_IMAGES );
297597a4c59SAriel Constenla-Haile         aStrings[ STR_CREATE_REPLACEMENT       ] = lcl_loadString( xResourceBundle, STR_CREATE_REPLACEMENT );
298597a4c59SAriel Constenla-Haile         aStrings[ STR_CURRENT_FILESIZE         ] = lcl_loadString( xResourceBundle, STR_CURRENT_FILESIZE );
299597a4c59SAriel Constenla-Haile         aStrings[ STR_ESTIMATED_FILESIZE       ] = lcl_loadString( xResourceBundle, STR_ESTIMATED_FILESIZE );
300597a4c59SAriel Constenla-Haile         aStrings[ STR_MB                       ] = lcl_loadString( xResourceBundle, STR_MB );
301597a4c59SAriel Constenla-Haile         aStrings[ STR_MY_SETTINGS              ] = lcl_loadString( xResourceBundle, STR_MY_SETTINGS );
302597a4c59SAriel Constenla-Haile         aStrings[ STR_DEFAULT_SESSION          ] = lcl_loadString( xResourceBundle, STR_DEFAULT_SESSION );
303597a4c59SAriel Constenla-Haile         aStrings[ STR_MODIFY_WARNING           ] = lcl_loadString( xResourceBundle, STR_MODIFY_WARNING );
304597a4c59SAriel Constenla-Haile         aStrings[ STR_YES                      ] = lcl_loadString( xResourceBundle, STR_YES );
305597a4c59SAriel Constenla-Haile         aStrings[ STR_OK                       ] = lcl_loadString( xResourceBundle, STR_OK );
306597a4c59SAriel Constenla-Haile         aStrings[ STR_INFO_1                   ] = lcl_loadString( xResourceBundle, STR_INFO_1 );
307597a4c59SAriel Constenla-Haile         aStrings[ STR_INFO_2                   ] = lcl_loadString( xResourceBundle, STR_INFO_2 );
308597a4c59SAriel Constenla-Haile         aStrings[ STR_INFO_3                   ] = lcl_loadString( xResourceBundle, STR_INFO_3 );
309597a4c59SAriel Constenla-Haile         aStrings[ STR_INFO_4                   ] = lcl_loadString( xResourceBundle, STR_INFO_4 );
310597a4c59SAriel Constenla-Haile         aStrings[ STR_DUPLICATING_PRESENTATION ] = lcl_loadString( xResourceBundle, STR_DUPLICATING_PRESENTATION );
311597a4c59SAriel Constenla-Haile         aStrings[ STR_DELETING_SLIDES          ] = lcl_loadString( xResourceBundle, STR_DELETING_SLIDES );
312597a4c59SAriel Constenla-Haile         aStrings[ STR_OPTIMIZING_GRAPHICS      ] = lcl_loadString( xResourceBundle, STR_OPTIMIZING_GRAPHICS );
313597a4c59SAriel Constenla-Haile         aStrings[ STR_CREATING_OLE_REPLACEMENTS] = lcl_loadString( xResourceBundle, STR_CREATING_OLE_REPLACEMENTS );
314597a4c59SAriel Constenla-Haile         aStrings[ STR_FILESIZESEPARATOR        ] = lcl_loadString( xResourceBundle, STR_FILESIZESEPARATOR );
315597a4c59SAriel Constenla-Haile         aStrings[ STR_INFO_DIALOG              ] = lcl_loadString( xResourceBundle, STR_INFO_DIALOG );
316cdf0e10cSrcweir     }
317cdf0e10cSrcweir     catch( Exception& )
318cdf0e10cSrcweir     {
319cdf0e10cSrcweir     }
320cdf0e10cSrcweir }
321cdf0e10cSrcweir 
LoadConfiguration()322cdf0e10cSrcweir void ConfigurationAccess::LoadConfiguration()
323cdf0e10cSrcweir {
324cdf0e10cSrcweir     try
325cdf0e10cSrcweir     {
326cdf0e10cSrcweir         do
327cdf0e10cSrcweir         {
328cdf0e10cSrcweir             Reference< XInterface > xRoot( OpenConfiguration( true ) );
329cdf0e10cSrcweir             if ( !xRoot.is() )
330cdf0e10cSrcweir                 break;
331cdf0e10cSrcweir             Reference< container::XNameAccess > xSet( GetConfigurationNode( xRoot, TKGet( TK_LastUsedSettings ) ), UNO_QUERY );
332cdf0e10cSrcweir             if ( xSet.is() )
333cdf0e10cSrcweir             {
334cdf0e10cSrcweir                 OptimizerSettings& rCurrent( maSettings.front() );
335cdf0e10cSrcweir                 rCurrent.LoadSettingsFromConfiguration( xSet );
336cdf0e10cSrcweir             }
337cdf0e10cSrcweir             xSet = Reference< container::XNameAccess >( GetConfigurationNode( xRoot, TKGet( TK_Settings_Templates ) ), UNO_QUERY );
338cdf0e10cSrcweir             if ( xSet.is() )
339cdf0e10cSrcweir             {
340cdf0e10cSrcweir                 const Sequence< OUString > aElements( xSet->getElementNames() );
341cdf0e10cSrcweir                 for ( int i = 0; i < aElements.getLength(); i++ )
342cdf0e10cSrcweir                 {
343cdf0e10cSrcweir                     try
344cdf0e10cSrcweir                     {
345cdf0e10cSrcweir                         OUString aPath( TKGet( TK_Settings_Templates_ ).concat( aElements[ i ] ) );
346cdf0e10cSrcweir                         Reference< container::XNameAccess > xTemplates( GetConfigurationNode( xRoot, aPath ), UNO_QUERY );
347cdf0e10cSrcweir                         if ( xTemplates.is() )
348cdf0e10cSrcweir                         {
349cdf0e10cSrcweir                             maSettings.push_back( OptimizerSettings() );
350cdf0e10cSrcweir                             maSettings.back().LoadSettingsFromConfiguration( xTemplates );
351cdf0e10cSrcweir                         }
352cdf0e10cSrcweir                     }
353cdf0e10cSrcweir                     catch( Exception& /* rException */ )
354cdf0e10cSrcweir                     {
355cdf0e10cSrcweir                     }
356cdf0e10cSrcweir                 }
357cdf0e10cSrcweir             }
358cdf0e10cSrcweir         }
359cdf0e10cSrcweir         while( false );
360cdf0e10cSrcweir     }
361cdf0e10cSrcweir     catch( Exception& )
362cdf0e10cSrcweir     {
363cdf0e10cSrcweir     }
364cdf0e10cSrcweir }
365cdf0e10cSrcweir 
SaveConfiguration()366cdf0e10cSrcweir void ConfigurationAccess::SaveConfiguration()
367cdf0e10cSrcweir {
368cdf0e10cSrcweir     try
369cdf0e10cSrcweir     {
370cdf0e10cSrcweir         do
371cdf0e10cSrcweir         {
372cdf0e10cSrcweir             int i;
373cdf0e10cSrcweir             unsigned int k;
374cdf0e10cSrcweir             Reference<util::XChangesBatch> xRoot( OpenConfiguration( false ), UNO_QUERY_THROW );
375cdf0e10cSrcweir 
376cdf0e10cSrcweir             // storing the last used settings
377cdf0e10cSrcweir             Reference< container::XNameReplace > xSet( GetConfigurationNode( xRoot, TKGet( TK_LastUsedSettings ) ), UNO_QUERY_THROW );
378cdf0e10cSrcweir             OptimizerSettings& rCurrent( maSettings.front() );
379cdf0e10cSrcweir             rCurrent.SaveSettingsToConfiguration( xSet );
380cdf0e10cSrcweir 
381cdf0e10cSrcweir             // updating template elements
382cdf0e10cSrcweir             xSet = Reference< container::XNameReplace >( GetConfigurationNode( xRoot, TKGet( TK_Settings_Templates ) ), UNO_QUERY_THROW );
383cdf0e10cSrcweir             Reference< container::XNameContainer > xNameContainer( xSet, UNO_QUERY_THROW );
384cdf0e10cSrcweir 
385cdf0e10cSrcweir             const Sequence< OUString > aElements( xSet->getElementNames() );
386cdf0e10cSrcweir             for( i = 0; i < aElements.getLength(); i++ )
387cdf0e10cSrcweir                 xNameContainer->removeByName( aElements[ i ] );
388cdf0e10cSrcweir 
389cdf0e10cSrcweir             for( k = 1; k < maSettings.size(); k++ )
390cdf0e10cSrcweir             {
391cdf0e10cSrcweir                 OptimizerSettings& rSettings( maSettings[ k ] );
392cdf0e10cSrcweir                 OUString aElementName( TKGet( TK_Template ).concat( OUString::valueOf( static_cast< sal_Int32 >( k ) ) ) );
393cdf0e10cSrcweir                 Reference< lang::XSingleServiceFactory > xChildFactory ( xSet, UNO_QUERY_THROW );
394cdf0e10cSrcweir                 Reference< container::XNameReplace > xChild( xChildFactory->createInstance(), UNO_QUERY_THROW );
395cdf0e10cSrcweir                 xNameContainer->insertByName( aElementName, Any( xChild ) );
396cdf0e10cSrcweir 
397cdf0e10cSrcweir                 OUString aPath( TKGet( TK_Settings_Templates_ ).concat( aElementName ) );
398cdf0e10cSrcweir                 Reference< container::XNameReplace > xTemplates( GetConfigurationNode( xRoot, aPath ), UNO_QUERY );
399cdf0e10cSrcweir                 rSettings.SaveSettingsToConfiguration( xTemplates );
400cdf0e10cSrcweir             }
401cdf0e10cSrcweir             xRoot->commitChanges();
402cdf0e10cSrcweir         }
403cdf0e10cSrcweir         while( false );
404cdf0e10cSrcweir     }
405cdf0e10cSrcweir     catch( Exception& /* rException */ )
406cdf0e10cSrcweir     {
407cdf0e10cSrcweir 
408cdf0e10cSrcweir     }
409cdf0e10cSrcweir }
410cdf0e10cSrcweir 
OpenConfiguration(bool bReadOnly)411cdf0e10cSrcweir Reference< XInterface > ConfigurationAccess::OpenConfiguration( bool bReadOnly )
412cdf0e10cSrcweir {
413cdf0e10cSrcweir     Reference< XInterface > xRoot;
414cdf0e10cSrcweir     try
415cdf0e10cSrcweir     {
416597a4c59SAriel Constenla-Haile         Reference< lang::XMultiServiceFactory > xProvider( m_xContext->getServiceManager()->createInstanceWithContext( GetConfigurationProviderServiceName(), m_xContext ), UNO_QUERY );
417cdf0e10cSrcweir         if ( xProvider.is() )
418cdf0e10cSrcweir         {
419cdf0e10cSrcweir             Sequence< Any > aCreationArguments( 2 );
420cdf0e10cSrcweir             aCreationArguments[0] = makeAny( PropertyValue(
421cdf0e10cSrcweir                 OUString( RTL_CONSTASCII_USTRINGPARAM( "nodepath" ) ), 0,
422cdf0e10cSrcweir                 makeAny( GetPathToConfigurationRoot() ),
423cdf0e10cSrcweir                 PropertyState_DIRECT_VALUE ) );
424cdf0e10cSrcweir             aCreationArguments[1] = makeAny(beans::PropertyValue(
425cdf0e10cSrcweir                 OUString( RTL_CONSTASCII_USTRINGPARAM( "lazywrite" ) ), 0, makeAny( true ),
426cdf0e10cSrcweir                 PropertyState_DIRECT_VALUE ) );
427cdf0e10cSrcweir             OUString sAccessService;
428cdf0e10cSrcweir             if ( bReadOnly )
429cdf0e10cSrcweir                 sAccessService = OUString( RTL_CONSTASCII_USTRINGPARAM(
430cdf0e10cSrcweir                     "com.sun.star.configuration.ConfigurationAccess" ) );
431cdf0e10cSrcweir             else
432cdf0e10cSrcweir                 sAccessService = OUString( RTL_CONSTASCII_USTRINGPARAM(
433cdf0e10cSrcweir                     "com.sun.star.configuration.ConfigurationUpdateAccess" ) );
434cdf0e10cSrcweir 
435cdf0e10cSrcweir             xRoot = xProvider->createInstanceWithArguments(
436cdf0e10cSrcweir                 sAccessService, aCreationArguments );
437cdf0e10cSrcweir         }
438cdf0e10cSrcweir     }
439cdf0e10cSrcweir     catch ( Exception& /* rException */ )
440cdf0e10cSrcweir     {
441cdf0e10cSrcweir     }
442cdf0e10cSrcweir     return xRoot;
443cdf0e10cSrcweir }
444cdf0e10cSrcweir 
GetConfigurationNode(const Reference<XInterface> & xRoot,const OUString & sPathToNode)445cdf0e10cSrcweir Reference< XInterface > ConfigurationAccess::GetConfigurationNode(
446cdf0e10cSrcweir     const Reference< XInterface >& xRoot,
447cdf0e10cSrcweir     const OUString& sPathToNode )
448cdf0e10cSrcweir {
449cdf0e10cSrcweir     Reference< XInterface > xNode;
450cdf0e10cSrcweir     try
451cdf0e10cSrcweir     {
452cdf0e10cSrcweir         if ( !sPathToNode.getLength() )
453cdf0e10cSrcweir             xNode = xRoot;
454cdf0e10cSrcweir         else
455cdf0e10cSrcweir         {
456cdf0e10cSrcweir             Reference< XHierarchicalNameAccess > xHierarchy( xRoot, UNO_QUERY );
457cdf0e10cSrcweir             if ( xHierarchy.is() )
458cdf0e10cSrcweir             {
459cdf0e10cSrcweir                 xHierarchy->getByHierarchicalName( sPathToNode ) >>= xNode;
460cdf0e10cSrcweir             }
461cdf0e10cSrcweir         }
462cdf0e10cSrcweir     }
463cdf0e10cSrcweir     catch ( Exception& rException )
464cdf0e10cSrcweir     {
465cdf0e10cSrcweir         OSL_TRACE ("caught exception while getting configuration node %s: %s",
466cdf0e10cSrcweir             ::rtl::OUStringToOString(sPathToNode,
467cdf0e10cSrcweir                 RTL_TEXTENCODING_UTF8).getStr(),
468cdf0e10cSrcweir             ::rtl::OUStringToOString(rException.Message,
469cdf0e10cSrcweir                 RTL_TEXTENCODING_UTF8).getStr());
470cdf0e10cSrcweir     }
471cdf0e10cSrcweir     return xNode;
472cdf0e10cSrcweir }
473cdf0e10cSrcweir 
GetConfigProperty(const PPPOptimizerTokenEnum ePropertyToken) const474cdf0e10cSrcweir com::sun::star::uno::Any ConfigurationAccess::GetConfigProperty( const PPPOptimizerTokenEnum ePropertyToken ) const
475cdf0e10cSrcweir {
476cdf0e10cSrcweir     Any aRetValue;
477cdf0e10cSrcweir     const OptimizerSettings& rSettings( maSettings.front() );
478cdf0e10cSrcweir     try
479cdf0e10cSrcweir     {
480cdf0e10cSrcweir         switch( ePropertyToken )
481cdf0e10cSrcweir         {
482cdf0e10cSrcweir             case TK_Name :                      aRetValue <<= rSettings.maName; break;
483cdf0e10cSrcweir             case TK_JPEGCompression :           aRetValue <<= rSettings.mbJPEGCompression; break;
484cdf0e10cSrcweir             case TK_JPEGQuality :               aRetValue <<= rSettings.mnJPEGQuality; break;
485cdf0e10cSrcweir             case TK_RemoveCropArea :            aRetValue <<= rSettings.mbRemoveCropArea; break;
486cdf0e10cSrcweir             case TK_ImageResolution :           aRetValue <<= rSettings.mnImageResolution; break;
487cdf0e10cSrcweir             case TK_EmbedLinkedGraphics :       aRetValue <<= rSettings.mbEmbedLinkedGraphics; break;
488cdf0e10cSrcweir             case TK_OLEOptimization :           aRetValue <<= rSettings.mbOLEOptimization; break;
489cdf0e10cSrcweir             case TK_OLEOptimizationType :       aRetValue <<= rSettings.mnOLEOptimizationType; break;
490cdf0e10cSrcweir             case TK_DeleteUnusedMasterPages :   aRetValue <<= rSettings.mbDeleteUnusedMasterPages; break;
491cdf0e10cSrcweir             case TK_DeleteHiddenSlides :        aRetValue <<= rSettings.mbDeleteHiddenSlides; break;
492cdf0e10cSrcweir             case TK_DeleteNotesPages :          aRetValue <<= rSettings.mbDeleteNotesPages; break;
493cdf0e10cSrcweir             case TK_SaveAs :                    aRetValue <<= rSettings.mbSaveAs; break;
494cdf0e10cSrcweir             case TK_SaveAsURL :                 aRetValue <<= rSettings.maSaveAsURL; break;
495cdf0e10cSrcweir             case TK_FilterName :                aRetValue <<= rSettings.maFilterName; break;
496cdf0e10cSrcweir             case TK_OpenNewDocument :           aRetValue <<= rSettings.mbOpenNewDocument; break;
497cdf0e10cSrcweir             case TK_EstimatedFileSize :         aRetValue <<= rSettings.mnEstimatedFileSize; break;
498cdf0e10cSrcweir             default:
499cdf0e10cSrcweir                 break;
500cdf0e10cSrcweir         }
501cdf0e10cSrcweir     }
502cdf0e10cSrcweir     catch( Exception& /* rException */ )
503cdf0e10cSrcweir     {
504cdf0e10cSrcweir     }
505cdf0e10cSrcweir     return aRetValue;
506cdf0e10cSrcweir }
507cdf0e10cSrcweir 
SetConfigProperty(const PPPOptimizerTokenEnum ePropertyToken,const com::sun::star::uno::Any & rValue)508cdf0e10cSrcweir void ConfigurationAccess::SetConfigProperty( const PPPOptimizerTokenEnum ePropertyToken, const com::sun::star::uno::Any& rValue )
509cdf0e10cSrcweir {
510cdf0e10cSrcweir     OptimizerSettings& rSettings( maSettings.front() );
511cdf0e10cSrcweir     try
512cdf0e10cSrcweir     {
513cdf0e10cSrcweir         switch( ePropertyToken )
514cdf0e10cSrcweir         {
515cdf0e10cSrcweir             case TK_Name :                      rValue >>= rSettings.maName; break;
516cdf0e10cSrcweir             case TK_JPEGCompression :           rValue >>= rSettings.mbJPEGCompression; break;
517cdf0e10cSrcweir             case TK_JPEGQuality :               rValue >>= rSettings.mnJPEGQuality; break;
518cdf0e10cSrcweir             case TK_RemoveCropArea :            rValue >>= rSettings.mbRemoveCropArea; break;
519cdf0e10cSrcweir             case TK_ImageResolution :           rValue >>= rSettings.mnImageResolution; break;
520cdf0e10cSrcweir             case TK_EmbedLinkedGraphics :       rValue >>= rSettings.mbEmbedLinkedGraphics; break;
521cdf0e10cSrcweir             case TK_OLEOptimization :           rValue >>= rSettings.mbOLEOptimization; break;
522cdf0e10cSrcweir             case TK_OLEOptimizationType :       rValue >>= rSettings.mnOLEOptimizationType; break;
523cdf0e10cSrcweir             case TK_DeleteUnusedMasterPages :   rValue >>= rSettings.mbDeleteUnusedMasterPages; break;
524cdf0e10cSrcweir             case TK_DeleteHiddenSlides :        rValue >>= rSettings.mbDeleteHiddenSlides; break;
525cdf0e10cSrcweir             case TK_DeleteNotesPages :          rValue >>= rSettings.mbDeleteNotesPages; break;
526cdf0e10cSrcweir             case TK_CustomShowName :            rValue >>= rSettings.maCustomShowName; break;
527cdf0e10cSrcweir             case TK_SaveAs :                    rValue >>= rSettings.mbSaveAs; break;
528cdf0e10cSrcweir             case TK_SaveAsURL :                 rValue >>= rSettings.maSaveAsURL; break;
529cdf0e10cSrcweir             case TK_FilterName :                rValue >>= rSettings.maFilterName; break;
530cdf0e10cSrcweir             case TK_OpenNewDocument :           rValue >>= rSettings.mbOpenNewDocument; break;
531cdf0e10cSrcweir             case TK_EstimatedFileSize :         rValue >>= rSettings.mnEstimatedFileSize; break;
532cdf0e10cSrcweir             default:
533cdf0e10cSrcweir                 break;
534cdf0e10cSrcweir         }
535cdf0e10cSrcweir     }
536cdf0e10cSrcweir     catch( Exception& /* rException */ )
537cdf0e10cSrcweir     {
538cdf0e10cSrcweir     }
539cdf0e10cSrcweir }
540cdf0e10cSrcweir 
GetConfigProperty(const PPPOptimizerTokenEnum ePropertyToken,const sal_Bool bDefault) const541cdf0e10cSrcweir sal_Bool ConfigurationAccess::GetConfigProperty( const PPPOptimizerTokenEnum ePropertyToken, const sal_Bool bDefault ) const
542cdf0e10cSrcweir {
543cdf0e10cSrcweir     sal_Bool bRetValue = bDefault;
544cdf0e10cSrcweir     if ( ! ( GetConfigProperty( ePropertyToken ) >>= bRetValue ) )
545cdf0e10cSrcweir         bRetValue = bDefault;
546cdf0e10cSrcweir     return bRetValue;
547cdf0e10cSrcweir }
548cdf0e10cSrcweir 
GetConfigProperty(const PPPOptimizerTokenEnum ePropertyToken,const sal_Int16 nDefault) const549cdf0e10cSrcweir sal_Int16 ConfigurationAccess::GetConfigProperty( const PPPOptimizerTokenEnum ePropertyToken, const sal_Int16 nDefault ) const
550cdf0e10cSrcweir {
551cdf0e10cSrcweir     sal_Int16 nRetValue = nDefault;
552cdf0e10cSrcweir     if ( ! ( GetConfigProperty( ePropertyToken ) >>= nRetValue ) )
553cdf0e10cSrcweir         nRetValue = nDefault;
554cdf0e10cSrcweir     return nRetValue;
555cdf0e10cSrcweir }
556cdf0e10cSrcweir 
GetConfigProperty(const PPPOptimizerTokenEnum ePropertyToken,const sal_Int32 nDefault) const557cdf0e10cSrcweir sal_Int32 ConfigurationAccess::GetConfigProperty( const PPPOptimizerTokenEnum ePropertyToken, const sal_Int32 nDefault ) const
558cdf0e10cSrcweir {
559cdf0e10cSrcweir     sal_Int32 nRetValue = nDefault;
560cdf0e10cSrcweir     if ( ! ( GetConfigProperty( ePropertyToken ) >>= nRetValue ) )
561cdf0e10cSrcweir         nRetValue = nDefault;
562cdf0e10cSrcweir     return nRetValue;
563cdf0e10cSrcweir }
564cdf0e10cSrcweir 
GetConfigurationSequence()565cdf0e10cSrcweir Sequence< PropertyValue > ConfigurationAccess::GetConfigurationSequence()
566cdf0e10cSrcweir {
567cdf0e10cSrcweir     Sequence< PropertyValue > aRet( 15 );
568cdf0e10cSrcweir     OptimizerSettings& rSettings( maSettings.front() );
569cdf0e10cSrcweir     aRet[ 0 ].Name = TKGet( TK_JPEGCompression );
570cdf0e10cSrcweir     aRet[ 0 ].Value= Any( rSettings.mbJPEGCompression );
571cdf0e10cSrcweir     aRet[ 1 ].Name = TKGet( TK_JPEGQuality );
572cdf0e10cSrcweir     aRet[ 1 ].Value= Any( rSettings.mnJPEGQuality );
573cdf0e10cSrcweir     aRet[ 2 ].Name = TKGet( TK_RemoveCropArea );
574cdf0e10cSrcweir     aRet[ 2 ].Value= Any( rSettings.mbRemoveCropArea );
575cdf0e10cSrcweir     aRet[ 3 ].Name = TKGet( TK_ImageResolution );
576cdf0e10cSrcweir     aRet[ 3 ].Value= Any( rSettings.mnImageResolution );
577cdf0e10cSrcweir     aRet[ 4 ].Name = TKGet( TK_EmbedLinkedGraphics );
578cdf0e10cSrcweir     aRet[ 4 ].Value= Any( rSettings.mbEmbedLinkedGraphics );
579cdf0e10cSrcweir     aRet[ 5 ].Name = TKGet( TK_OLEOptimization );
580cdf0e10cSrcweir     aRet[ 5 ].Value= Any( rSettings.mbOLEOptimization );
581cdf0e10cSrcweir     aRet[ 6 ].Name = TKGet( TK_OLEOptimizationType );
582cdf0e10cSrcweir     aRet[ 6 ].Value= Any( rSettings.mnOLEOptimizationType );
583cdf0e10cSrcweir     aRet[ 7 ].Name = TKGet( TK_DeleteUnusedMasterPages );
584cdf0e10cSrcweir     aRet[ 7 ].Value= Any( rSettings.mbDeleteUnusedMasterPages );
585cdf0e10cSrcweir     aRet[ 8 ].Name = TKGet( TK_DeleteHiddenSlides );
586cdf0e10cSrcweir     aRet[ 8 ].Value= Any( rSettings.mbDeleteHiddenSlides );
587cdf0e10cSrcweir     aRet[ 9 ].Name = TKGet( TK_DeleteNotesPages );
588cdf0e10cSrcweir     aRet[ 9 ].Value= Any( rSettings.mbDeleteNotesPages );
589cdf0e10cSrcweir     aRet[ 10].Name = TKGet( TK_CustomShowName );
590cdf0e10cSrcweir     aRet[ 10].Value= Any( rSettings.maCustomShowName );
591cdf0e10cSrcweir     aRet[ 11].Name = TKGet( TK_SaveAsURL );
592cdf0e10cSrcweir     aRet[ 11].Value= Any( rSettings.maSaveAsURL );
593cdf0e10cSrcweir     aRet[ 12].Name = TKGet( TK_FilterName );
594cdf0e10cSrcweir     aRet[ 12].Value= Any( rSettings.maFilterName );
595cdf0e10cSrcweir     aRet[ 13].Name = TKGet( TK_OpenNewDocument );
596cdf0e10cSrcweir     aRet[ 13].Value= Any( rSettings.mbOpenNewDocument );
597cdf0e10cSrcweir     aRet[ 14].Name = TKGet( TK_EstimatedFileSize );
598cdf0e10cSrcweir     aRet[ 14].Value= Any( rSettings.mnEstimatedFileSize );
599cdf0e10cSrcweir     return aRet;
600cdf0e10cSrcweir }
601cdf0e10cSrcweir 
GetOptimizerSettingsByName(const rtl::OUString & rName)602cdf0e10cSrcweir std::vector< OptimizerSettings >::iterator ConfigurationAccess::GetOptimizerSettingsByName( const rtl::OUString& rName )
603cdf0e10cSrcweir {
604cdf0e10cSrcweir     std::vector< OptimizerSettings >::iterator aIter( maSettings.begin() + 1 );
605cdf0e10cSrcweir     while ( aIter != maSettings.end() )
606cdf0e10cSrcweir     {
607cdf0e10cSrcweir         if ( aIter->maName == rName )
608cdf0e10cSrcweir             break;
609cdf0e10cSrcweir         aIter++;
610cdf0e10cSrcweir     }
611cdf0e10cSrcweir     return aIter;
612cdf0e10cSrcweir }
613*e1f21a75Smseidel 
614*e1f21a75Smseidel /* vim: set noet sw=4 ts=4: */
615