Skip to content

Commit 17d0771

Browse files
committedFeb 22, 2019
[legend] Fix alignment and chopped off text of collapsed data-defined size legend symbol (#9228)
1 parent 006ddf5 commit 17d0771

File tree

4 files changed

+5
-3
lines changed

4 files changed

+5
-3
lines changed
 

‎src/core/qgsdatadefinedsizelegend.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -178,16 +178,18 @@ void QgsDataDefinedSizeLegend::drawCollapsedLegend( QgsRenderContext &context, Q
178178
if ( w > maxTextWidth )
179179
maxTextWidth = w;
180180
}
181+
// add extra width needed to handle varying rendering of font weight
182+
maxTextWidth += 1;
181183

182184
// find out size of the largest symbol
183185
double largestSize = classes.at( 0 ).size;
184-
double outputLargestSize = context.convertToPainterUnits( largestSize, s->sizeUnit(), s->sizeMapUnitScale() );
186+
int outputLargestSize = std::round( context.convertToPainterUnits( largestSize, s->sizeUnit(), s->sizeMapUnitScale() ) );
185187

186188
// find out top Y coordinate for individual symbol sizes
187189
QList<int> symbolTopY;
188190
Q_FOREACH ( const SizeClass &c, classes )
189191
{
190-
double outputSymbolSize = context.convertToPainterUnits( c.size, s->sizeUnit(), s->sizeMapUnitScale() );
192+
int outputSymbolSize = std::round( context.convertToPainterUnits( c.size, s->sizeUnit(), s->sizeMapUnitScale() ) );
191193
switch ( mVAlign )
192194
{
193195
case AlignCenter:
@@ -243,7 +245,7 @@ void QgsDataDefinedSizeLegend::drawCollapsedLegend( QgsRenderContext &context, Q
243245
{
244246
s->setSize( c.size );
245247

246-
double outputSymbolSize = context.convertToPainterUnits( c.size, s->sizeUnit(), s->sizeMapUnitScale() );
248+
int outputSymbolSize = std::round( context.convertToPainterUnits( c.size, s->sizeUnit(), s->sizeMapUnitScale() ) );
247249
double tx = ( outputLargestSize - outputSymbolSize ) / 2;
248250

249251
p->save();
Loading

0 commit comments

Comments
 (0)
Please sign in to comment.