Skip to content

Commit

Permalink
unique_ptr
Browse files Browse the repository at this point in the history
  • Loading branch information
nyalldawson committed Oct 2, 2018
1 parent f2ada66 commit 6dd1bd3
Showing 1 changed file with 53 additions and 55 deletions.
108 changes: 53 additions & 55 deletions src/core/symbology/qgsfillsymbollayer.cpp
Expand Up @@ -195,7 +195,7 @@ QgsSymbolLayer *QgsSimpleFillSymbolLayer::create( const QgsStringMap &props )
if ( props.contains( QStringLiteral( "joinstyle" ) ) )
penJoinStyle = QgsSymbolLayerUtils::decodePenJoinStyle( props[QStringLiteral( "joinstyle" )] );

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

sl->restoreOldDataDefinedProperties( props );

return sl;
return sl.release();
}


Expand Down Expand Up @@ -305,15 +305,15 @@ QgsStringMap QgsSimpleFillSymbolLayer::properties() const

QgsSimpleFillSymbolLayer *QgsSimpleFillSymbolLayer::clone() const
{
QgsSimpleFillSymbolLayer *sl = new QgsSimpleFillSymbolLayer( mColor, mBrushStyle, mStrokeColor, mStrokeStyle, mStrokeWidth, mPenJoinStyle );
std::unique_ptr< QgsSimpleFillSymbolLayer > sl = qgis::make_unique< QgsSimpleFillSymbolLayer >( mColor, mBrushStyle, mStrokeColor, mStrokeStyle, mStrokeWidth, mPenJoinStyle );
sl->setOffset( mOffset );
sl->setOffsetUnit( mOffsetUnit );
sl->setOffsetMapUnitScale( mOffsetMapUnitScale );
sl->setStrokeWidthUnit( mStrokeWidthUnit );
sl->setStrokeWidthMapUnitScale( mStrokeWidthMapUnitScale );
copyDataDefinedProperties( sl );
copyPaintEffect( sl );
return sl;
copyDataDefinedProperties( sl.get() );
copyPaintEffect( sl.get() );
return sl.release();
}

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

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

double QgsSimpleFillSymbolLayer::estimateMaxBleed( const QgsRenderContext &context ) const
Expand Down Expand Up @@ -537,7 +537,7 @@ QgsSymbolLayer *QgsGradientFillSymbolLayer::create( const QgsStringMap &props )
}

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

sl->restoreOldDataDefinedProperties( props );

return sl;
return sl.release();
}

void QgsGradientFillSymbolLayer::setColorRamp( QgsColorRamp *ramp )
Expand Down Expand Up @@ -893,7 +893,7 @@ QgsStringMap QgsGradientFillSymbolLayer::properties() const

QgsGradientFillSymbolLayer *QgsGradientFillSymbolLayer::clone() const
{
QgsGradientFillSymbolLayer *sl = new QgsGradientFillSymbolLayer( mColor, mColor2, mGradientColorType, mGradientType, mCoordinateMode, mGradientSpread );
std::unique_ptr< QgsGradientFillSymbolLayer > sl = qgis::make_unique< QgsGradientFillSymbolLayer >( mColor, mColor2, mGradientColorType, mGradientType, mCoordinateMode, mGradientSpread );
if ( mGradientRamp )
sl->setColorRamp( mGradientRamp->clone() );
sl->setReferencePoint1( mReferencePoint1 );
Expand All @@ -904,9 +904,9 @@ QgsGradientFillSymbolLayer *QgsGradientFillSymbolLayer::clone() const
sl->setOffset( mOffset );
sl->setOffsetUnit( mOffsetUnit );
sl->setOffsetMapUnitScale( mOffsetMapUnitScale );
copyDataDefinedProperties( sl );
copyPaintEffect( sl );
return sl;
copyDataDefinedProperties( sl.get() );
copyPaintEffect( sl.get() );
return sl.release();
}

double QgsGradientFillSymbolLayer::estimateMaxBleed( const QgsRenderContext &context ) const
Expand Down Expand Up @@ -1013,7 +1013,7 @@ QgsSymbolLayer *QgsShapeburstFillSymbolLayer::create( const QgsStringMap &props
}

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

sl->restoreOldDataDefinedProperties( props );

return sl;
return sl.release();
}

QString QgsShapeburstFillSymbolLayer::layerType() const
Expand Down Expand Up @@ -1492,7 +1492,7 @@ QgsStringMap QgsShapeburstFillSymbolLayer::properties() const

QgsShapeburstFillSymbolLayer *QgsShapeburstFillSymbolLayer::clone() const
{
QgsShapeburstFillSymbolLayer *sl = new QgsShapeburstFillSymbolLayer( mColor, mColor2, mColorType, mBlurRadius, mUseWholeShape, mMaxDistance );
std::unique_ptr< QgsShapeburstFillSymbolLayer > sl = qgis::make_unique< QgsShapeburstFillSymbolLayer >( mColor, mColor2, mColorType, mBlurRadius, mUseWholeShape, mMaxDistance );
if ( mGradientRamp )
{
sl->setColorRamp( mGradientRamp->clone() );
Expand All @@ -1503,9 +1503,9 @@ QgsShapeburstFillSymbolLayer *QgsShapeburstFillSymbolLayer::clone() const
sl->setOffset( mOffset );
sl->setOffsetUnit( mOffsetUnit );
sl->setOffsetMapUnitScale( mOffsetMapUnitScale );
copyDataDefinedProperties( sl );
copyPaintEffect( sl );
return sl;
copyDataDefinedProperties( sl.get() );
copyPaintEffect( sl.get() );
return sl.release();
}

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

QgsSVGFillSymbolLayer *symbolLayer = nullptr;
std::unique_ptr< QgsSVGFillSymbolLayer > symbolLayer;
if ( !svgFilePath.isEmpty() )
{
symbolLayer = new QgsSVGFillSymbolLayer( svgFilePath, width, angle );
symbolLayer = qgis::make_unique< QgsSVGFillSymbolLayer >( svgFilePath, width, angle );
}
else
{
if ( properties.contains( QStringLiteral( "data" ) ) )
{
data = QByteArray::fromHex( properties[QStringLiteral( "data" )].toLocal8Bit() );
}
symbolLayer = new QgsSVGFillSymbolLayer( data, width, angle );
symbolLayer = qgis::make_unique< QgsSVGFillSymbolLayer >( data, width, angle );
}

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

symbolLayer->restoreOldDataDefinedProperties( properties );

return symbolLayer;
return symbolLayer.release();
}

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

QgsSVGFillSymbolLayer *QgsSVGFillSymbolLayer::clone() const
{
QgsSVGFillSymbolLayer *clonedLayer = nullptr;
std::unique_ptr< QgsSVGFillSymbolLayer > clonedLayer;
if ( !mSvgFilePath.isEmpty() )
{
clonedLayer = new QgsSVGFillSymbolLayer( mSvgFilePath, mPatternWidth, mAngle );
clonedLayer = qgis::make_unique< QgsSVGFillSymbolLayer >( mSvgFilePath, mPatternWidth, mAngle );
clonedLayer->setSvgFillColor( mColor );
clonedLayer->setSvgStrokeColor( mSvgStrokeColor );
clonedLayer->setSvgStrokeWidth( mSvgStrokeWidth );
}
else
{
clonedLayer = new QgsSVGFillSymbolLayer( mSvgData, mPatternWidth, mAngle );
clonedLayer = qgis::make_unique< QgsSVGFillSymbolLayer >( mSvgData, mPatternWidth, mAngle );
}

clonedLayer->setPatternWidthUnit( mPatternWidthUnit );
Expand All @@ -2047,9 +2047,9 @@ QgsSVGFillSymbolLayer *QgsSVGFillSymbolLayer::clone() const
{
clonedLayer->setSubSymbol( mStroke->clone() );
}
copyDataDefinedProperties( clonedLayer );
copyPaintEffect( clonedLayer );
return clonedLayer;
copyDataDefinedProperties( clonedLayer.get() );
copyPaintEffect( clonedLayer.get() );
return clonedLayer.release();
}

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

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

return sl;
return sl.release();
}

void QgsSVGFillSymbolLayer::applyDataDefinedSettings( QgsSymbolRenderContext &context )
Expand Down Expand Up @@ -2391,7 +2391,7 @@ QgsMapUnitScale QgsLinePatternFillSymbolLayer::mapUnitScale() const

QgsSymbolLayer *QgsLinePatternFillSymbolLayer::create( const QgsStringMap &properties )
{
QgsLinePatternFillSymbolLayer *patternLayer = new QgsLinePatternFillSymbolLayer();
std::unique_ptr< QgsLinePatternFillSymbolLayer > patternLayer = qgis::make_unique< QgsLinePatternFillSymbolLayer >();

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

patternLayer->restoreOldDataDefinedProperties( properties );

return patternLayer;
return patternLayer.release();
}

QString QgsLinePatternFillSymbolLayer::layerType() const
Expand All @@ -2509,7 +2509,7 @@ void QgsLinePatternFillSymbolLayer::applyPattern( const QgsSymbolRenderContext &
return;
}
// We have to make a copy because marker intervals will have to be adjusted
QgsLineSymbol *fillLineSymbol = mFillLineSymbol->clone();
std::unique_ptr< QgsLineSymbol > fillLineSymbol( mFillLineSymbol->clone() );
if ( !fillLineSymbol )
{
return;
Expand Down Expand Up @@ -2773,8 +2773,6 @@ void QgsLinePatternFillSymbolLayer::applyPattern( const QgsSymbolRenderContext &

QTransform brushTransform;
brush.setTransform( brushTransform );

delete fillLineSymbol;
}

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

QgsLinePatternFillSymbolLayer *sl = new QgsLinePatternFillSymbolLayer();
std::unique_ptr< QgsLinePatternFillSymbolLayer > sl = qgis::make_unique< QgsLinePatternFillSymbolLayer >();
sl->setOutputUnit( QgsUnitTypes::RenderUnit::RenderPixels );
sl->setColor( lineColor );
sl->setLineWidth( lineWidth );
Expand All @@ -2979,7 +2977,7 @@ QgsSymbolLayer *QgsLinePatternFillSymbolLayer::createFromSld( QDomElement &eleme
}
}

return sl;
return sl.release();
}


Expand Down Expand Up @@ -3048,7 +3046,7 @@ QgsMapUnitScale QgsPointPatternFillSymbolLayer::mapUnitScale() const

QgsSymbolLayer *QgsPointPatternFillSymbolLayer::create( const QgsStringMap &properties )
{
QgsPointPatternFillSymbolLayer *layer = new QgsPointPatternFillSymbolLayer();
std::unique_ptr< QgsPointPatternFillSymbolLayer > layer = qgis::make_unique< QgsPointPatternFillSymbolLayer >();
if ( properties.contains( QStringLiteral( "distance_x" ) ) )
{
layer->setDistanceX( properties[QStringLiteral( "distance_x" )].toDouble() );
Expand Down Expand Up @@ -3109,7 +3107,7 @@ QgsSymbolLayer *QgsPointPatternFillSymbolLayer::create( const QgsStringMap &prop

layer->restoreOldDataDefinedProperties( properties );

return layer;
return layer.release();
}

QString QgsPointPatternFillSymbolLayer::layerType() const
Expand Down Expand Up @@ -3372,7 +3370,7 @@ QgsCentroidFillSymbolLayer::QgsCentroidFillSymbolLayer()

QgsSymbolLayer *QgsCentroidFillSymbolLayer::create( const QgsStringMap &properties )
{
QgsCentroidFillSymbolLayer *sl = new QgsCentroidFillSymbolLayer();
std::unique_ptr< QgsCentroidFillSymbolLayer > sl = qgis::make_unique< QgsCentroidFillSymbolLayer >();

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

sl->restoreOldDataDefinedProperties( properties );

return sl;
return sl.release();
}

QString QgsCentroidFillSymbolLayer::layerType() const
Expand Down Expand Up @@ -3466,15 +3464,15 @@ QgsStringMap QgsCentroidFillSymbolLayer::properties() const

QgsCentroidFillSymbolLayer *QgsCentroidFillSymbolLayer::clone() const
{
QgsCentroidFillSymbolLayer *x = new QgsCentroidFillSymbolLayer();
std::unique_ptr< QgsCentroidFillSymbolLayer > x = qgis::make_unique< QgsCentroidFillSymbolLayer >();
x->mAngle = mAngle;
x->mColor = mColor;
x->setSubSymbol( mMarker->clone() );
x->setPointOnSurface( mPointOnSurface );
x->setPointOnAllParts( mPointOnAllParts );
copyDataDefinedProperties( x );
copyPaintEffect( x );
return x;
copyDataDefinedProperties( x.get() );
copyPaintEffect( x.get() );
return x.release();
}

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

QgsCentroidFillSymbolLayer *sl = new QgsCentroidFillSymbolLayer();
std::unique_ptr< QgsCentroidFillSymbolLayer > sl = qgis::make_unique< QgsCentroidFillSymbolLayer >();
sl->setSubSymbol( marker.release() );
return sl;
return sl.release();
}


Expand Down Expand Up @@ -3608,7 +3606,7 @@ QgsSymbolLayer *QgsRasterFillSymbolLayer::create( const QgsStringMap &properties
{
width = properties[QStringLiteral( "width" )].toDouble();
}
QgsRasterFillSymbolLayer *symbolLayer = new QgsRasterFillSymbolLayer( imagePath );
std::unique_ptr< QgsRasterFillSymbolLayer > symbolLayer = qgis::make_unique< QgsRasterFillSymbolLayer >( imagePath );
symbolLayer->setCoordinateMode( mode );
symbolLayer->setOpacity( alpha );
symbolLayer->setOffset( offset );
Expand All @@ -3633,7 +3631,7 @@ QgsSymbolLayer *QgsRasterFillSymbolLayer::create( const QgsStringMap &properties

symbolLayer->restoreOldDataDefinedProperties( properties );

return symbolLayer;
return symbolLaye.release()r;
}

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

QgsRasterFillSymbolLayer *QgsRasterFillSymbolLayer::clone() const
{
QgsRasterFillSymbolLayer *sl = new QgsRasterFillSymbolLayer( mImageFilePath );
std::unique_ptr< QgsRasterFillSymbolLayer > sl = qgis::make_unique< QgsRasterFillSymbolLayer >( mImageFilePath );
sl->setCoordinateMode( mCoordinateMode );
sl->setOpacity( mOpacity );
sl->setOffset( mOffset );
Expand All @@ -3726,9 +3724,9 @@ QgsRasterFillSymbolLayer *QgsRasterFillSymbolLayer::clone() const
sl->setWidth( mWidth );
sl->setWidthUnit( mWidthUnit );
sl->setWidthMapUnitScale( mWidthMapUnitScale );
copyDataDefinedProperties( sl );
copyPaintEffect( sl );
return sl;
copyDataDefinedProperties( sl.get() );
copyPaintEffect( sl.get() );
return sl.release();
}

double QgsRasterFillSymbolLayer::estimateMaxBleed( const QgsRenderContext &context ) const
Expand Down

0 comments on commit 6dd1bd3

Please sign in to comment.