Skip to content

Commit 6dd1bd3

Browse files
committed
unique_ptr
1 parent f2ada66 commit 6dd1bd3

File tree

1 file changed

+53
-55
lines changed

1 file changed

+53
-55
lines changed

src/core/symbology/qgsfillsymbollayer.cpp

Lines changed: 53 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ QgsSymbolLayer *QgsSimpleFillSymbolLayer::create( const QgsStringMap &props )
195195
if ( props.contains( QStringLiteral( "joinstyle" ) ) )
196196
penJoinStyle = QgsSymbolLayerUtils::decodePenJoinStyle( props[QStringLiteral( "joinstyle" )] );
197197

198-
QgsSimpleFillSymbolLayer *sl = new QgsSimpleFillSymbolLayer( color, style, strokeColor, strokeStyle, strokeWidth, penJoinStyle );
198+
std::unique_ptr< QgsSimpleFillSymbolLayer > sl = qgis::make_unique< QgsSimpleFillSymbolLayer >( color, style, strokeColor, strokeStyle, strokeWidth, penJoinStyle );
199199
sl->setOffset( offset );
200200
if ( props.contains( QStringLiteral( "border_width_unit" ) ) )
201201
{
@@ -219,7 +219,7 @@ QgsSymbolLayer *QgsSimpleFillSymbolLayer::create( const QgsStringMap &props )
219219

220220
sl->restoreOldDataDefinedProperties( props );
221221

222-
return sl;
222+
return sl.release();
223223
}
224224

225225

@@ -305,15 +305,15 @@ QgsStringMap QgsSimpleFillSymbolLayer::properties() const
305305

306306
QgsSimpleFillSymbolLayer *QgsSimpleFillSymbolLayer::clone() const
307307
{
308-
QgsSimpleFillSymbolLayer *sl = new QgsSimpleFillSymbolLayer( mColor, mBrushStyle, mStrokeColor, mStrokeStyle, mStrokeWidth, mPenJoinStyle );
308+
std::unique_ptr< QgsSimpleFillSymbolLayer > sl = qgis::make_unique< QgsSimpleFillSymbolLayer >( mColor, mBrushStyle, mStrokeColor, mStrokeStyle, mStrokeWidth, mPenJoinStyle );
309309
sl->setOffset( mOffset );
310310
sl->setOffsetUnit( mOffsetUnit );
311311
sl->setOffsetMapUnitScale( mOffsetMapUnitScale );
312312
sl->setStrokeWidthUnit( mStrokeWidthUnit );
313313
sl->setStrokeWidthMapUnitScale( mStrokeWidthMapUnitScale );
314-
copyDataDefinedProperties( sl );
315-
copyPaintEffect( sl );
316-
return sl;
314+
copyDataDefinedProperties( sl.get() );
315+
copyPaintEffect( sl.get() );
316+
return sl.release();
317317
}
318318

319319
void QgsSimpleFillSymbolLayer::toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap &props ) const
@@ -385,10 +385,10 @@ QgsSymbolLayer *QgsSimpleFillSymbolLayer::createFromSld( QDomElement &element )
385385
offset.setY( QgsSymbolLayerUtils::sizeInPixelsFromSldUom( uom, offset.y() ) );
386386
strokeWidth = QgsSymbolLayerUtils::sizeInPixelsFromSldUom( uom, strokeWidth );
387387

388-
QgsSimpleFillSymbolLayer *sl = new QgsSimpleFillSymbolLayer( color, fillStyle, strokeColor, strokeStyle, strokeWidth );
388+
std::unique_ptr< QgsSimpleFillSymbolLayer > sl = qgis::make_unique< QgsSimpleFillSymbolLayer >( color, fillStyle, strokeColor, strokeStyle, strokeWidth );
389389
sl->setOutputUnit( QgsUnitTypes::RenderUnit::RenderPixels );
390390
sl->setOffset( offset );
391-
return sl;
391+
return sl.release();
392392
}
393393

394394
double QgsSimpleFillSymbolLayer::estimateMaxBleed( const QgsRenderContext &context ) const
@@ -537,7 +537,7 @@ QgsSymbolLayer *QgsGradientFillSymbolLayer::create( const QgsStringMap &props )
537537
}
538538

539539
//create a new gradient fill layer with desired properties
540-
QgsGradientFillSymbolLayer *sl = new QgsGradientFillSymbolLayer( color, color2, colorType, type, coordinateMode, gradientSpread );
540+
std::unique_ptr< QgsGradientFillSymbolLayer > sl = qgis::make_unique< QgsGradientFillSymbolLayer >( color, color2, colorType, type, coordinateMode, gradientSpread );
541541
sl->setOffset( offset );
542542
if ( props.contains( QStringLiteral( "offset_unit" ) ) )
543543
sl->setOffsetUnit( QgsUnitTypes::decodeRenderUnit( props[QStringLiteral( "offset_unit" )] ) );
@@ -553,7 +553,7 @@ QgsSymbolLayer *QgsGradientFillSymbolLayer::create( const QgsStringMap &props )
553553

554554
sl->restoreOldDataDefinedProperties( props );
555555

556-
return sl;
556+
return sl.release();
557557
}
558558

559559
void QgsGradientFillSymbolLayer::setColorRamp( QgsColorRamp *ramp )
@@ -893,7 +893,7 @@ QgsStringMap QgsGradientFillSymbolLayer::properties() const
893893

894894
QgsGradientFillSymbolLayer *QgsGradientFillSymbolLayer::clone() const
895895
{
896-
QgsGradientFillSymbolLayer *sl = new QgsGradientFillSymbolLayer( mColor, mColor2, mGradientColorType, mGradientType, mCoordinateMode, mGradientSpread );
896+
std::unique_ptr< QgsGradientFillSymbolLayer > sl = qgis::make_unique< QgsGradientFillSymbolLayer >( mColor, mColor2, mGradientColorType, mGradientType, mCoordinateMode, mGradientSpread );
897897
if ( mGradientRamp )
898898
sl->setColorRamp( mGradientRamp->clone() );
899899
sl->setReferencePoint1( mReferencePoint1 );
@@ -904,9 +904,9 @@ QgsGradientFillSymbolLayer *QgsGradientFillSymbolLayer::clone() const
904904
sl->setOffset( mOffset );
905905
sl->setOffsetUnit( mOffsetUnit );
906906
sl->setOffsetMapUnitScale( mOffsetMapUnitScale );
907-
copyDataDefinedProperties( sl );
908-
copyPaintEffect( sl );
909-
return sl;
907+
copyDataDefinedProperties( sl.get() );
908+
copyPaintEffect( sl.get() );
909+
return sl.release();
910910
}
911911

912912
double QgsGradientFillSymbolLayer::estimateMaxBleed( const QgsRenderContext &context ) const
@@ -1013,7 +1013,7 @@ QgsSymbolLayer *QgsShapeburstFillSymbolLayer::create( const QgsStringMap &props
10131013
}
10141014

10151015
//create a new shapeburst fill layer with desired properties
1016-
QgsShapeburstFillSymbolLayer *sl = new QgsShapeburstFillSymbolLayer( color, color2, colorType, blurRadius, useWholeShape, maxDistance );
1016+
std::unique_ptr< QgsShapeburstFillSymbolLayer > sl = qgis::make_unique< QgsShapeburstFillSymbolLayer >( color, color2, colorType, blurRadius, useWholeShape, maxDistance );
10171017
sl->setOffset( offset );
10181018
if ( props.contains( QStringLiteral( "offset_unit" ) ) )
10191019
{
@@ -1042,7 +1042,7 @@ QgsSymbolLayer *QgsShapeburstFillSymbolLayer::create( const QgsStringMap &props
10421042

10431043
sl->restoreOldDataDefinedProperties( props );
10441044

1045-
return sl;
1045+
return sl.release();
10461046
}
10471047

10481048
QString QgsShapeburstFillSymbolLayer::layerType() const
@@ -1492,7 +1492,7 @@ QgsStringMap QgsShapeburstFillSymbolLayer::properties() const
14921492

14931493
QgsShapeburstFillSymbolLayer *QgsShapeburstFillSymbolLayer::clone() const
14941494
{
1495-
QgsShapeburstFillSymbolLayer *sl = new QgsShapeburstFillSymbolLayer( mColor, mColor2, mColorType, mBlurRadius, mUseWholeShape, mMaxDistance );
1495+
std::unique_ptr< QgsShapeburstFillSymbolLayer > sl = qgis::make_unique< QgsShapeburstFillSymbolLayer >( mColor, mColor2, mColorType, mBlurRadius, mUseWholeShape, mMaxDistance );
14961496
if ( mGradientRamp )
14971497
{
14981498
sl->setColorRamp( mGradientRamp->clone() );
@@ -1503,9 +1503,9 @@ QgsShapeburstFillSymbolLayer *QgsShapeburstFillSymbolLayer::clone() const
15031503
sl->setOffset( mOffset );
15041504
sl->setOffsetUnit( mOffsetUnit );
15051505
sl->setOffsetMapUnitScale( mOffsetMapUnitScale );
1506-
copyDataDefinedProperties( sl );
1507-
copyPaintEffect( sl );
1508-
return sl;
1506+
copyDataDefinedProperties( sl.get() );
1507+
copyPaintEffect( sl.get() );
1508+
return sl.release();
15091509
}
15101510

15111511
double QgsShapeburstFillSymbolLayer::estimateMaxBleed( const QgsRenderContext &context ) const
@@ -1817,18 +1817,18 @@ QgsSymbolLayer *QgsSVGFillSymbolLayer::create( const QgsStringMap &properties )
18171817
angle = properties[QStringLiteral( "angle" )].toDouble();
18181818
}
18191819

1820-
QgsSVGFillSymbolLayer *symbolLayer = nullptr;
1820+
std::unique_ptr< QgsSVGFillSymbolLayer > symbolLayer;
18211821
if ( !svgFilePath.isEmpty() )
18221822
{
1823-
symbolLayer = new QgsSVGFillSymbolLayer( svgFilePath, width, angle );
1823+
symbolLayer = qgis::make_unique< QgsSVGFillSymbolLayer >( svgFilePath, width, angle );
18241824
}
18251825
else
18261826
{
18271827
if ( properties.contains( QStringLiteral( "data" ) ) )
18281828
{
18291829
data = QByteArray::fromHex( properties[QStringLiteral( "data" )].toLocal8Bit() );
18301830
}
1831-
symbolLayer = new QgsSVGFillSymbolLayer( data, width, angle );
1831+
symbolLayer = qgis::make_unique< QgsSVGFillSymbolLayer >( data, width, angle );
18321832
}
18331833

18341834
//svg parameters
@@ -1896,7 +1896,7 @@ QgsSymbolLayer *QgsSVGFillSymbolLayer::create( const QgsStringMap &properties )
18961896

18971897
symbolLayer->restoreOldDataDefinedProperties( properties );
18981898

1899-
return symbolLayer;
1899+
return symbolLayer.release();
19001900
}
19011901

19021902
void QgsSVGFillSymbolLayer::resolvePaths( QgsStringMap &properties, const QgsPathResolver &pathResolver, bool saving )
@@ -2023,17 +2023,17 @@ QgsStringMap QgsSVGFillSymbolLayer::properties() const
20232023

20242024
QgsSVGFillSymbolLayer *QgsSVGFillSymbolLayer::clone() const
20252025
{
2026-
QgsSVGFillSymbolLayer *clonedLayer = nullptr;
2026+
std::unique_ptr< QgsSVGFillSymbolLayer > clonedLayer;
20272027
if ( !mSvgFilePath.isEmpty() )
20282028
{
2029-
clonedLayer = new QgsSVGFillSymbolLayer( mSvgFilePath, mPatternWidth, mAngle );
2029+
clonedLayer = qgis::make_unique< QgsSVGFillSymbolLayer >( mSvgFilePath, mPatternWidth, mAngle );
20302030
clonedLayer->setSvgFillColor( mColor );
20312031
clonedLayer->setSvgStrokeColor( mSvgStrokeColor );
20322032
clonedLayer->setSvgStrokeWidth( mSvgStrokeWidth );
20332033
}
20342034
else
20352035
{
2036-
clonedLayer = new QgsSVGFillSymbolLayer( mSvgData, mPatternWidth, mAngle );
2036+
clonedLayer = qgis::make_unique< QgsSVGFillSymbolLayer >( mSvgData, mPatternWidth, mAngle );
20372037
}
20382038

20392039
clonedLayer->setPatternWidthUnit( mPatternWidthUnit );
@@ -2047,9 +2047,9 @@ QgsSVGFillSymbolLayer *QgsSVGFillSymbolLayer::clone() const
20472047
{
20482048
clonedLayer->setSubSymbol( mStroke->clone() );
20492049
}
2050-
copyDataDefinedProperties( clonedLayer );
2051-
copyPaintEffect( clonedLayer );
2052-
return clonedLayer;
2050+
copyDataDefinedProperties( clonedLayer.get() );
2051+
copyPaintEffect( clonedLayer.get() );
2052+
return clonedLayer.release();
20532053
}
20542054

20552055
void QgsSVGFillSymbolLayer::toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap &props ) const
@@ -2150,7 +2150,7 @@ QgsSymbolLayer *QgsSVGFillSymbolLayer::createFromSld( QDomElement &element )
21502150
angle = d;
21512151
}
21522152

2153-
QgsSVGFillSymbolLayer *sl = new QgsSVGFillSymbolLayer( path, size, angle );
2153+
std::unique_ptr< QgsSVGFillSymbolLayer > sl = qgis::make_unique< QgsSVGFillSymbolLayer >( path, size, angle );
21542154
sl->setOutputUnit( QgsUnitTypes::RenderUnit::RenderPixels );
21552155
sl->setSvgFillColor( fillColor );
21562156
sl->setSvgStrokeColor( strokeColor );
@@ -2169,7 +2169,7 @@ QgsSymbolLayer *QgsSVGFillSymbolLayer::createFromSld( QDomElement &element )
21692169
}
21702170
}
21712171

2172-
return sl;
2172+
return sl.release();
21732173
}
21742174

21752175
void QgsSVGFillSymbolLayer::applyDataDefinedSettings( QgsSymbolRenderContext &context )
@@ -2391,7 +2391,7 @@ QgsMapUnitScale QgsLinePatternFillSymbolLayer::mapUnitScale() const
23912391

23922392
QgsSymbolLayer *QgsLinePatternFillSymbolLayer::create( const QgsStringMap &properties )
23932393
{
2394-
QgsLinePatternFillSymbolLayer *patternLayer = new QgsLinePatternFillSymbolLayer();
2394+
std::unique_ptr< QgsLinePatternFillSymbolLayer > patternLayer = qgis::make_unique< QgsLinePatternFillSymbolLayer >();
23952395

23962396
//default values
23972397
double lineAngle = 45;
@@ -2492,7 +2492,7 @@ QgsSymbolLayer *QgsLinePatternFillSymbolLayer::create( const QgsStringMap &prope
24922492

24932493
patternLayer->restoreOldDataDefinedProperties( properties );
24942494

2495-
return patternLayer;
2495+
return patternLayer.release();
24962496
}
24972497

24982498
QString QgsLinePatternFillSymbolLayer::layerType() const
@@ -2509,7 +2509,7 @@ void QgsLinePatternFillSymbolLayer::applyPattern( const QgsSymbolRenderContext &
25092509
return;
25102510
}
25112511
// We have to make a copy because marker intervals will have to be adjusted
2512-
QgsLineSymbol *fillLineSymbol = mFillLineSymbol->clone();
2512+
std::unique_ptr< QgsLineSymbol > fillLineSymbol( mFillLineSymbol->clone() );
25132513
if ( !fillLineSymbol )
25142514
{
25152515
return;
@@ -2773,8 +2773,6 @@ void QgsLinePatternFillSymbolLayer::applyPattern( const QgsSymbolRenderContext &
27732773

27742774
QTransform brushTransform;
27752775
brush.setTransform( brushTransform );
2776-
2777-
delete fillLineSymbol;
27782776
}
27792777

27802778
void QgsLinePatternFillSymbolLayer::startRender( QgsSymbolRenderContext &context )
@@ -2958,7 +2956,7 @@ QgsSymbolLayer *QgsLinePatternFillSymbolLayer::createFromSld( QDomElement &eleme
29582956
size = QgsSymbolLayerUtils::sizeInPixelsFromSldUom( uom, size );
29592957
lineWidth = QgsSymbolLayerUtils::sizeInPixelsFromSldUom( uom, lineWidth );
29602958

2961-
QgsLinePatternFillSymbolLayer *sl = new QgsLinePatternFillSymbolLayer();
2959+
std::unique_ptr< QgsLinePatternFillSymbolLayer > sl = qgis::make_unique< QgsLinePatternFillSymbolLayer >();
29622960
sl->setOutputUnit( QgsUnitTypes::RenderUnit::RenderPixels );
29632961
sl->setColor( lineColor );
29642962
sl->setLineWidth( lineWidth );
@@ -2979,7 +2977,7 @@ QgsSymbolLayer *QgsLinePatternFillSymbolLayer::createFromSld( QDomElement &eleme
29792977
}
29802978
}
29812979

2982-
return sl;
2980+
return sl.release();
29832981
}
29842982

29852983

@@ -3048,7 +3046,7 @@ QgsMapUnitScale QgsPointPatternFillSymbolLayer::mapUnitScale() const
30483046

30493047
QgsSymbolLayer *QgsPointPatternFillSymbolLayer::create( const QgsStringMap &properties )
30503048
{
3051-
QgsPointPatternFillSymbolLayer *layer = new QgsPointPatternFillSymbolLayer();
3049+
std::unique_ptr< QgsPointPatternFillSymbolLayer > layer = qgis::make_unique< QgsPointPatternFillSymbolLayer >();
30523050
if ( properties.contains( QStringLiteral( "distance_x" ) ) )
30533051
{
30543052
layer->setDistanceX( properties[QStringLiteral( "distance_x" )].toDouble() );
@@ -3109,7 +3107,7 @@ QgsSymbolLayer *QgsPointPatternFillSymbolLayer::create( const QgsStringMap &prop
31093107

31103108
layer->restoreOldDataDefinedProperties( properties );
31113109

3112-
return layer;
3110+
return layer.release();
31133111
}
31143112

31153113
QString QgsPointPatternFillSymbolLayer::layerType() const
@@ -3372,7 +3370,7 @@ QgsCentroidFillSymbolLayer::QgsCentroidFillSymbolLayer()
33723370

33733371
QgsSymbolLayer *QgsCentroidFillSymbolLayer::create( const QgsStringMap &properties )
33743372
{
3375-
QgsCentroidFillSymbolLayer *sl = new QgsCentroidFillSymbolLayer();
3373+
std::unique_ptr< QgsCentroidFillSymbolLayer > sl = qgis::make_unique< QgsCentroidFillSymbolLayer >();
33763374

33773375
if ( properties.contains( QStringLiteral( "point_on_surface" ) ) )
33783376
sl->setPointOnSurface( properties[QStringLiteral( "point_on_surface" )].toInt() != 0 );
@@ -3381,7 +3379,7 @@ QgsSymbolLayer *QgsCentroidFillSymbolLayer::create( const QgsStringMap &properti
33813379

33823380
sl->restoreOldDataDefinedProperties( properties );
33833381

3384-
return sl;
3382+
return sl.release();
33853383
}
33863384

33873385
QString QgsCentroidFillSymbolLayer::layerType() const
@@ -3466,15 +3464,15 @@ QgsStringMap QgsCentroidFillSymbolLayer::properties() const
34663464

34673465
QgsCentroidFillSymbolLayer *QgsCentroidFillSymbolLayer::clone() const
34683466
{
3469-
QgsCentroidFillSymbolLayer *x = new QgsCentroidFillSymbolLayer();
3467+
std::unique_ptr< QgsCentroidFillSymbolLayer > x = qgis::make_unique< QgsCentroidFillSymbolLayer >();
34703468
x->mAngle = mAngle;
34713469
x->mColor = mColor;
34723470
x->setSubSymbol( mMarker->clone() );
34733471
x->setPointOnSurface( mPointOnSurface );
34743472
x->setPointOnAllParts( mPointOnAllParts );
3475-
copyDataDefinedProperties( x );
3476-
copyPaintEffect( x );
3477-
return x;
3473+
copyDataDefinedProperties( x.get() );
3474+
copyPaintEffect( x.get() );
3475+
return x.release();
34783476
}
34793477

34803478
void QgsCentroidFillSymbolLayer::toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap &props ) const
@@ -3497,9 +3495,9 @@ QgsSymbolLayer *QgsCentroidFillSymbolLayer::createFromSld( QDomElement &element
34973495
layers.append( l );
34983496
std::unique_ptr< QgsMarkerSymbol > marker( new QgsMarkerSymbol( layers ) );
34993497

3500-
QgsCentroidFillSymbolLayer *sl = new QgsCentroidFillSymbolLayer();
3498+
std::unique_ptr< QgsCentroidFillSymbolLayer > sl = qgis::make_unique< QgsCentroidFillSymbolLayer >();
35013499
sl->setSubSymbol( marker.release() );
3502-
return sl;
3500+
return sl.release();
35033501
}
35043502

35053503

@@ -3608,7 +3606,7 @@ QgsSymbolLayer *QgsRasterFillSymbolLayer::create( const QgsStringMap &properties
36083606
{
36093607
width = properties[QStringLiteral( "width" )].toDouble();
36103608
}
3611-
QgsRasterFillSymbolLayer *symbolLayer = new QgsRasterFillSymbolLayer( imagePath );
3609+
std::unique_ptr< QgsRasterFillSymbolLayer > symbolLayer = qgis::make_unique< QgsRasterFillSymbolLayer >( imagePath );
36123610
symbolLayer->setCoordinateMode( mode );
36133611
symbolLayer->setOpacity( alpha );
36143612
symbolLayer->setOffset( offset );
@@ -3633,7 +3631,7 @@ QgsSymbolLayer *QgsRasterFillSymbolLayer::create( const QgsStringMap &properties
36333631

36343632
symbolLayer->restoreOldDataDefinedProperties( properties );
36353633

3636-
return symbolLayer;
3634+
return symbolLaye.release()r;
36373635
}
36383636

36393637
void QgsRasterFillSymbolLayer::resolvePaths( QgsStringMap &properties, const QgsPathResolver &pathResolver, bool saving )
@@ -3716,7 +3714,7 @@ QgsStringMap QgsRasterFillSymbolLayer::properties() const
37163714

37173715
QgsRasterFillSymbolLayer *QgsRasterFillSymbolLayer::clone() const
37183716
{
3719-
QgsRasterFillSymbolLayer *sl = new QgsRasterFillSymbolLayer( mImageFilePath );
3717+
std::unique_ptr< QgsRasterFillSymbolLayer > sl = qgis::make_unique< QgsRasterFillSymbolLayer >( mImageFilePath );
37203718
sl->setCoordinateMode( mCoordinateMode );
37213719
sl->setOpacity( mOpacity );
37223720
sl->setOffset( mOffset );
@@ -3726,9 +3724,9 @@ QgsRasterFillSymbolLayer *QgsRasterFillSymbolLayer::clone() const
37263724
sl->setWidth( mWidth );
37273725
sl->setWidthUnit( mWidthUnit );
37283726
sl->setWidthMapUnitScale( mWidthMapUnitScale );
3729-
copyDataDefinedProperties( sl );
3730-
copyPaintEffect( sl );
3731-
return sl;
3727+
copyDataDefinedProperties( sl.get() );
3728+
copyPaintEffect( sl.get() );
3729+
return sl.release();
37323730
}
37333731

37343732
double QgsRasterFillSymbolLayer::estimateMaxBleed( const QgsRenderContext &context ) const

0 commit comments

Comments
 (0)