diff options
author | Caolán McNamara <caolanm@redhat.com> | 2016-10-12 21:42:03 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2016-10-13 09:36:51 +0100 |
commit | 15f5fdef976ac2a2fc7192ce7cd4324e0820a2ed (patch) | |
tree | 24ba7a22273c4b98f988ca68c0b033a9e08df676 /sfx2 | |
parent | 170cf525e4b070a57e2e389a98a1973521c3a9e7 (diff) |
move this monstrosity to the last place its used
Change-Id: I4691f20143406249afc8da1a6dfa901224f4a62d
Diffstat (limited to 'sfx2')
-rw-r--r-- | sfx2/source/dialog/styfitem.cxx | 41 |
1 files changed, 38 insertions, 3 deletions
diff --git a/sfx2/source/dialog/styfitem.cxx b/sfx2/source/dialog/styfitem.cxx index 18d8dace5faf..fb9ad087fb34 100644 --- a/sfx2/source/dialog/styfitem.cxx +++ b/sfx2/source/dialog/styfitem.cxx @@ -17,11 +17,12 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include <osl/diagnose.h> #include <sfx2/styfitem.hxx> -#include <svtools/localresaccess.hxx> +#include <tools/rc.hxx> +#include <tools/rcid.h> #include <tools/debug.hxx> - // Implementierung des Resource-Konstruktors SfxStyleFamilyItem::SfxStyleFamilyItem( const ResId &rResId ) : @@ -111,10 +112,44 @@ SfxStyleFamilies::~SfxStyleFamilies() aEntryList.clear(); } +namespace +{ + class OLocalResourceAccess : public Resource + { + protected: + ResMgr* m_pManager; + + public: + OLocalResourceAccess( const ResId& _rId ) + :Resource( _rId.SetAutoRelease( false ) ) + ,m_pManager( _rId.GetResMgr() ) + { + } + + OLocalResourceAccess(const ResId& _rId, RESOURCE_TYPE _rType) + :Resource(_rId.SetRT(_rType).SetAutoRelease(false)) + ,m_pManager(_rId.GetResMgr()) + { + OSL_ENSURE( m_pManager != nullptr, "OLocalResourceAccess::OLocalResourceAccess: invalid resource manager!" ); + } + + ~OLocalResourceAccess() + { + if ( m_pManager ) + m_pManager->Increment( m_pManager->GetRemainSize() ); + FreeResource(); + } + + bool IsAvailableRes( const ResId& _rId ) const + { + return Resource::IsAvailableRes( _rId ); + } + }; +} void SfxStyleFamilies::updateImages( const ResId& _rId ) { - ::svt::OLocalResourceAccess aLocalRes( _rId ); + OLocalResourceAccess aLocalRes( _rId ); // check if the image list is present ResId aImageListId( (sal_uInt16) 1, *_rId.GetResMgr() ); |