Skip to content

Commit

Permalink
Fix "force layer to render as raster" setting wasn't correctly copied
Browse files Browse the repository at this point in the history
with cloned renderers

And move more common code to QgsFeatureRenderer::copyRendererData

Fixes #43535

(cherry picked from commit 4e40323)
  • Loading branch information
nyalldawson committed Jun 9, 2021
1 parent 191370a commit dcd016b
Show file tree
Hide file tree
Showing 6 changed files with 6 additions and 12 deletions.
1 change: 0 additions & 1 deletion src/core/symbology/qgscategorizedsymbolrenderer.cpp
Expand Up @@ -501,7 +501,6 @@ QgsCategorizedSymbolRenderer *QgsCategorizedSymbolRenderer::clone() const
{
r->setSourceColorRamp( mSourceColorRamp->clone() );
}
r->setUsingSymbolLevels( usingSymbolLevels() );
r->setDataDefinedSizeLegend( mDataDefinedSizeLegend ? new QgsDataDefinedSizeLegend( *mDataDefinedSizeLegend ) : nullptr );

copyRendererData( r );
Expand Down
1 change: 0 additions & 1 deletion src/core/symbology/qgsgraduatedsymbolrenderer.cpp
Expand Up @@ -316,7 +316,6 @@ QgsGraduatedSymbolRenderer *QgsGraduatedSymbolRenderer::clone() const
{
r->setSourceColorRamp( mSourceColorRamp->clone() );
}
r->setUsingSymbolLevels( usingSymbolLevels() );
r->setDataDefinedSizeLegend( mDataDefinedSizeLegend ? new QgsDataDefinedSizeLegend( *mDataDefinedSizeLegend ) : nullptr );
r->setGraduatedMethod( graduatedMethod() );
copyRendererData( r );
Expand Down
6 changes: 2 additions & 4 deletions src/core/symbology/qgsrenderer.cpp
Expand Up @@ -52,17 +52,15 @@ void QgsFeatureRenderer::copyRendererData( QgsFeatureRenderer *destRenderer ) co
return;

destRenderer->setPaintEffect( mPaintEffect->clone() );
destRenderer->setForceRasterRender( mForceRaster );
destRenderer->setUsingSymbolLevels( mUsingSymbolLevels );
destRenderer->mOrderBy = mOrderBy;
destRenderer->mOrderByEnabled = mOrderByEnabled;
}

QgsFeatureRenderer::QgsFeatureRenderer( const QString &type )
: mType( type )
, mUsingSymbolLevels( false )
, mCurrentVertexMarkerType( QgsVectorLayer::Cross )
, mCurrentVertexMarkerSize( 2 )
, mForceRaster( false )
, mOrderByEnabled( false )
{
mPaintEffect = QgsPaintEffectRegistry::defaultStack();
mPaintEffect->setEnabled( false );
Expand Down
8 changes: 4 additions & 4 deletions src/core/symbology/qgsrenderer.h
Expand Up @@ -519,16 +519,16 @@ class CORE_EXPORT QgsFeatureRenderer

QString mType;

bool mUsingSymbolLevels;
bool mUsingSymbolLevels = false;

//! The current type of editing marker
int mCurrentVertexMarkerType;
//! The current size of editing marker
double mCurrentVertexMarkerSize;
double mCurrentVertexMarkerSize = 2;

QgsPaintEffect *mPaintEffect = nullptr;

bool mForceRaster;
bool mForceRaster = false;

/**
* \note this function is used to convert old sizeScale expressions to symbol
Expand All @@ -544,7 +544,7 @@ class CORE_EXPORT QgsFeatureRenderer

QgsFeatureRequest::OrderBy mOrderBy;

bool mOrderByEnabled;
bool mOrderByEnabled = false;

private:
#ifdef SIP_RUN
Expand Down
1 change: 0 additions & 1 deletion src/core/symbology/qgsrulebasedrenderer.cpp
Expand Up @@ -1055,7 +1055,6 @@ QgsRuleBasedRenderer *QgsRuleBasedRenderer::clone() const

QgsRuleBasedRenderer *r = new QgsRuleBasedRenderer( clonedRoot );

r->setUsingSymbolLevels( usingSymbolLevels() );
copyRendererData( r );
return r;
}
Expand Down
1 change: 0 additions & 1 deletion src/core/symbology/qgssinglesymbolrenderer.cpp
Expand Up @@ -112,7 +112,6 @@ QString QgsSingleSymbolRenderer::dump() const
QgsSingleSymbolRenderer *QgsSingleSymbolRenderer::clone() const
{
QgsSingleSymbolRenderer *r = new QgsSingleSymbolRenderer( mSymbol->clone() );
r->setUsingSymbolLevels( usingSymbolLevels() );
r->setDataDefinedSizeLegend( mDataDefinedSizeLegend ? new QgsDataDefinedSizeLegend( *mDataDefinedSizeLegend ) : nullptr );
copyRendererData( r );
return r;
Expand Down

0 comments on commit dcd016b

Please sign in to comment.