summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sd/inc/TransitionPreset.hxx2
-rw-r--r--sd/source/core/TransitionPreset.cxx34
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