summaryrefslogtreecommitdiff
path: root/sfx2
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2016-10-12 21:42:03 +0100
committerCaolán McNamara <caolanm@redhat.com>2016-10-13 09:36:51 +0100
commit15f5fdef976ac2a2fc7192ce7cd4324e0820a2ed (patch)
tree24ba7a22273c4b98f988ca68c0b033a9e08df676 /sfx2
parent170cf525e4b070a57e2e389a98a1973521c3a9e7 (diff)
move this monstrosity to the last place its used
Change-Id: I4691f20143406249afc8da1a6dfa901224f4a62d
Diffstat (limited to 'sfx2')
-rw-r--r--sfx2/source/dialog/styfitem.cxx41
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() );