@@ -3418,6 +3418,26 @@ void QgsPalLabeling::registerDiagramFeature( const QString& layerID, QgsFeature&
3418
3418
return ;
3419
3419
}
3420
3420
3421
+ QgsDiagramRendererV2* dr = layerIt.value ().renderer ;
3422
+ if ( dr )
3423
+ {
3424
+ QList<QgsDiagramSettings> settingList = dr->diagramSettings ();
3425
+ if ( settingList.size () > 0 )
3426
+ {
3427
+ double minScale = settingList.at ( 0 ).minScaleDenominator ;
3428
+ if ( minScale > 0 && context.rendererScale () < minScale )
3429
+ {
3430
+ return ;
3431
+ }
3432
+
3433
+ double maxScale = settingList.at ( 0 ).maxScaleDenominator ;
3434
+ if ( maxScale > 0 && context.rendererScale () > maxScale )
3435
+ {
3436
+ return ;
3437
+ }
3438
+ }
3439
+ }
3440
+
3421
3441
// convert geom to geos
3422
3442
QgsGeometry* geom = feat.geometry ();
3423
3443
@@ -3456,7 +3476,6 @@ void QgsPalLabeling::registerDiagramFeature( const QString& layerID, QgsFeature&
3456
3476
3457
3477
double diagramWidth = 0 ;
3458
3478
double diagramHeight = 0 ;
3459
- QgsDiagramRendererV2* dr = layerIt.value ().renderer ;
3460
3479
if ( dr )
3461
3480
{
3462
3481
QSizeF diagSize = dr->sizeMapUnits ( feat, context );
@@ -4004,7 +4023,7 @@ void QgsPalLabeling::drawLabeling( QgsRenderContext& context )
4004
4023
feature.setFields ( &dit.value ().fields );
4005
4024
palGeometry->feature ( feature );
4006
4025
QgsPoint outPt = xform.transform (( *it )->getX (), ( *it )->getY () );
4007
- dit.value ().renderer ->renderDiagram ( feature, context, QPointF ( outPt.x (), outPt. y () ) );
4026
+ dit.value ().renderer ->renderDiagram ( feature, context, outPt.toQPointF ( ) );
4008
4027
}
4009
4028
}
4010
4029
0 commit comments