Kaydet (Commit) 518fdc29 authored tarafından Noel Grandin's avatar Noel Grandin

use more std::unique_ptr in EnhancedCustomShapeEngine

Change-Id: Ib488b15e55492fb469258bfba59e6475dbdb058f
Reviewed-on: https://gerrit.libreoffice.org/61400
Tested-by: Jenkins
Reviewed-by: 's avatarNoel Grandin <noel.grandin@collabora.co.uk>
üst 724e92d6
...@@ -72,9 +72,9 @@ class EnhancedCustomShapeEngine : public cppu::WeakImplHelper ...@@ -72,9 +72,9 @@ class EnhancedCustomShapeEngine : public cppu::WeakImplHelper
css::uno::Reference< css::drawing::XShape > mxShape; css::uno::Reference< css::drawing::XShape > mxShape;
bool mbForceGroupWithText; bool mbForceGroupWithText;
SdrObject* ImplForceGroupWithText( std::unique_ptr<SdrObject, SdrObjectFreeOp> ImplForceGroupWithText(
const SdrObjCustomShape& rSdrObjCustomShape, const SdrObjCustomShape& rSdrObjCustomShape,
SdrObject* pRenderedShape); std::unique_ptr<SdrObject, SdrObjectFreeOp> pRenderedShape);
public: public:
EnhancedCustomShapeEngine(); EnhancedCustomShapeEngine();
...@@ -149,9 +149,9 @@ Sequence< OUString > SAL_CALL EnhancedCustomShapeEngine::getSupportedServiceName ...@@ -149,9 +149,9 @@ Sequence< OUString > SAL_CALL EnhancedCustomShapeEngine::getSupportedServiceName
} }
// XCustomShapeEngine // XCustomShapeEngine
SdrObject* EnhancedCustomShapeEngine::ImplForceGroupWithText( std::unique_ptr<SdrObject, SdrObjectFreeOp> EnhancedCustomShapeEngine::ImplForceGroupWithText(
const SdrObjCustomShape& rSdrObjCustomShape, const SdrObjCustomShape& rSdrObjCustomShape,
SdrObject* pRenderedShape) std::unique_ptr<SdrObject, SdrObjectFreeOp> pRenderedShape)
{ {
const bool bHasText(rSdrObjCustomShape.HasText()); const bool bHasText(rSdrObjCustomShape.HasText());
...@@ -164,20 +164,20 @@ SdrObject* EnhancedCustomShapeEngine::ImplForceGroupWithText( ...@@ -164,20 +164,20 @@ SdrObject* EnhancedCustomShapeEngine::ImplForceGroupWithText(
{ {
if ( pRenderedShape ) if ( pRenderedShape )
{ {
if ( dynamic_cast<const SdrObjGroup*>( pRenderedShape) == nullptr ) if ( dynamic_cast<const SdrObjGroup*>( pRenderedShape.get() ) == nullptr )
{ {
SdrObject* pTmp = pRenderedShape; auto pTmp = std::move(pRenderedShape);
pRenderedShape = new SdrObjGroup(rSdrObjCustomShape.getSdrModelFromSdrObject()); pRenderedShape.reset(new SdrObjGroup(rSdrObjCustomShape.getSdrModelFromSdrObject()));
static_cast<SdrObjGroup*>(pRenderedShape)->GetSubList()->NbcInsertObject( pTmp ); static_cast<SdrObjGroup*>(pRenderedShape.get())->GetSubList()->NbcInsertObject( pTmp.release() );
} }
static_cast<SdrObjGroup*>(pRenderedShape)->GetSubList()->NbcInsertObject( static_cast<SdrObjGroup*>(pRenderedShape.get())->GetSubList()->NbcInsertObject(
pShadowGeometry->CloneSdrObject(pShadowGeometry->getSdrModelFromSdrObject()), pShadowGeometry->CloneSdrObject(pShadowGeometry->getSdrModelFromSdrObject()),
0); 0);
} }
else else
{ {
pRenderedShape = pShadowGeometry->CloneSdrObject(pShadowGeometry->getSdrModelFromSdrObject()); pRenderedShape.reset( pShadowGeometry->CloneSdrObject(pShadowGeometry->getSdrModelFromSdrObject()) );
} }
} }
...@@ -185,10 +185,10 @@ SdrObject* EnhancedCustomShapeEngine::ImplForceGroupWithText( ...@@ -185,10 +185,10 @@ SdrObject* EnhancedCustomShapeEngine::ImplForceGroupWithText(
if ( bHasText ) if ( bHasText )
{ {
// #i37011# also create a text object and add at rPos + 1 // #i37011# also create a text object and add at rPos + 1
SdrObject* pTextObj = SdrObjFactory::MakeNewObject( std::unique_ptr<SdrObject, SdrObjectFreeOp> pTextObj( SdrObjFactory::MakeNewObject(
rSdrObjCustomShape.getSdrModelFromSdrObject(), rSdrObjCustomShape.getSdrModelFromSdrObject(),
rSdrObjCustomShape.GetObjInventor(), rSdrObjCustomShape.GetObjInventor(),
OBJ_TEXT); OBJ_TEXT) );
// Copy text content // Copy text content
OutlinerParaObject* pParaObj(rSdrObjCustomShape.GetOutlinerParaObject()); OutlinerParaObject* pParaObj(rSdrObjCustomShape.GetOutlinerParaObject());
...@@ -234,26 +234,26 @@ SdrObject* EnhancedCustomShapeEngine::ImplForceGroupWithText( ...@@ -234,26 +234,26 @@ SdrObject* EnhancedCustomShapeEngine::ImplForceGroupWithText(
if ( pRenderedShape ) if ( pRenderedShape )
{ {
if ( dynamic_cast<const SdrObjGroup*>( pRenderedShape) == nullptr ) if ( dynamic_cast<const SdrObjGroup*>( pRenderedShape.get() ) == nullptr )
{ {
SdrObject* pTmp = pRenderedShape; auto pTmp = std::move(pRenderedShape);
pRenderedShape = new SdrObjGroup(rSdrObjCustomShape.getSdrModelFromSdrObject()); pRenderedShape.reset(new SdrObjGroup(rSdrObjCustomShape.getSdrModelFromSdrObject()));
static_cast<SdrObjGroup*>(pRenderedShape)->GetSubList()->NbcInsertObject( pTmp ); static_cast<SdrObjGroup*>(pRenderedShape.get())->GetSubList()->NbcInsertObject( pTmp.release() );
} }
static_cast<SdrObjGroup*>(pRenderedShape)->GetSubList()->NbcInsertObject( pTextObj ); static_cast<SdrObjGroup*>(pRenderedShape.get())->GetSubList()->NbcInsertObject( pTextObj.release() );
} }
else else
pRenderedShape = pTextObj; pRenderedShape = std::move(pTextObj);
} }
// force group // force group
if ( pRenderedShape ) if ( pRenderedShape )
{ {
if ( dynamic_cast<const SdrObjGroup*>( pRenderedShape) == nullptr ) if ( dynamic_cast<const SdrObjGroup*>( pRenderedShape.get() ) == nullptr )
{ {
SdrObject* pTmp = pRenderedShape; auto pTmp = std::move(pRenderedShape);
pRenderedShape = new SdrObjGroup(rSdrObjCustomShape.getSdrModelFromSdrObject()); pRenderedShape.reset(new SdrObjGroup(rSdrObjCustomShape.getSdrModelFromSdrObject()));
static_cast<SdrObjGroup*>(pRenderedShape)->GetSubList()->NbcInsertObject( pTmp ); static_cast<SdrObjGroup*>(pRenderedShape.get())->GetSubList()->NbcInsertObject( pTmp.release() );
} }
} }
} }
...@@ -361,9 +361,9 @@ Reference< drawing::XShape > SAL_CALL EnhancedCustomShapeEngine::render() ...@@ -361,9 +361,9 @@ Reference< drawing::XShape > SAL_CALL EnhancedCustomShapeEngine::render()
if ( mbForceGroupWithText ) if ( mbForceGroupWithText )
{ {
xRenderedShape.reset(ImplForceGroupWithText( xRenderedShape = ImplForceGroupWithText(
rSdrObjCustomShape, rSdrObjCustomShape,
xRenderedShape.release())); std::move(xRenderedShape));
} }
Reference< drawing::XShape > xShape; Reference< drawing::XShape > xShape;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment