[Libreoffice-commits] core.git: sd/source
Noel Grandin
noel.grandin at collabora.co.uk
Wed Jan 25 11:39:16 UTC 2017
sd/source/ui/unoidl/unolayer.cxx | 36 +++++++++++++++++-------------------
sd/source/ui/unoidl/unolayer.hxx | 9 ++++-----
2 files changed, 21 insertions(+), 24 deletions(-)
New commits:
commit 8a87bf1b693fe44ffdc3b773ee0244bbf1bdeda3
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Wed Jan 25 13:30:07 2017 +0200
use rtl::Reference in SdLayer
instead of storing both a raw pointer and an uno::Reference
Change-Id: Id608c50cb4cb3a7cf7ad972303a3c5f9fc8e79b0
diff --git a/sd/source/ui/unoidl/unolayer.cxx b/sd/source/ui/unoidl/unolayer.cxx
index d40cd0c..3b287a5 100644
--- a/sd/source/ui/unoidl/unolayer.cxx
+++ b/sd/source/ui/unoidl/unolayer.cxx
@@ -133,8 +133,7 @@ OUString SdLayer::convertToExternalName( const OUString& rName )
}
SdLayer::SdLayer( SdLayerManager* pLayerManager_, SdrLayer* pSdrLayer_ ) throw()
-: pLayerManager(pLayerManager_)
-, mxLayerManager(pLayerManager_)
+: mxLayerManager(pLayerManager_)
, pLayer(pSdrLayer_)
, pPropSet(ImplGetSdLayerPropertySet())
{
@@ -181,7 +180,7 @@ void SAL_CALL SdLayer::setPropertyValue( const OUString& aPropertyName, const un
{
SolarMutexGuard aGuard;
- if(pLayer == nullptr || pLayerManager == nullptr)
+ if(pLayer == nullptr || mxLayerManager == nullptr)
throw lang::DisposedException();
const SfxItemPropertySimpleEntry* pEntry = pPropSet->getPropertyMapEntry(aPropertyName);
@@ -210,7 +209,7 @@ void SAL_CALL SdLayer::setPropertyValue( const OUString& aPropertyName, const un
throw lang::IllegalArgumentException();
pLayer->SetName(SdLayer::convertToInternalName( aName ) );
- pLayerManager->UpdateLayerView();
+ mxLayerManager->UpdateLayerView();
break;
}
@@ -238,8 +237,8 @@ void SAL_CALL SdLayer::setPropertyValue( const OUString& aPropertyName, const un
throw beans::UnknownPropertyException( aPropertyName, static_cast<cppu::OWeakObject*>(this));
}
- if( pLayerManager->GetDocShell() )
- pLayerManager->GetDocShell()->SetModified();
+ if( mxLayerManager->GetDocShell() )
+ mxLayerManager->GetDocShell()->SetModified();
}
uno::Any SAL_CALL SdLayer::getPropertyValue( const OUString& PropertyName )
@@ -247,7 +246,7 @@ uno::Any SAL_CALL SdLayer::getPropertyValue( const OUString& PropertyName )
{
SolarMutexGuard aGuard;
- if(pLayer == nullptr || pLayerManager == nullptr)
+ if(pLayer == nullptr || mxLayerManager == nullptr)
throw lang::DisposedException();
const SfxItemPropertySimpleEntry* pEntry = pPropSet->getPropertyMapEntry(PropertyName);
@@ -291,10 +290,10 @@ void SAL_CALL SdLayer::removeVetoableChangeListener( const OUString& , const uno
bool SdLayer::get( LayerAttribute what ) throw()
{
- if(pLayer&&pLayerManager)
+ if(pLayer && mxLayerManager.is())
{
// Try 1. is an arbitrary page open?
- ::sd::View *pView = pLayerManager->GetView();
+ ::sd::View *pView = mxLayerManager->GetView();
SdrPageView* pSdrPageView = nullptr;
if(pView)
pSdrPageView = pView->GetSdrPageView();
@@ -311,9 +310,9 @@ bool SdLayer::get( LayerAttribute what ) throw()
}
// Try 2. get info from FrameView
- if(pLayerManager->GetDocShell())
+ if(mxLayerManager->GetDocShell())
{
- ::sd::FrameView *pFrameView = pLayerManager->GetDocShell()->GetFrameView();
+ ::sd::FrameView *pFrameView = mxLayerManager->GetDocShell()->GetFrameView();
if(pFrameView)
switch(what)
{
@@ -328,10 +327,10 @@ bool SdLayer::get( LayerAttribute what ) throw()
void SdLayer::set( LayerAttribute what, bool flag ) throw()
{
- if(pLayer&&pLayerManager)
+ if(pLayer && mxLayerManager.is())
{
// Try 1. is an arbitrary page open?
- ::sd::View *pView = pLayerManager->GetView();
+ ::sd::View *pView = mxLayerManager->GetView();
SdrPageView* pSdrPageView = nullptr;
if(pView)
pSdrPageView = pView->GetSdrPageView();
@@ -351,9 +350,9 @@ void SdLayer::set( LayerAttribute what, bool flag ) throw()
}
// Try 2. get info from FrameView
- if(pLayerManager->GetDocShell())
+ if(mxLayerManager->GetDocShell())
{
- ::sd::FrameView *pFrameView = pLayerManager->GetDocShell()->GetFrameView();
+ ::sd::FrameView *pFrameView = mxLayerManager->GetDocShell()->GetFrameView();
if(pFrameView)
{
@@ -392,10 +391,10 @@ uno::Reference<uno::XInterface> SAL_CALL SdLayer::getParent()
{
SolarMutexGuard aGuard;
- if( pLayerManager == nullptr )
+ if( !mxLayerManager.is() )
throw lang::DisposedException();
- return uno::Reference<uno::XInterface> (mxLayerManager, uno::UNO_QUERY);
+ return uno::Reference<uno::XInterface> (static_cast<cppu::OWeakObject*>(mxLayerManager.get()), uno::UNO_QUERY);
}
void SAL_CALL SdLayer::setParent (const uno::Reference<uno::XInterface >& )
@@ -408,8 +407,7 @@ void SAL_CALL SdLayer::setParent (const uno::Reference<uno::XInterface >& )
// XComponent
void SAL_CALL SdLayer::dispose( ) throw (uno::RuntimeException, std::exception)
{
- pLayerManager = nullptr;
- mxLayerManager = nullptr;
+ mxLayerManager.clear();
pLayer = nullptr;
}
diff --git a/sd/source/ui/unoidl/unolayer.hxx b/sd/source/ui/unoidl/unolayer.hxx
index 99ba616..1228376 100644
--- a/sd/source/ui/unoidl/unolayer.hxx
+++ b/sd/source/ui/unoidl/unolayer.hxx
@@ -25,6 +25,7 @@
#include <cppuhelper/implbase.hxx>
#include <comphelper/servicehelper.hxx>
+#include <rtl/ref.hxx>
#include <unomodel.hxx>
@@ -91,11 +92,9 @@ public:
virtual void SAL_CALL setParent( const css::uno::Reference< css::uno::XInterface >& Parent ) throw (css::lang::NoSupportException, css::uno::RuntimeException, std::exception) override;
private:
- SdLayerManager* pLayerManager;
- css::uno::Reference< css::drawing::XLayerManager > mxLayerManager;
-
- SdrLayer* pLayer;
- const SvxItemPropertySet* pPropSet;
+ rtl::Reference<SdLayerManager> mxLayerManager;
+ SdrLayer* pLayer;
+ const SvxItemPropertySet* pPropSet;
bool get( LayerAttribute what ) throw();
void set( LayerAttribute what, bool flag ) throw();
More information about the Libreoffice-commits
mailing list