diff options
-rw-r--r-- | sd/inc/TransitionPreset.hxx | 2 | ||||
-rw-r--r-- | sd/source/core/TransitionPreset.cxx | 34 |
2 files changed, 24 insertions, 12 deletions
diff --git a/sd/inc/TransitionPreset.hxx b/sd/inc/TransitionPreset.hxx index 56570b0161c4..1c274ba8d551 100644 --- a/sd/inc/TransitionPreset.hxx +++ b/sd/inc/TransitionPreset.hxx @@ -78,8 +78,6 @@ private: rtl::OUString maPresetId; rtl::OUString maUIName; - static sd::TransitionPresetList* mpTransitionPresetList; - static bool importTransitionsFile( TransitionPresetList& rList, ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory, UStringMap& rTransitionNameMape, diff --git a/sd/source/core/TransitionPreset.cxx b/sd/source/core/TransitionPreset.cxx index 3fa73e953f74..5a6aca7403e2 100644 --- a/sd/source/core/TransitionPreset.cxx +++ b/sd/source/core/TransitionPreset.cxx @@ -45,6 +45,7 @@ #include <tools/stream.hxx> #include <rtl/uri.hxx> +#include <rtl/instance.hxx> #include <tools/debug.hxx> #include <TransitionPreset.hxx> @@ -225,21 +226,34 @@ bool TransitionPreset::importTransitionPresetList( TransitionPresetList& rList ) return bRet; } -TransitionPresetList* TransitionPreset::mpTransitionPresetList = 0; - -const TransitionPresetList& TransitionPreset::getTransitionPresetList() +namespace { - if( !mpTransitionPresetList ) + class ImportedTransitionPresetList { - SolarMutexGuard aGuard; - if( !mpTransitionPresetList ) + private: + sd::TransitionPresetList m_aTransitionPresetList; + public: + ImportedTransitionPresetList() { - mpTransitionPresetList = new sd::TransitionPresetList(); - sd::TransitionPreset::importTransitionPresetList( *mpTransitionPresetList ); + sd::TransitionPreset::importTransitionPresetList( + m_aTransitionPresetList); } - } + const sd::TransitionPresetList& getList() const + { + return m_aTransitionPresetList; + } + }; - return *mpTransitionPresetList; + class theTransitionPresetList : + public rtl::Static<ImportedTransitionPresetList, + theTransitionPresetList> + { + }; +} + +const TransitionPresetList& TransitionPreset::getTransitionPresetList() +{ + return theTransitionPresetList::get().getList(); } void TransitionPreset::apply( SdPage* pSlide ) const |