Skip to content

Commit

Permalink
Fix data defined legend size when using seperated symbols
Browse files Browse the repository at this point in the history
Fixes #26929
  • Loading branch information
nyalldawson committed Aug 3, 2019
1 parent e8b6323 commit 1893cd6
Showing 1 changed file with 25 additions and 14 deletions.
39 changes: 25 additions & 14 deletions src/core/qgsdatadefinedsizelegend.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -104,22 +104,33 @@ QgsLegendSymbolList QgsDataDefinedSizeLegend::legendSymbolList() const
lst << title;
}

if ( mType == LegendCollapsed )
switch ( mType )
{
QgsLegendSymbolItem i;
i.setDataDefinedSizeLegendSettings( new QgsDataDefinedSizeLegend( *this ) );
lst << i;
return lst;
}
else if ( mType == LegendSeparated )
{
const auto constMSizeClasses = mSizeClasses;
for ( const SizeClass &cl : constMSizeClasses )
case LegendCollapsed:
{
QgsLegendSymbolItem i;
i.setDataDefinedSizeLegendSettings( new QgsDataDefinedSizeLegend( *this ) );
lst << i;
break;
}

case LegendSeparated:
{
QgsLegendSymbolItem si( mSymbol.get(), cl.label, QString() );
QgsMarkerSymbol *s = static_cast<QgsMarkerSymbol *>( si.symbol() );
s->setSize( cl.size );
lst << si;
lst.reserve( mSizeClasses.size() );
for ( const SizeClass &cl : mSizeClasses )
{
QgsLegendSymbolItem si( mSymbol.get(), cl.label, QString() );
QgsMarkerSymbol *s = static_cast<QgsMarkerSymbol *>( si.symbol() );
double size = cl.size;
if ( mSizeScaleTransformer )
{
size = mSizeScaleTransformer->size( size );
}

s->setSize( size );
lst << si;
}
break;
}
}
return lst;
Expand Down

0 comments on commit 1893cd6

Please sign in to comment.