22 #include <com/sun/star/container/XHierarchicalNameAccess.hpp>
23 #include <com/sun/star/configuration/theDefaultProvider.hpp>
24 #include <com/sun/star/util/XChangesBatch.hpp>
25 #include <com/sun/star/container/XNameContainer.hpp>
26 #include <com/sun/star/lang/XSingleServiceFactory.hpp>
40 return "org.openoffice.Office.PresentationMinimizer";
45 if ( !rSettings.is() )
49 for (
const OUString& aPropertyName : aElements )
53 Any aValue( rSettings->getByName( aPropertyName ) );
54 switch(
TKGet( aPropertyName ) )
82 if ( !rSettings.is() )
87 OUString(
"JPEGCompression"),
88 OUString(
"JPEGQuality"),
89 OUString(
"RemoveCropArea"),
90 OUString(
"ImageResolution"),
91 OUString(
"EmbedLinkedGraphics"),
92 OUString(
"OLEOptimization"),
93 OUString(
"OLEOptimizationType"),
94 OUString(
"DeleteUnusedMasterPages"),
95 OUString(
"DeleteHiddenSlides"),
96 OUString(
"DeleteNotesPages"),
100 OUString(
"OpenNewDocument") };
123 rSettings->replaceByName( pNames[
i ], pValues[ i ] );
151 maSettings.emplace_back( );
152 maSettings.back().maName =
"LastUsedSettings";
162 std::map< PPPOptimizerTokenEnum, OUString >::const_iterator aIter(
maStrings.find( eToken ) );
163 return aIter !=
maStrings.end() ? ((*aIter).second) : OUString();
179 for (
const auto& rElement : aElements )
183 OUString aString, aPropertyName( rElement );
184 if ( xSet->getByName( aPropertyName ) >>= aString )
219 for (
const auto& rElement : aElements )
223 OUString aPath(
"Settings/Templates/" + rElement );
225 if ( xTemplates.is() )
228 maSettings.back().LoadSettingsFromConfiguration( xTemplates );
250 Reference<util::XChangesBatch> xRoot(
OpenConfiguration(
false ), UNO_QUERY_THROW );
253 Reference< container::XNameReplace > xSet(
GetConfigurationNode( xRoot,
"LastUsedSettings" ), UNO_QUERY_THROW );
262 for(
const auto& rElement : aElements )
263 xNameContainer->removeByName( rElement );
265 for( std::vector<OptimizerSettings>::size_type k = 1; k <
maSettings.size(); k++ )
268 OUString aElementName(
"Template" + OUString::number( k ) );
269 Reference< lang::XSingleServiceFactory > xChildFactory ( xSet, UNO_QUERY_THROW );
270 Reference< container::XNameReplace > xChild( xChildFactory->createInstance(), UNO_QUERY_THROW );
271 xNameContainer->insertByName( aElementName,
Any( xChild ) );
273 OUString aPath(
"Settings/Templates/" + aElementName );
274 Reference< container::XNameReplace > xTemplates(
GetConfigurationNode( xRoot, aPath ), UNO_QUERY );
277 xRoot->commitChanges();
288 Reference< XInterface > xRoot;
291 Reference< lang::XMultiServiceFactory > xProvider = configuration::theDefaultProvider::get(
mxContext );
296 OUString sAccessService;
298 sAccessService =
"com.sun.star.configuration.ConfigurationAccess";
301 "com.sun.star.configuration.ConfigurationUpdateAccess";
303 xRoot = xProvider->createInstanceWithArguments(
304 sAccessService, aCreationArguments );
313 const Reference< XInterface >& xRoot,
314 const OUString& sPathToNode )
316 Reference< XInterface > xNode;
319 if ( sPathToNode.isEmpty() )
324 if ( xHierarchy.is() )
326 xHierarchy->getByHierarchicalName( sPathToNode ) >>= xNode;
330 catch (
const Exception&)
344 switch( ePropertyToken )
346 case TK_Name : aRetValue <<= rSettings.maName;
break;
348 case TK_JPEGQuality : aRetValue <<= rSettings.mnJPEGQuality;
break;
357 case TK_SaveAs : aRetValue <<= rSettings.mbSaveAs;
break;
358 case TK_SaveAsURL : aRetValue <<= rSettings.maSaveAsURL;
break;
359 case TK_FilterName : aRetValue <<= rSettings.maFilterName;
break;
377 switch( ePropertyToken )
379 case TK_Name : rValue >>= rSettings.maName;
break;
391 case TK_SaveAs : rValue >>= rSettings.mbSaveAs;
break;
392 case TK_SaveAsURL : rValue >>= rSettings.maSaveAsURL;
break;
393 case TK_FilterName : rValue >>= rSettings.maFilterName;
break;
407 bool bRetValue = bDefault;
409 bRetValue = bDefault;
415 sal_Int16 nRetValue = nDefault;
417 nRetValue = nDefault;
423 sal_Int32 nRetValue = nDefault;
425 nRetValue = nDefault;
432 Sequence< PropertyValue > aRet{
455 [&rName](
const OptimizerSettings& rSettings) {
return rSettings.maName == rName; });
bool mbDeleteUnusedMasterPages
css::uno::Reference< css::uno::XInterface > OpenConfiguration(bool bReadOnly)
sal_Int16 mnOLEOptimizationType
css::beans::PropertyValue makePropertyValue(const OUString &rName, T &&rValue)
bool operator==(const OptimizerSettings &rOptimizerSettings) const
const wchar_t *typedef int(__stdcall *DllNativeUnregProc)(int
css::uno::Sequence< css::beans::PropertyValue > GetConfigurationSequence()
ConfigurationAccess(const css::uno::Reference< css::uno::XComponentContext > &rXFactory)
std::vector< OptimizerSettings >::iterator GetOptimizerSettingsByName(const OUString &rName)
static OUString GetPathToConfigurationRoot()
static css::uno::Reference< css::uno::XInterface > GetConfigurationNode(const css::uno::Reference< css::uno::XInterface > &xRoot, const OUString &sPathToNode)
std::map< PPPOptimizerTokenEnum, OUString > maStrings
sal_Int32 mnImageResolution
#define SAL_N_ELEMENTS(arr)
bool mbDeleteHiddenSlides
#define TOOLS_WARN_EXCEPTION(area, stream)
OUString getString(const PPPOptimizerTokenEnum) const
void SetConfigProperty(const PPPOptimizerTokenEnum, const css::uno::Any &aValue)
css::uno::Sequence< css::uno::Any > InitAnyPropertySequence(::std::initializer_list< ::std::pair< OUString, css::uno::Any > > vInit)
std::vector< OptimizerSettings > maSettings
void LoadSettingsFromConfiguration(const css::uno::Reference< css::container::XNameAccess > &rSettings)
css::uno::Reference< css::uno::XComponentContext > mxContext
const PropertyValue * pValues
PPPOptimizerTokenEnum TKGet(const OUString &rToken)
void SaveSettingsToConfiguration(const css::uno::Reference< css::container::XNameReplace > &rSettings)
css::uno::Any GetConfigProperty(const PPPOptimizerTokenEnum) const
bool mbEmbedLinkedGraphics