Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Don't needlessly try to calculate data defined opacity for symbols
  • Loading branch information
nyalldawson authored and github-actions[bot] committed Nov 11, 2021
1 parent 26c0830 commit 04b04bb
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 3 deletions.
3 changes: 2 additions & 1 deletion src/core/symbology/qgsfillsymbol.cpp
Expand Up @@ -38,7 +38,8 @@ QgsFillSymbol::QgsFillSymbol( const QgsSymbolLayerList &layers )

void QgsFillSymbol::renderPolygon( const QPolygonF &points, const QVector<QPolygonF> *rings, const QgsFeature *f, QgsRenderContext &context, int layerIdx, bool selected )
{
const double opacity = dataDefinedProperties().valueAsDouble( QgsSymbol::PropertyOpacity, context.expressionContext(), mOpacity * 100 ) * 0.01;
const double opacity = dataDefinedProperties().hasActiveProperties() ? dataDefinedProperties().valueAsDouble( QgsSymbol::PropertyOpacity, context.expressionContext(), mOpacity * 100 ) * 0.01
: mOpacity;

QgsSymbolRenderContext symbolContext( context, QgsUnitTypes::RenderUnknownUnit, opacity, selected, mRenderHints, f );
symbolContext.setOriginalGeometryType( QgsWkbTypes::PolygonGeometry );
Expand Down
3 changes: 2 additions & 1 deletion src/core/symbology/qgslinesymbol.cpp
Expand Up @@ -203,7 +203,8 @@ QgsProperty QgsLineSymbol::dataDefinedWidth() const

void QgsLineSymbol::renderPolyline( const QPolygonF &points, const QgsFeature *f, QgsRenderContext &context, int layerIdx, bool selected )
{
const double opacity = dataDefinedProperties().valueAsDouble( QgsSymbol::PropertyOpacity, context.expressionContext(), mOpacity * 100 ) * 0.01;
const double opacity = dataDefinedProperties().hasActiveProperties() ? dataDefinedProperties().valueAsDouble( QgsSymbol::PropertyOpacity, context.expressionContext(), mOpacity * 100 ) * 0.01
: mOpacity;

//save old painter
QPainter *renderPainter = context.painter();
Expand Down
3 changes: 2 additions & 1 deletion src/core/symbology/qgsmarkersymbol.cpp
Expand Up @@ -413,7 +413,8 @@ void QgsMarkerSymbol::renderPointUsingLayer( QgsMarkerSymbolLayer *layer, QPoint

void QgsMarkerSymbol::renderPoint( QPointF point, const QgsFeature *f, QgsRenderContext &context, int layerIdx, bool selected )
{
const double opacity = dataDefinedProperties().valueAsDouble( QgsSymbol::PropertyOpacity, context.expressionContext(), mOpacity * 100 ) * 0.01;
const double opacity = dataDefinedProperties().hasActiveProperties() ? dataDefinedProperties().valueAsDouble( QgsSymbol::PropertyOpacity, context.expressionContext(), mOpacity * 100 ) * 0.01
: mOpacity;

QgsSymbolRenderContext symbolContext( context, QgsUnitTypes::RenderUnknownUnit, opacity, selected, mRenderHints, f );
symbolContext.setGeometryPartCount( symbolRenderContext()->geometryPartCount() );
Expand Down

0 comments on commit 04b04bb

Please sign in to comment.