1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski *
3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file
5*b1cdbd2cSJim Jagielski * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file
7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski *
11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski *
13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the
17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski * under the License.
19*b1cdbd2cSJim Jagielski *
20*b1cdbd2cSJim Jagielski *************************************************************/
21*b1cdbd2cSJim Jagielski
22*b1cdbd2cSJim Jagielski
23*b1cdbd2cSJim Jagielski
24*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove
25*b1cdbd2cSJim Jagielski #include "precompiled_sdext.hxx"
26*b1cdbd2cSJim Jagielski
27*b1cdbd2cSJim Jagielski #include "configurationaccess.hxx"
28*b1cdbd2cSJim Jagielski #include <com/sun/star/frame/XComponentLoader.hpp>
29*b1cdbd2cSJim Jagielski #include <com/sun/star/container/XHierarchicalNameAccess.hpp>
30*b1cdbd2cSJim Jagielski #include <com/sun/star/util/XChangesBatch.hpp>
31*b1cdbd2cSJim Jagielski #include <com/sun/star/container/XNameContainer.hpp>
32*b1cdbd2cSJim Jagielski #include <com/sun/star/util/XMacroExpander.hpp>
33*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/XSingleServiceFactory.hpp>
34*b1cdbd2cSJim Jagielski #include <com/sun/star/resource/XResourceBundleLoader.hpp>
35*b1cdbd2cSJim Jagielski
36*b1cdbd2cSJim Jagielski #include <rtl/ustrbuf.hxx>
37*b1cdbd2cSJim Jagielski
38*b1cdbd2cSJim Jagielski #include "minimizer.hrc"
39*b1cdbd2cSJim Jagielski
40*b1cdbd2cSJim Jagielski using namespace ::com::sun::star;
41*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::uno;
42*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::beans;
43*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::container;
44*b1cdbd2cSJim Jagielski
45*b1cdbd2cSJim Jagielski using rtl::OUString;
46*b1cdbd2cSJim Jagielski using rtl::OUStringBuffer;
47*b1cdbd2cSJim Jagielski
48*b1cdbd2cSJim Jagielski
49*b1cdbd2cSJim Jagielski #include <rtl/instance.hxx>
50*b1cdbd2cSJim Jagielski
51*b1cdbd2cSJim Jagielski typedef std::map < sal_Int32, rtl::OUString > StringResourceMap;
52*b1cdbd2cSJim Jagielski
53*b1cdbd2cSJim Jagielski struct StaticResourceMap
54*b1cdbd2cSJim Jagielski : public rtl::StaticWithInit< StringResourceMap, StaticResourceMap >
55*b1cdbd2cSJim Jagielski {
56*b1cdbd2cSJim Jagielski StringResourceMap &
57*b1cdbd2cSJim Jagielski operator()() const;
58*b1cdbd2cSJim Jagielski };
59*b1cdbd2cSJim Jagielski
60*b1cdbd2cSJim Jagielski StringResourceMap &
operator ()() const61*b1cdbd2cSJim Jagielski StaticResourceMap::operator()() const
62*b1cdbd2cSJim Jagielski {
63*b1cdbd2cSJim Jagielski static StringResourceMap aMap;
64*b1cdbd2cSJim Jagielski return aMap;
65*b1cdbd2cSJim Jagielski }
66*b1cdbd2cSJim Jagielski
GetConfigurationProviderServiceName(void)67*b1cdbd2cSJim Jagielski static const OUString& GetConfigurationProviderServiceName (void)
68*b1cdbd2cSJim Jagielski {
69*b1cdbd2cSJim Jagielski static const OUString sConfigurationProviderServiceName (
70*b1cdbd2cSJim Jagielski RTL_CONSTASCII_USTRINGPARAM(
71*b1cdbd2cSJim Jagielski "com.sun.star.configuration.ConfigurationProvider"));
72*b1cdbd2cSJim Jagielski return sConfigurationProviderServiceName;
73*b1cdbd2cSJim Jagielski }
GetPathToConfigurationRoot(void)74*b1cdbd2cSJim Jagielski static const OUString& GetPathToConfigurationRoot (void)
75*b1cdbd2cSJim Jagielski {
76*b1cdbd2cSJim Jagielski static const OUString sPathToConfigurationRoot (
77*b1cdbd2cSJim Jagielski RTL_CONSTASCII_USTRINGPARAM("org.openoffice.Office.Impress/PresentationMinimizer"));
78*b1cdbd2cSJim Jagielski return sPathToConfigurationRoot;
79*b1cdbd2cSJim Jagielski }
80*b1cdbd2cSJim Jagielski
lcl_loadString(const Reference<resource::XResourceBundle> xResourceBundle,sal_Int32 nResourceId)81*b1cdbd2cSJim Jagielski static OUString lcl_loadString(
82*b1cdbd2cSJim Jagielski const Reference< resource::XResourceBundle > xResourceBundle,
83*b1cdbd2cSJim Jagielski sal_Int32 nResourceId )
84*b1cdbd2cSJim Jagielski {
85*b1cdbd2cSJim Jagielski OUString sString;
86*b1cdbd2cSJim Jagielski OUStringBuffer sKey;
87*b1cdbd2cSJim Jagielski sKey.appendAscii( RTL_CONSTASCII_STRINGPARAM( "string:" ) );
88*b1cdbd2cSJim Jagielski sKey.append( nResourceId );
89*b1cdbd2cSJim Jagielski
90*b1cdbd2cSJim Jagielski try
91*b1cdbd2cSJim Jagielski {
92*b1cdbd2cSJim Jagielski OSL_VERIFY( xResourceBundle->getByName( sKey.makeStringAndClear() ) >>= sString );
93*b1cdbd2cSJim Jagielski }
94*b1cdbd2cSJim Jagielski catch( const uno::Exception& )
95*b1cdbd2cSJim Jagielski {
96*b1cdbd2cSJim Jagielski OSL_ENSURE( false, "OptimizerSettings: missing resource!" );
97*b1cdbd2cSJim Jagielski }
98*b1cdbd2cSJim Jagielski
99*b1cdbd2cSJim Jagielski return sString;
100*b1cdbd2cSJim Jagielski }
101*b1cdbd2cSJim Jagielski
LoadSettingsFromConfiguration(const Reference<XNameAccess> & rSettings)102*b1cdbd2cSJim Jagielski void OptimizerSettings::LoadSettingsFromConfiguration( const Reference< XNameAccess >& rSettings )
103*b1cdbd2cSJim Jagielski {
104*b1cdbd2cSJim Jagielski if ( rSettings.is() )
105*b1cdbd2cSJim Jagielski {
106*b1cdbd2cSJim Jagielski const Sequence< OUString > aElements( rSettings->getElementNames() );
107*b1cdbd2cSJim Jagielski for ( int i = 0; i < aElements.getLength(); i++ )
108*b1cdbd2cSJim Jagielski {
109*b1cdbd2cSJim Jagielski try
110*b1cdbd2cSJim Jagielski {
111*b1cdbd2cSJim Jagielski const OUString aPropertyName( aElements[ i ] );
112*b1cdbd2cSJim Jagielski Any aValue( rSettings->getByName( aPropertyName ) );
113*b1cdbd2cSJim Jagielski switch( TKGet( aPropertyName ) )
114*b1cdbd2cSJim Jagielski {
115*b1cdbd2cSJim Jagielski case TK_Name : aValue >>= maName; break;
116*b1cdbd2cSJim Jagielski case TK_JPEGCompression : aValue >>= mbJPEGCompression; break;
117*b1cdbd2cSJim Jagielski case TK_JPEGQuality : aValue >>= mnJPEGQuality; break;
118*b1cdbd2cSJim Jagielski case TK_RemoveCropArea : aValue >>= mbRemoveCropArea; break;
119*b1cdbd2cSJim Jagielski case TK_ImageResolution : aValue >>= mnImageResolution; break;
120*b1cdbd2cSJim Jagielski case TK_EmbedLinkedGraphics : aValue >>= mbEmbedLinkedGraphics; break;
121*b1cdbd2cSJim Jagielski case TK_OLEOptimization : aValue >>= mbOLEOptimization; break;
122*b1cdbd2cSJim Jagielski case TK_OLEOptimizationType : aValue >>= mnOLEOptimizationType; break;
123*b1cdbd2cSJim Jagielski case TK_DeleteUnusedMasterPages : aValue >>= mbDeleteUnusedMasterPages; break;
124*b1cdbd2cSJim Jagielski case TK_DeleteHiddenSlides : aValue >>= mbDeleteHiddenSlides; break;
125*b1cdbd2cSJim Jagielski case TK_DeleteNotesPages : aValue >>= mbDeleteNotesPages ;break;
126*b1cdbd2cSJim Jagielski case TK_SaveAs : aValue >>= mbSaveAs; break;
127*b1cdbd2cSJim Jagielski // case TK_SaveAsURL : aValue >>= maSaveAsURL; break; // URL is not saved to configuration
128*b1cdbd2cSJim Jagielski // case TK_FilterName : aValue >>= maFilterName; break; // URL is not saved to configuration
129*b1cdbd2cSJim Jagielski case TK_OpenNewDocument : aValue >>= mbOpenNewDocument; break;
130*b1cdbd2cSJim Jagielski default: break;
131*b1cdbd2cSJim Jagielski }
132*b1cdbd2cSJim Jagielski }
133*b1cdbd2cSJim Jagielski catch( Exception& )
134*b1cdbd2cSJim Jagielski {
135*b1cdbd2cSJim Jagielski }
136*b1cdbd2cSJim Jagielski }
137*b1cdbd2cSJim Jagielski }
138*b1cdbd2cSJim Jagielski }
139*b1cdbd2cSJim Jagielski
SaveSettingsToConfiguration(const Reference<XNameReplace> & rSettings)140*b1cdbd2cSJim Jagielski void OptimizerSettings::SaveSettingsToConfiguration( const Reference< XNameReplace >& rSettings )
141*b1cdbd2cSJim Jagielski {
142*b1cdbd2cSJim Jagielski if ( rSettings.is() )
143*b1cdbd2cSJim Jagielski {
144*b1cdbd2cSJim Jagielski OUString pNames[] = {
145*b1cdbd2cSJim Jagielski TKGet( TK_Name ),
146*b1cdbd2cSJim Jagielski TKGet( TK_JPEGCompression ),
147*b1cdbd2cSJim Jagielski TKGet( TK_JPEGQuality ),
148*b1cdbd2cSJim Jagielski TKGet( TK_RemoveCropArea ),
149*b1cdbd2cSJim Jagielski TKGet( TK_ImageResolution ),
150*b1cdbd2cSJim Jagielski TKGet( TK_EmbedLinkedGraphics ),
151*b1cdbd2cSJim Jagielski TKGet( TK_OLEOptimization ),
152*b1cdbd2cSJim Jagielski TKGet( TK_OLEOptimizationType ),
153*b1cdbd2cSJim Jagielski TKGet( TK_DeleteUnusedMasterPages ),
154*b1cdbd2cSJim Jagielski TKGet( TK_DeleteHiddenSlides ),
155*b1cdbd2cSJim Jagielski TKGet( TK_DeleteNotesPages ),
156*b1cdbd2cSJim Jagielski TKGet( TK_SaveAs ),
157*b1cdbd2cSJim Jagielski // TKGet( TK_SaveAsURL ),
158*b1cdbd2cSJim Jagielski // TKGet( TK_FilterName ),
159*b1cdbd2cSJim Jagielski TKGet( TK_OpenNewDocument ) };
160*b1cdbd2cSJim Jagielski
161*b1cdbd2cSJim Jagielski Any pValues[] = {
162*b1cdbd2cSJim Jagielski Any( maName ),
163*b1cdbd2cSJim Jagielski Any( mbJPEGCompression ),
164*b1cdbd2cSJim Jagielski Any( mnJPEGQuality ),
165*b1cdbd2cSJim Jagielski Any( mbRemoveCropArea ),
166*b1cdbd2cSJim Jagielski Any( mnImageResolution ),
167*b1cdbd2cSJim Jagielski Any( mbEmbedLinkedGraphics ),
168*b1cdbd2cSJim Jagielski Any( mbOLEOptimization ),
169*b1cdbd2cSJim Jagielski Any( mnOLEOptimizationType ),
170*b1cdbd2cSJim Jagielski Any( mbDeleteUnusedMasterPages ),
171*b1cdbd2cSJim Jagielski Any( mbDeleteHiddenSlides ),
172*b1cdbd2cSJim Jagielski Any( mbDeleteNotesPages ),
173*b1cdbd2cSJim Jagielski Any( mbSaveAs ),
174*b1cdbd2cSJim Jagielski // Any( maSaveAsURL ),
175*b1cdbd2cSJim Jagielski // Any( maFilterName ),
176*b1cdbd2cSJim Jagielski Any( mbOpenNewDocument ) };
177*b1cdbd2cSJim Jagielski
178*b1cdbd2cSJim Jagielski sal_Int32 i, nCount = sizeof( pNames ) / sizeof( OUString );
179*b1cdbd2cSJim Jagielski
180*b1cdbd2cSJim Jagielski for ( i = 0; i < nCount; i++ )
181*b1cdbd2cSJim Jagielski {
182*b1cdbd2cSJim Jagielski try
183*b1cdbd2cSJim Jagielski {
184*b1cdbd2cSJim Jagielski rSettings->replaceByName( pNames[ i ], pValues[ i ] );
185*b1cdbd2cSJim Jagielski }
186*b1cdbd2cSJim Jagielski catch( Exception& /* rException */ )
187*b1cdbd2cSJim Jagielski {
188*b1cdbd2cSJim Jagielski }
189*b1cdbd2cSJim Jagielski }
190*b1cdbd2cSJim Jagielski }
191*b1cdbd2cSJim Jagielski }
192*b1cdbd2cSJim Jagielski
operator ==(const OptimizerSettings & rOptimizerSettings) const193*b1cdbd2cSJim Jagielski sal_Bool OptimizerSettings::operator==( const OptimizerSettings& rOptimizerSettings ) const
194*b1cdbd2cSJim Jagielski {
195*b1cdbd2cSJim Jagielski return ( rOptimizerSettings.mbJPEGCompression == mbJPEGCompression )
196*b1cdbd2cSJim Jagielski && ( rOptimizerSettings.mnJPEGQuality == mnJPEGQuality )
197*b1cdbd2cSJim Jagielski && ( rOptimizerSettings.mbRemoveCropArea == mbRemoveCropArea )
198*b1cdbd2cSJim Jagielski && ( rOptimizerSettings.mnImageResolution == mnImageResolution )
199*b1cdbd2cSJim Jagielski && ( rOptimizerSettings.mbEmbedLinkedGraphics == mbEmbedLinkedGraphics )
200*b1cdbd2cSJim Jagielski && ( rOptimizerSettings.mbOLEOptimization == mbOLEOptimization )
201*b1cdbd2cSJim Jagielski && ( rOptimizerSettings.mnOLEOptimizationType == mnOLEOptimizationType )
202*b1cdbd2cSJim Jagielski && ( rOptimizerSettings.mbDeleteUnusedMasterPages == mbDeleteUnusedMasterPages )
203*b1cdbd2cSJim Jagielski && ( rOptimizerSettings.mbDeleteHiddenSlides == mbDeleteHiddenSlides )
204*b1cdbd2cSJim Jagielski && ( rOptimizerSettings.mbDeleteNotesPages == mbDeleteNotesPages );
205*b1cdbd2cSJim Jagielski // && ( rOptimizerSettings.mbOpenNewDocument == mbOpenNewDocument );
206*b1cdbd2cSJim Jagielski }
207*b1cdbd2cSJim Jagielski
208*b1cdbd2cSJim Jagielski
ConfigurationAccess(const Reference<uno::XComponentContext> & rxContext,OptimizerSettings * pDefaultSettings)209*b1cdbd2cSJim Jagielski ConfigurationAccess::ConfigurationAccess( const Reference< uno::XComponentContext >& rxContext, OptimizerSettings* pDefaultSettings ) :
210*b1cdbd2cSJim Jagielski m_xContext( rxContext )
211*b1cdbd2cSJim Jagielski {
212*b1cdbd2cSJim Jagielski LoadStrings();
213*b1cdbd2cSJim Jagielski maSettings.push_back( pDefaultSettings ?
214*b1cdbd2cSJim Jagielski *pDefaultSettings : OptimizerSettings() );
215*b1cdbd2cSJim Jagielski maSettings.back().maName = TKGet( TK_LastUsedSettings );
216*b1cdbd2cSJim Jagielski LoadConfiguration();
217*b1cdbd2cSJim Jagielski maInitialSettings = maSettings;
218*b1cdbd2cSJim Jagielski };
219*b1cdbd2cSJim Jagielski
~ConfigurationAccess()220*b1cdbd2cSJim Jagielski ConfigurationAccess::~ConfigurationAccess()
221*b1cdbd2cSJim Jagielski {
222*b1cdbd2cSJim Jagielski }
223*b1cdbd2cSJim Jagielski
getString(sal_Int32 nResId)224*b1cdbd2cSJim Jagielski rtl::OUString ConfigurationAccess::getString( sal_Int32 nResId )
225*b1cdbd2cSJim Jagielski {
226*b1cdbd2cSJim Jagielski const StringResourceMap &aStrings = StaticResourceMap::get();
227*b1cdbd2cSJim Jagielski StringResourceMap::const_iterator aIter( aStrings.find( nResId ) );
228*b1cdbd2cSJim Jagielski return aIter != aStrings.end() ? ((*aIter).second) : rtl::OUString();
229*b1cdbd2cSJim Jagielski }
230*b1cdbd2cSJim Jagielski
LoadStrings()231*b1cdbd2cSJim Jagielski void ConfigurationAccess::LoadStrings()
232*b1cdbd2cSJim Jagielski {
233*b1cdbd2cSJim Jagielski static bool bLoaded = false;
234*b1cdbd2cSJim Jagielski if ( bLoaded )
235*b1cdbd2cSJim Jagielski return;
236*b1cdbd2cSJim Jagielski else
237*b1cdbd2cSJim Jagielski bLoaded = true;
238*b1cdbd2cSJim Jagielski try
239*b1cdbd2cSJim Jagielski {
240*b1cdbd2cSJim Jagielski
241*b1cdbd2cSJim Jagielski Reference< resource::XResourceBundleLoader > xResourceBundleLoader(
242*b1cdbd2cSJim Jagielski m_xContext->getValueByName(
243*b1cdbd2cSJim Jagielski OUString( RTL_CONSTASCII_USTRINGPARAM(
244*b1cdbd2cSJim Jagielski "/singletons/com.sun.star.resource.OfficeResourceLoader" ) ) ),
245*b1cdbd2cSJim Jagielski UNO_QUERY_THROW );
246*b1cdbd2cSJim Jagielski
247*b1cdbd2cSJim Jagielski Reference< resource::XResourceBundle > xResourceBundle(
248*b1cdbd2cSJim Jagielski xResourceBundleLoader->loadBundle_Default(
249*b1cdbd2cSJim Jagielski OUString( RTL_CONSTASCII_USTRINGPARAM( "minimizer" ) ) ),
250*b1cdbd2cSJim Jagielski UNO_SET_THROW );
251*b1cdbd2cSJim Jagielski
252*b1cdbd2cSJim Jagielski StringResourceMap &aStrings = StaticResourceMap::get();
253*b1cdbd2cSJim Jagielski aStrings[ STR_PRESENTATION_MINIMIZER ] = lcl_loadString( xResourceBundle, STR_PRESENTATION_MINIMIZER );
254*b1cdbd2cSJim Jagielski aStrings[ STR_STEPS ] = lcl_loadString( xResourceBundle, STR_STEPS );
255*b1cdbd2cSJim Jagielski aStrings[ STR_HELP ] = lcl_loadString( xResourceBundle, STR_HELP );
256*b1cdbd2cSJim Jagielski aStrings[ STR_BACK ] = lcl_loadString( xResourceBundle, STR_BACK );
257*b1cdbd2cSJim Jagielski aStrings[ STR_NEXT ] = lcl_loadString( xResourceBundle, STR_NEXT );
258*b1cdbd2cSJim Jagielski aStrings[ STR_FINISH ] = lcl_loadString( xResourceBundle, STR_FINISH );
259*b1cdbd2cSJim Jagielski aStrings[ STR_CANCEL ] = lcl_loadString( xResourceBundle, STR_CANCEL );
260*b1cdbd2cSJim Jagielski aStrings[ STR_INTRODUCTION ] = lcl_loadString( xResourceBundle, STR_INTRODUCTION );
261*b1cdbd2cSJim Jagielski aStrings[ STR_INTRODUCTION_T ] = lcl_loadString( xResourceBundle, STR_INTRODUCTION_T );
262*b1cdbd2cSJim Jagielski aStrings[ STR_CHOSE_SETTINGS ] = lcl_loadString( xResourceBundle, STR_CHOSE_SETTINGS );
263*b1cdbd2cSJim Jagielski aStrings[ STR_REMOVE ] = lcl_loadString( xResourceBundle, STR_REMOVE );
264*b1cdbd2cSJim Jagielski aStrings[ STR_GRAPHIC_OPTIMIZATION ] = lcl_loadString( xResourceBundle, STR_GRAPHIC_OPTIMIZATION );
265*b1cdbd2cSJim Jagielski aStrings[ STR_IMAGE_OPTIMIZATION ] = lcl_loadString( xResourceBundle, STR_IMAGE_OPTIMIZATION );
266*b1cdbd2cSJim Jagielski aStrings[ STR_LOSSLESS_COMPRESSION ] = lcl_loadString( xResourceBundle, STR_LOSSLESS_COMPRESSION );
267*b1cdbd2cSJim Jagielski aStrings[ STR_JPEG_COMPRESSION ] = lcl_loadString( xResourceBundle, STR_JPEG_COMPRESSION );
268*b1cdbd2cSJim Jagielski aStrings[ STR_QUALITY ] = lcl_loadString( xResourceBundle, STR_QUALITY );
269*b1cdbd2cSJim Jagielski aStrings[ STR_REMOVE_CROP_AREA ] = lcl_loadString( xResourceBundle, STR_REMOVE_CROP_AREA );
270*b1cdbd2cSJim Jagielski aStrings[ STR_IMAGE_RESOLUTION ] = lcl_loadString( xResourceBundle, STR_IMAGE_RESOLUTION );
271*b1cdbd2cSJim Jagielski aStrings[ STR_IMAGE_RESOLUTION_0 ] = lcl_loadString( xResourceBundle, STR_IMAGE_RESOLUTION_0 );
272*b1cdbd2cSJim Jagielski aStrings[ STR_IMAGE_RESOLUTION_1 ] = lcl_loadString( xResourceBundle, STR_IMAGE_RESOLUTION_1 );
273*b1cdbd2cSJim Jagielski aStrings[ STR_IMAGE_RESOLUTION_2 ] = lcl_loadString( xResourceBundle, STR_IMAGE_RESOLUTION_2 );
274*b1cdbd2cSJim Jagielski aStrings[ STR_IMAGE_RESOLUTION_3 ] = lcl_loadString( xResourceBundle, STR_IMAGE_RESOLUTION_3 );
275*b1cdbd2cSJim Jagielski aStrings[ STR_EMBED_LINKED_GRAPHICS ] = lcl_loadString( xResourceBundle, STR_EMBED_LINKED_GRAPHICS );
276*b1cdbd2cSJim Jagielski aStrings[ STR_OLE_OBJECTS ] = lcl_loadString( xResourceBundle, STR_OLE_OBJECTS );
277*b1cdbd2cSJim Jagielski aStrings[ STR_OLE_OPTIMIZATION ] = lcl_loadString( xResourceBundle, STR_OLE_OPTIMIZATION );
278*b1cdbd2cSJim Jagielski aStrings[ STR_OLE_REPLACE ] = lcl_loadString( xResourceBundle, STR_OLE_REPLACE );
279*b1cdbd2cSJim Jagielski aStrings[ STR_ALL_OLE_OBJECTS ] = lcl_loadString( xResourceBundle, STR_ALL_OLE_OBJECTS );
280*b1cdbd2cSJim Jagielski aStrings[ STR_ALIEN_OLE_OBJECTS_ONLY ] = lcl_loadString( xResourceBundle, STR_ALIEN_OLE_OBJECTS_ONLY );
281*b1cdbd2cSJim Jagielski aStrings[ STR_OLE_OBJECTS_DESC ] = lcl_loadString( xResourceBundle, STR_OLE_OBJECTS_DESC );
282*b1cdbd2cSJim Jagielski aStrings[ STR_NO_OLE_OBJECTS_DESC ] = lcl_loadString( xResourceBundle, STR_NO_OLE_OBJECTS_DESC );
283*b1cdbd2cSJim Jagielski aStrings[ STR_SLIDES ] = lcl_loadString( xResourceBundle, STR_SLIDES );
284*b1cdbd2cSJim Jagielski aStrings[ STR_CHOOSE_SLIDES ] = lcl_loadString( xResourceBundle, STR_CHOOSE_SLIDES );
285*b1cdbd2cSJim Jagielski aStrings[ STR_MASTER_PAGES ] = lcl_loadString( xResourceBundle, STR_MASTER_PAGES );
286*b1cdbd2cSJim Jagielski aStrings[ STR_DELETE_MASTER_PAGES ] = lcl_loadString( xResourceBundle, STR_DELETE_MASTER_PAGES );
287*b1cdbd2cSJim Jagielski aStrings[ STR_DELETE_NOTES_PAGES ] = lcl_loadString( xResourceBundle, STR_DELETE_NOTES_PAGES );
288*b1cdbd2cSJim Jagielski aStrings[ STR_DELETE_HIDDEN_SLIDES ] = lcl_loadString( xResourceBundle, STR_DELETE_HIDDEN_SLIDES );
289*b1cdbd2cSJim Jagielski aStrings[ STR_CUSTOM_SHOW ] = lcl_loadString( xResourceBundle, STR_CUSTOM_SHOW );
290*b1cdbd2cSJim Jagielski aStrings[ STR_SUMMARY ] = lcl_loadString( xResourceBundle, STR_SUMMARY );
291*b1cdbd2cSJim Jagielski aStrings[ STR_SUMMARY_TITLE ] = lcl_loadString( xResourceBundle, STR_SUMMARY_TITLE );
292*b1cdbd2cSJim Jagielski aStrings[ STR_PROGRESS ] = lcl_loadString( xResourceBundle, STR_PROGRESS );
293*b1cdbd2cSJim Jagielski aStrings[ STR_OBJECTS_OPTIMIZED ] = lcl_loadString( xResourceBundle, STR_OBJECTS_OPTIMIZED );
294*b1cdbd2cSJim Jagielski aStrings[ STR_APPLY_TO_CURRENT ] = lcl_loadString( xResourceBundle, STR_APPLY_TO_CURRENT );
295*b1cdbd2cSJim Jagielski aStrings[ STR_AUTOMATICALLY_OPEN ] = lcl_loadString( xResourceBundle, STR_AUTOMATICALLY_OPEN );
296*b1cdbd2cSJim Jagielski aStrings[ STR_SAVE_SETTINGS ] = lcl_loadString( xResourceBundle, STR_SAVE_SETTINGS );
297*b1cdbd2cSJim Jagielski aStrings[ STR_SAVE_AS ] = lcl_loadString( xResourceBundle, STR_SAVE_AS );
298*b1cdbd2cSJim Jagielski aStrings[ STR_DELETE_SLIDES ] = lcl_loadString( xResourceBundle, STR_DELETE_SLIDES );
299*b1cdbd2cSJim Jagielski aStrings[ STR_OPTIMIZE_IMAGES ] = lcl_loadString( xResourceBundle, STR_OPTIMIZE_IMAGES );
300*b1cdbd2cSJim Jagielski aStrings[ STR_CREATE_REPLACEMENT ] = lcl_loadString( xResourceBundle, STR_CREATE_REPLACEMENT );
301*b1cdbd2cSJim Jagielski aStrings[ STR_CURRENT_FILESIZE ] = lcl_loadString( xResourceBundle, STR_CURRENT_FILESIZE );
302*b1cdbd2cSJim Jagielski aStrings[ STR_ESTIMATED_FILESIZE ] = lcl_loadString( xResourceBundle, STR_ESTIMATED_FILESIZE );
303*b1cdbd2cSJim Jagielski aStrings[ STR_MB ] = lcl_loadString( xResourceBundle, STR_MB );
304*b1cdbd2cSJim Jagielski aStrings[ STR_MY_SETTINGS ] = lcl_loadString( xResourceBundle, STR_MY_SETTINGS );
305*b1cdbd2cSJim Jagielski aStrings[ STR_DEFAULT_SESSION ] = lcl_loadString( xResourceBundle, STR_DEFAULT_SESSION );
306*b1cdbd2cSJim Jagielski aStrings[ STR_MODIFY_WARNING ] = lcl_loadString( xResourceBundle, STR_MODIFY_WARNING );
307*b1cdbd2cSJim Jagielski aStrings[ STR_YES ] = lcl_loadString( xResourceBundle, STR_YES );
308*b1cdbd2cSJim Jagielski aStrings[ STR_OK ] = lcl_loadString( xResourceBundle, STR_OK );
309*b1cdbd2cSJim Jagielski aStrings[ STR_INFO_1 ] = lcl_loadString( xResourceBundle, STR_INFO_1 );
310*b1cdbd2cSJim Jagielski aStrings[ STR_INFO_2 ] = lcl_loadString( xResourceBundle, STR_INFO_2 );
311*b1cdbd2cSJim Jagielski aStrings[ STR_INFO_3 ] = lcl_loadString( xResourceBundle, STR_INFO_3 );
312*b1cdbd2cSJim Jagielski aStrings[ STR_INFO_4 ] = lcl_loadString( xResourceBundle, STR_INFO_4 );
313*b1cdbd2cSJim Jagielski aStrings[ STR_DUPLICATING_PRESENTATION ] = lcl_loadString( xResourceBundle, STR_DUPLICATING_PRESENTATION );
314*b1cdbd2cSJim Jagielski aStrings[ STR_DELETING_SLIDES ] = lcl_loadString( xResourceBundle, STR_DELETING_SLIDES );
315*b1cdbd2cSJim Jagielski aStrings[ STR_OPTIMIZING_GRAPHICS ] = lcl_loadString( xResourceBundle, STR_OPTIMIZING_GRAPHICS );
316*b1cdbd2cSJim Jagielski aStrings[ STR_CREATING_OLE_REPLACEMENTS] = lcl_loadString( xResourceBundle, STR_CREATING_OLE_REPLACEMENTS );
317*b1cdbd2cSJim Jagielski aStrings[ STR_FILESIZESEPARATOR ] = lcl_loadString( xResourceBundle, STR_FILESIZESEPARATOR );
318*b1cdbd2cSJim Jagielski aStrings[ STR_INFO_DIALOG ] = lcl_loadString( xResourceBundle, STR_INFO_DIALOG );
319*b1cdbd2cSJim Jagielski }
320*b1cdbd2cSJim Jagielski catch( Exception& )
321*b1cdbd2cSJim Jagielski {
322*b1cdbd2cSJim Jagielski }
323*b1cdbd2cSJim Jagielski }
324*b1cdbd2cSJim Jagielski
LoadConfiguration()325*b1cdbd2cSJim Jagielski void ConfigurationAccess::LoadConfiguration()
326*b1cdbd2cSJim Jagielski {
327*b1cdbd2cSJim Jagielski try
328*b1cdbd2cSJim Jagielski {
329*b1cdbd2cSJim Jagielski do
330*b1cdbd2cSJim Jagielski {
331*b1cdbd2cSJim Jagielski Reference< XInterface > xRoot( OpenConfiguration( true ) );
332*b1cdbd2cSJim Jagielski if ( !xRoot.is() )
333*b1cdbd2cSJim Jagielski break;
334*b1cdbd2cSJim Jagielski Reference< container::XNameAccess > xSet( GetConfigurationNode( xRoot, TKGet( TK_LastUsedSettings ) ), UNO_QUERY );
335*b1cdbd2cSJim Jagielski if ( xSet.is() )
336*b1cdbd2cSJim Jagielski {
337*b1cdbd2cSJim Jagielski OptimizerSettings& rCurrent( maSettings.front() );
338*b1cdbd2cSJim Jagielski rCurrent.LoadSettingsFromConfiguration( xSet );
339*b1cdbd2cSJim Jagielski }
340*b1cdbd2cSJim Jagielski xSet = Reference< container::XNameAccess >( GetConfigurationNode( xRoot, TKGet( TK_Settings_Templates ) ), UNO_QUERY );
341*b1cdbd2cSJim Jagielski if ( xSet.is() )
342*b1cdbd2cSJim Jagielski {
343*b1cdbd2cSJim Jagielski const Sequence< OUString > aElements( xSet->getElementNames() );
344*b1cdbd2cSJim Jagielski for ( int i = 0; i < aElements.getLength(); i++ )
345*b1cdbd2cSJim Jagielski {
346*b1cdbd2cSJim Jagielski try
347*b1cdbd2cSJim Jagielski {
348*b1cdbd2cSJim Jagielski OUString aPath( TKGet( TK_Settings_Templates_ ).concat( aElements[ i ] ) );
349*b1cdbd2cSJim Jagielski Reference< container::XNameAccess > xTemplates( GetConfigurationNode( xRoot, aPath ), UNO_QUERY );
350*b1cdbd2cSJim Jagielski if ( xTemplates.is() )
351*b1cdbd2cSJim Jagielski {
352*b1cdbd2cSJim Jagielski maSettings.push_back( OptimizerSettings() );
353*b1cdbd2cSJim Jagielski maSettings.back().LoadSettingsFromConfiguration( xTemplates );
354*b1cdbd2cSJim Jagielski }
355*b1cdbd2cSJim Jagielski }
356*b1cdbd2cSJim Jagielski catch( Exception& /* rException */ )
357*b1cdbd2cSJim Jagielski {
358*b1cdbd2cSJim Jagielski }
359*b1cdbd2cSJim Jagielski }
360*b1cdbd2cSJim Jagielski }
361*b1cdbd2cSJim Jagielski }
362*b1cdbd2cSJim Jagielski while( false );
363*b1cdbd2cSJim Jagielski }
364*b1cdbd2cSJim Jagielski catch( Exception& )
365*b1cdbd2cSJim Jagielski {
366*b1cdbd2cSJim Jagielski }
367*b1cdbd2cSJim Jagielski }
368*b1cdbd2cSJim Jagielski
SaveConfiguration()369*b1cdbd2cSJim Jagielski void ConfigurationAccess::SaveConfiguration()
370*b1cdbd2cSJim Jagielski {
371*b1cdbd2cSJim Jagielski try
372*b1cdbd2cSJim Jagielski {
373*b1cdbd2cSJim Jagielski do
374*b1cdbd2cSJim Jagielski {
375*b1cdbd2cSJim Jagielski int i;
376*b1cdbd2cSJim Jagielski unsigned int k;
377*b1cdbd2cSJim Jagielski Reference<util::XChangesBatch> xRoot( OpenConfiguration( false ), UNO_QUERY_THROW );
378*b1cdbd2cSJim Jagielski
379*b1cdbd2cSJim Jagielski // storing the last used settings
380*b1cdbd2cSJim Jagielski Reference< container::XNameReplace > xSet( GetConfigurationNode( xRoot, TKGet( TK_LastUsedSettings ) ), UNO_QUERY_THROW );
381*b1cdbd2cSJim Jagielski OptimizerSettings& rCurrent( maSettings.front() );
382*b1cdbd2cSJim Jagielski rCurrent.SaveSettingsToConfiguration( xSet );
383*b1cdbd2cSJim Jagielski
384*b1cdbd2cSJim Jagielski // updating template elements
385*b1cdbd2cSJim Jagielski xSet = Reference< container::XNameReplace >( GetConfigurationNode( xRoot, TKGet( TK_Settings_Templates ) ), UNO_QUERY_THROW );
386*b1cdbd2cSJim Jagielski Reference< container::XNameContainer > xNameContainer( xSet, UNO_QUERY_THROW );
387*b1cdbd2cSJim Jagielski
388*b1cdbd2cSJim Jagielski const Sequence< OUString > aElements( xSet->getElementNames() );
389*b1cdbd2cSJim Jagielski for( i = 0; i < aElements.getLength(); i++ )
390*b1cdbd2cSJim Jagielski xNameContainer->removeByName( aElements[ i ] );
391*b1cdbd2cSJim Jagielski
392*b1cdbd2cSJim Jagielski for( k = 1; k < maSettings.size(); k++ )
393*b1cdbd2cSJim Jagielski {
394*b1cdbd2cSJim Jagielski OptimizerSettings& rSettings( maSettings[ k ] );
395*b1cdbd2cSJim Jagielski OUString aElementName( TKGet( TK_Template ).concat( OUString::valueOf( static_cast< sal_Int32 >( k ) ) ) );
396*b1cdbd2cSJim Jagielski Reference< lang::XSingleServiceFactory > xChildFactory ( xSet, UNO_QUERY_THROW );
397*b1cdbd2cSJim Jagielski Reference< container::XNameReplace > xChild( xChildFactory->createInstance(), UNO_QUERY_THROW );
398*b1cdbd2cSJim Jagielski xNameContainer->insertByName( aElementName, Any( xChild ) );
399*b1cdbd2cSJim Jagielski
400*b1cdbd2cSJim Jagielski OUString aPath( TKGet( TK_Settings_Templates_ ).concat( aElementName ) );
401*b1cdbd2cSJim Jagielski Reference< container::XNameReplace > xTemplates( GetConfigurationNode( xRoot, aPath ), UNO_QUERY );
402*b1cdbd2cSJim Jagielski rSettings.SaveSettingsToConfiguration( xTemplates );
403*b1cdbd2cSJim Jagielski }
404*b1cdbd2cSJim Jagielski xRoot->commitChanges();
405*b1cdbd2cSJim Jagielski }
406*b1cdbd2cSJim Jagielski while( false );
407*b1cdbd2cSJim Jagielski }
408*b1cdbd2cSJim Jagielski catch( Exception& /* rException */ )
409*b1cdbd2cSJim Jagielski {
410*b1cdbd2cSJim Jagielski
411*b1cdbd2cSJim Jagielski }
412*b1cdbd2cSJim Jagielski }
413*b1cdbd2cSJim Jagielski
OpenConfiguration(bool bReadOnly)414*b1cdbd2cSJim Jagielski Reference< XInterface > ConfigurationAccess::OpenConfiguration( bool bReadOnly )
415*b1cdbd2cSJim Jagielski {
416*b1cdbd2cSJim Jagielski Reference< XInterface > xRoot;
417*b1cdbd2cSJim Jagielski try
418*b1cdbd2cSJim Jagielski {
419*b1cdbd2cSJim Jagielski Reference< lang::XMultiServiceFactory > xProvider( m_xContext->getServiceManager()->createInstanceWithContext( GetConfigurationProviderServiceName(), m_xContext ), UNO_QUERY );
420*b1cdbd2cSJim Jagielski if ( xProvider.is() )
421*b1cdbd2cSJim Jagielski {
422*b1cdbd2cSJim Jagielski Sequence< Any > aCreationArguments( 2 );
423*b1cdbd2cSJim Jagielski aCreationArguments[0] = makeAny( PropertyValue(
424*b1cdbd2cSJim Jagielski OUString( RTL_CONSTASCII_USTRINGPARAM( "nodepath" ) ), 0,
425*b1cdbd2cSJim Jagielski makeAny( GetPathToConfigurationRoot() ),
426*b1cdbd2cSJim Jagielski PropertyState_DIRECT_VALUE ) );
427*b1cdbd2cSJim Jagielski aCreationArguments[1] = makeAny(beans::PropertyValue(
428*b1cdbd2cSJim Jagielski OUString( RTL_CONSTASCII_USTRINGPARAM( "lazywrite" ) ), 0, makeAny( true ),
429*b1cdbd2cSJim Jagielski PropertyState_DIRECT_VALUE ) );
430*b1cdbd2cSJim Jagielski OUString sAccessService;
431*b1cdbd2cSJim Jagielski if ( bReadOnly )
432*b1cdbd2cSJim Jagielski sAccessService = OUString( RTL_CONSTASCII_USTRINGPARAM(
433*b1cdbd2cSJim Jagielski "com.sun.star.configuration.ConfigurationAccess" ) );
434*b1cdbd2cSJim Jagielski else
435*b1cdbd2cSJim Jagielski sAccessService = OUString( RTL_CONSTASCII_USTRINGPARAM(
436*b1cdbd2cSJim Jagielski "com.sun.star.configuration.ConfigurationUpdateAccess" ) );
437*b1cdbd2cSJim Jagielski
438*b1cdbd2cSJim Jagielski xRoot = xProvider->createInstanceWithArguments(
439*b1cdbd2cSJim Jagielski sAccessService, aCreationArguments );
440*b1cdbd2cSJim Jagielski }
441*b1cdbd2cSJim Jagielski }
442*b1cdbd2cSJim Jagielski catch ( Exception& /* rException */ )
443*b1cdbd2cSJim Jagielski {
444*b1cdbd2cSJim Jagielski }
445*b1cdbd2cSJim Jagielski return xRoot;
446*b1cdbd2cSJim Jagielski }
447*b1cdbd2cSJim Jagielski
GetConfigurationNode(const Reference<XInterface> & xRoot,const OUString & sPathToNode)448*b1cdbd2cSJim Jagielski Reference< XInterface > ConfigurationAccess::GetConfigurationNode(
449*b1cdbd2cSJim Jagielski const Reference< XInterface >& xRoot,
450*b1cdbd2cSJim Jagielski const OUString& sPathToNode )
451*b1cdbd2cSJim Jagielski {
452*b1cdbd2cSJim Jagielski Reference< XInterface > xNode;
453*b1cdbd2cSJim Jagielski try
454*b1cdbd2cSJim Jagielski {
455*b1cdbd2cSJim Jagielski if ( !sPathToNode.getLength() )
456*b1cdbd2cSJim Jagielski xNode = xRoot;
457*b1cdbd2cSJim Jagielski else
458*b1cdbd2cSJim Jagielski {
459*b1cdbd2cSJim Jagielski Reference< XHierarchicalNameAccess > xHierarchy( xRoot, UNO_QUERY );
460*b1cdbd2cSJim Jagielski if ( xHierarchy.is() )
461*b1cdbd2cSJim Jagielski {
462*b1cdbd2cSJim Jagielski xHierarchy->getByHierarchicalName( sPathToNode ) >>= xNode;
463*b1cdbd2cSJim Jagielski }
464*b1cdbd2cSJim Jagielski }
465*b1cdbd2cSJim Jagielski }
466*b1cdbd2cSJim Jagielski catch ( Exception& rException )
467*b1cdbd2cSJim Jagielski {
468*b1cdbd2cSJim Jagielski OSL_TRACE ("caught exception while getting configuration node %s: %s",
469*b1cdbd2cSJim Jagielski ::rtl::OUStringToOString(sPathToNode,
470*b1cdbd2cSJim Jagielski RTL_TEXTENCODING_UTF8).getStr(),
471*b1cdbd2cSJim Jagielski ::rtl::OUStringToOString(rException.Message,
472*b1cdbd2cSJim Jagielski RTL_TEXTENCODING_UTF8).getStr());
473*b1cdbd2cSJim Jagielski }
474*b1cdbd2cSJim Jagielski return xNode;
475*b1cdbd2cSJim Jagielski }
476*b1cdbd2cSJim Jagielski
GetConfigProperty(const PPPOptimizerTokenEnum ePropertyToken) const477*b1cdbd2cSJim Jagielski com::sun::star::uno::Any ConfigurationAccess::GetConfigProperty( const PPPOptimizerTokenEnum ePropertyToken ) const
478*b1cdbd2cSJim Jagielski {
479*b1cdbd2cSJim Jagielski Any aRetValue;
480*b1cdbd2cSJim Jagielski const OptimizerSettings& rSettings( maSettings.front() );
481*b1cdbd2cSJim Jagielski try
482*b1cdbd2cSJim Jagielski {
483*b1cdbd2cSJim Jagielski switch( ePropertyToken )
484*b1cdbd2cSJim Jagielski {
485*b1cdbd2cSJim Jagielski case TK_Name : aRetValue <<= rSettings.maName; break;
486*b1cdbd2cSJim Jagielski case TK_JPEGCompression : aRetValue <<= rSettings.mbJPEGCompression; break;
487*b1cdbd2cSJim Jagielski case TK_JPEGQuality : aRetValue <<= rSettings.mnJPEGQuality; break;
488*b1cdbd2cSJim Jagielski case TK_RemoveCropArea : aRetValue <<= rSettings.mbRemoveCropArea; break;
489*b1cdbd2cSJim Jagielski case TK_ImageResolution : aRetValue <<= rSettings.mnImageResolution; break;
490*b1cdbd2cSJim Jagielski case TK_EmbedLinkedGraphics : aRetValue <<= rSettings.mbEmbedLinkedGraphics; break;
491*b1cdbd2cSJim Jagielski case TK_OLEOptimization : aRetValue <<= rSettings.mbOLEOptimization; break;
492*b1cdbd2cSJim Jagielski case TK_OLEOptimizationType : aRetValue <<= rSettings.mnOLEOptimizationType; break;
493*b1cdbd2cSJim Jagielski case TK_DeleteUnusedMasterPages : aRetValue <<= rSettings.mbDeleteUnusedMasterPages; break;
494*b1cdbd2cSJim Jagielski case TK_DeleteHiddenSlides : aRetValue <<= rSettings.mbDeleteHiddenSlides; break;
495*b1cdbd2cSJim Jagielski case TK_DeleteNotesPages : aRetValue <<= rSettings.mbDeleteNotesPages; break;
496*b1cdbd2cSJim Jagielski case TK_SaveAs : aRetValue <<= rSettings.mbSaveAs; break;
497*b1cdbd2cSJim Jagielski case TK_SaveAsURL : aRetValue <<= rSettings.maSaveAsURL; break;
498*b1cdbd2cSJim Jagielski case TK_FilterName : aRetValue <<= rSettings.maFilterName; break;
499*b1cdbd2cSJim Jagielski case TK_OpenNewDocument : aRetValue <<= rSettings.mbOpenNewDocument; break;
500*b1cdbd2cSJim Jagielski case TK_EstimatedFileSize : aRetValue <<= rSettings.mnEstimatedFileSize; break;
501*b1cdbd2cSJim Jagielski default:
502*b1cdbd2cSJim Jagielski break;
503*b1cdbd2cSJim Jagielski }
504*b1cdbd2cSJim Jagielski }
505*b1cdbd2cSJim Jagielski catch( Exception& /* rException */ )
506*b1cdbd2cSJim Jagielski {
507*b1cdbd2cSJim Jagielski }
508*b1cdbd2cSJim Jagielski return aRetValue;
509*b1cdbd2cSJim Jagielski }
510*b1cdbd2cSJim Jagielski
SetConfigProperty(const PPPOptimizerTokenEnum ePropertyToken,const com::sun::star::uno::Any & rValue)511*b1cdbd2cSJim Jagielski void ConfigurationAccess::SetConfigProperty( const PPPOptimizerTokenEnum ePropertyToken, const com::sun::star::uno::Any& rValue )
512*b1cdbd2cSJim Jagielski {
513*b1cdbd2cSJim Jagielski OptimizerSettings& rSettings( maSettings.front() );
514*b1cdbd2cSJim Jagielski try
515*b1cdbd2cSJim Jagielski {
516*b1cdbd2cSJim Jagielski switch( ePropertyToken )
517*b1cdbd2cSJim Jagielski {
518*b1cdbd2cSJim Jagielski case TK_Name : rValue >>= rSettings.maName; break;
519*b1cdbd2cSJim Jagielski case TK_JPEGCompression : rValue >>= rSettings.mbJPEGCompression; break;
520*b1cdbd2cSJim Jagielski case TK_JPEGQuality : rValue >>= rSettings.mnJPEGQuality; break;
521*b1cdbd2cSJim Jagielski case TK_RemoveCropArea : rValue >>= rSettings.mbRemoveCropArea; break;
522*b1cdbd2cSJim Jagielski case TK_ImageResolution : rValue >>= rSettings.mnImageResolution; break;
523*b1cdbd2cSJim Jagielski case TK_EmbedLinkedGraphics : rValue >>= rSettings.mbEmbedLinkedGraphics; break;
524*b1cdbd2cSJim Jagielski case TK_OLEOptimization : rValue >>= rSettings.mbOLEOptimization; break;
525*b1cdbd2cSJim Jagielski case TK_OLEOptimizationType : rValue >>= rSettings.mnOLEOptimizationType; break;
526*b1cdbd2cSJim Jagielski case TK_DeleteUnusedMasterPages : rValue >>= rSettings.mbDeleteUnusedMasterPages; break;
527*b1cdbd2cSJim Jagielski case TK_DeleteHiddenSlides : rValue >>= rSettings.mbDeleteHiddenSlides; break;
528*b1cdbd2cSJim Jagielski case TK_DeleteNotesPages : rValue >>= rSettings.mbDeleteNotesPages; break;
529*b1cdbd2cSJim Jagielski case TK_CustomShowName : rValue >>= rSettings.maCustomShowName; break;
530*b1cdbd2cSJim Jagielski case TK_SaveAs : rValue >>= rSettings.mbSaveAs; break;
531*b1cdbd2cSJim Jagielski case TK_SaveAsURL : rValue >>= rSettings.maSaveAsURL; break;
532*b1cdbd2cSJim Jagielski case TK_FilterName : rValue >>= rSettings.maFilterName; break;
533*b1cdbd2cSJim Jagielski case TK_OpenNewDocument : rValue >>= rSettings.mbOpenNewDocument; break;
534*b1cdbd2cSJim Jagielski case TK_EstimatedFileSize : rValue >>= rSettings.mnEstimatedFileSize; break;
535*b1cdbd2cSJim Jagielski default:
536*b1cdbd2cSJim Jagielski break;
537*b1cdbd2cSJim Jagielski }
538*b1cdbd2cSJim Jagielski }
539*b1cdbd2cSJim Jagielski catch( Exception& /* rException */ )
540*b1cdbd2cSJim Jagielski {
541*b1cdbd2cSJim Jagielski }
542*b1cdbd2cSJim Jagielski }
543*b1cdbd2cSJim Jagielski
GetConfigProperty(const PPPOptimizerTokenEnum ePropertyToken,const sal_Bool bDefault) const544*b1cdbd2cSJim Jagielski sal_Bool ConfigurationAccess::GetConfigProperty( const PPPOptimizerTokenEnum ePropertyToken, const sal_Bool bDefault ) const
545*b1cdbd2cSJim Jagielski {
546*b1cdbd2cSJim Jagielski sal_Bool bRetValue = bDefault;
547*b1cdbd2cSJim Jagielski if ( ! ( GetConfigProperty( ePropertyToken ) >>= bRetValue ) )
548*b1cdbd2cSJim Jagielski bRetValue = bDefault;
549*b1cdbd2cSJim Jagielski return bRetValue;
550*b1cdbd2cSJim Jagielski }
551*b1cdbd2cSJim Jagielski
GetConfigProperty(const PPPOptimizerTokenEnum ePropertyToken,const sal_Int16 nDefault) const552*b1cdbd2cSJim Jagielski sal_Int16 ConfigurationAccess::GetConfigProperty( const PPPOptimizerTokenEnum ePropertyToken, const sal_Int16 nDefault ) const
553*b1cdbd2cSJim Jagielski {
554*b1cdbd2cSJim Jagielski sal_Int16 nRetValue = nDefault;
555*b1cdbd2cSJim Jagielski if ( ! ( GetConfigProperty( ePropertyToken ) >>= nRetValue ) )
556*b1cdbd2cSJim Jagielski nRetValue = nDefault;
557*b1cdbd2cSJim Jagielski return nRetValue;
558*b1cdbd2cSJim Jagielski }
559*b1cdbd2cSJim Jagielski
GetConfigProperty(const PPPOptimizerTokenEnum ePropertyToken,const sal_Int32 nDefault) const560*b1cdbd2cSJim Jagielski sal_Int32 ConfigurationAccess::GetConfigProperty( const PPPOptimizerTokenEnum ePropertyToken, const sal_Int32 nDefault ) const
561*b1cdbd2cSJim Jagielski {
562*b1cdbd2cSJim Jagielski sal_Int32 nRetValue = nDefault;
563*b1cdbd2cSJim Jagielski if ( ! ( GetConfigProperty( ePropertyToken ) >>= nRetValue ) )
564*b1cdbd2cSJim Jagielski nRetValue = nDefault;
565*b1cdbd2cSJim Jagielski return nRetValue;
566*b1cdbd2cSJim Jagielski }
567*b1cdbd2cSJim Jagielski
GetConfigurationSequence()568*b1cdbd2cSJim Jagielski Sequence< PropertyValue > ConfigurationAccess::GetConfigurationSequence()
569*b1cdbd2cSJim Jagielski {
570*b1cdbd2cSJim Jagielski Sequence< PropertyValue > aRet( 15 );
571*b1cdbd2cSJim Jagielski OptimizerSettings& rSettings( maSettings.front() );
572*b1cdbd2cSJim Jagielski aRet[ 0 ].Name = TKGet( TK_JPEGCompression );
573*b1cdbd2cSJim Jagielski aRet[ 0 ].Value= Any( rSettings.mbJPEGCompression );
574*b1cdbd2cSJim Jagielski aRet[ 1 ].Name = TKGet( TK_JPEGQuality );
575*b1cdbd2cSJim Jagielski aRet[ 1 ].Value= Any( rSettings.mnJPEGQuality );
576*b1cdbd2cSJim Jagielski aRet[ 2 ].Name = TKGet( TK_RemoveCropArea );
577*b1cdbd2cSJim Jagielski aRet[ 2 ].Value= Any( rSettings.mbRemoveCropArea );
578*b1cdbd2cSJim Jagielski aRet[ 3 ].Name = TKGet( TK_ImageResolution );
579*b1cdbd2cSJim Jagielski aRet[ 3 ].Value= Any( rSettings.mnImageResolution );
580*b1cdbd2cSJim Jagielski aRet[ 4 ].Name = TKGet( TK_EmbedLinkedGraphics );
581*b1cdbd2cSJim Jagielski aRet[ 4 ].Value= Any( rSettings.mbEmbedLinkedGraphics );
582*b1cdbd2cSJim Jagielski aRet[ 5 ].Name = TKGet( TK_OLEOptimization );
583*b1cdbd2cSJim Jagielski aRet[ 5 ].Value= Any( rSettings.mbOLEOptimization );
584*b1cdbd2cSJim Jagielski aRet[ 6 ].Name = TKGet( TK_OLEOptimizationType );
585*b1cdbd2cSJim Jagielski aRet[ 6 ].Value= Any( rSettings.mnOLEOptimizationType );
586*b1cdbd2cSJim Jagielski aRet[ 7 ].Name = TKGet( TK_DeleteUnusedMasterPages );
587*b1cdbd2cSJim Jagielski aRet[ 7 ].Value= Any( rSettings.mbDeleteUnusedMasterPages );
588*b1cdbd2cSJim Jagielski aRet[ 8 ].Name = TKGet( TK_DeleteHiddenSlides );
589*b1cdbd2cSJim Jagielski aRet[ 8 ].Value= Any( rSettings.mbDeleteHiddenSlides );
590*b1cdbd2cSJim Jagielski aRet[ 9 ].Name = TKGet( TK_DeleteNotesPages );
591*b1cdbd2cSJim Jagielski aRet[ 9 ].Value= Any( rSettings.mbDeleteNotesPages );
592*b1cdbd2cSJim Jagielski aRet[ 10].Name = TKGet( TK_CustomShowName );
593*b1cdbd2cSJim Jagielski aRet[ 10].Value= Any( rSettings.maCustomShowName );
594*b1cdbd2cSJim Jagielski aRet[ 11].Name = TKGet( TK_SaveAsURL );
595*b1cdbd2cSJim Jagielski aRet[ 11].Value= Any( rSettings.maSaveAsURL );
596*b1cdbd2cSJim Jagielski aRet[ 12].Name = TKGet( TK_FilterName );
597*b1cdbd2cSJim Jagielski aRet[ 12].Value= Any( rSettings.maFilterName );
598*b1cdbd2cSJim Jagielski aRet[ 13].Name = TKGet( TK_OpenNewDocument );
599*b1cdbd2cSJim Jagielski aRet[ 13].Value= Any( rSettings.mbOpenNewDocument );
600*b1cdbd2cSJim Jagielski aRet[ 14].Name = TKGet( TK_EstimatedFileSize );
601*b1cdbd2cSJim Jagielski aRet[ 14].Value= Any( rSettings.mnEstimatedFileSize );
602*b1cdbd2cSJim Jagielski return aRet;
603*b1cdbd2cSJim Jagielski }
604*b1cdbd2cSJim Jagielski
GetOptimizerSettingsByName(const rtl::OUString & rName)605*b1cdbd2cSJim Jagielski std::vector< OptimizerSettings >::iterator ConfigurationAccess::GetOptimizerSettingsByName( const rtl::OUString& rName )
606*b1cdbd2cSJim Jagielski {
607*b1cdbd2cSJim Jagielski std::vector< OptimizerSettings >::iterator aIter( maSettings.begin() + 1 );
608*b1cdbd2cSJim Jagielski while ( aIter != maSettings.end() )
609*b1cdbd2cSJim Jagielski {
610*b1cdbd2cSJim Jagielski if ( aIter->maName == rName )
611*b1cdbd2cSJim Jagielski break;
612*b1cdbd2cSJim Jagielski aIter++;
613*b1cdbd2cSJim Jagielski }
614*b1cdbd2cSJim Jagielski return aIter;
615*b1cdbd2cSJim Jagielski }
616