Skip to content

Commit 53532fa

Browse files
committed
Paul's review: code enhancement
1 parent 94ce3b9 commit 53532fa

File tree

1 file changed

+17
-18
lines changed

1 file changed

+17
-18
lines changed

src/core/qgstracer.cpp

+17-18
Original file line numberDiff line numberDiff line change
@@ -476,24 +476,23 @@ bool QgsTracer::initGraph()
476476
t1.start();
477477
int featuresCounted = 0;
478478
bool enableInvisibleFeature = QgsSettings().value( QStringLiteral( "/qgis/digitizing/snap_invisible_feature" ), false ).toBool();
479-
for ( QgsVectorLayer *vl : qgis::as_const( mLayers ) )
479+
for ( const QgsVectorLayer *vl : qgis::as_const( mLayers ) )
480480
{
481481
QgsFeatureRequest request;
482482
bool filter = false;
483483
std::unique_ptr< QgsFeatureRenderer > renderer;
484-
QgsRenderContext *ctx = nullptr;
485-
if ( !enableInvisibleFeature && mRenderContext )
484+
std::unique_ptr<QgsRenderContext> ctx;
485+
486+
if ( !enableInvisibleFeature && mRenderContext && vl->renderer() )
486487
{
487-
renderer.reset( vl->renderer() ? vl->renderer()->clone() : nullptr );
488-
mRenderContext->expressionContext() << QgsExpressionContextUtils::layerScope( vl );
489-
ctx = mRenderContext.get();
490-
if ( renderer )
491-
{
492-
// setup scale for scale dependent visibility (rule based)
493-
renderer->startRender( *ctx, vl->fields() );
494-
filter = renderer->capabilities() & QgsFeatureRenderer::Filter;
495-
request.setSubsetOfAttributes( renderer->usedAttributes( *ctx ), vl->fields() );
496-
}
488+
renderer.reset( vl->renderer()->clone() );
489+
ctx.reset( new QgsRenderContext( *mRenderContext.get() ) );
490+
ctx->expressionContext() << QgsExpressionContextUtils::layerScope( vl );
491+
492+
// setup scale for scale dependent visibility (rule based)
493+
renderer->startRender( *ctx.get(), vl->fields() );
494+
filter = renderer->capabilities() & QgsFeatureRenderer::Filter;
495+
request.setSubsetOfAttributes( renderer->usedAttributes( *ctx.get() ), vl->fields() );
497496
}
498497
else
499498
{
@@ -510,10 +509,10 @@ bool QgsTracer::initGraph()
510509
if ( !f.hasGeometry() )
511510
continue;
512511

513-
if ( filter && ctx && renderer )
512+
if ( filter )
514513
{
515514
ctx->expressionContext().setFeature( f );
516-
if ( !renderer->willRenderFeature( f, *ctx ) )
515+
if ( !renderer->willRenderFeature( f, *ctx.get() ) )
517516
{
518517
continue;
519518
}
@@ -526,9 +525,9 @@ bool QgsTracer::initGraph()
526525
return false;
527526
}
528527

529-
if ( ctx && renderer )
528+
if ( renderer )
530529
{
531-
renderer->stopRender( *ctx );
530+
renderer->stopRender( *ctx.get() );
532531
}
533532
}
534533
int timeExtract = t1.elapsed();
@@ -631,7 +630,7 @@ void QgsTracer::setDestinationCrs( const QgsCoordinateReferenceSystem &crs, cons
631630

632631
void QgsTracer::setRenderContext( const QgsRenderContext *renderContext )
633632
{
634-
mRenderContext = std::unique_ptr<QgsRenderContext>( new QgsRenderContext( *renderContext ) );
633+
mRenderContext.reset( new QgsRenderContext( *renderContext ) );
635634
invalidateGraph();
636635
}
637636

0 commit comments

Comments
 (0)