Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Fix scale dependant rendering of diagrams (fix #10700)
  • Loading branch information
nyalldawson committed Apr 13, 2015
1 parent 946ca07 commit 18e4a0c
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 9 deletions.
7 changes: 0 additions & 7 deletions src/core/diagram/qgstextdiagram.cpp
Expand Up @@ -109,13 +109,6 @@ void QgsTextDiagram::renderDiagram( const QgsFeature& feature, QgsRenderContext&
return;
}

double scaleDenominator = c.rendererScale();
if (( s.minScaleDenominator != -1 && scaleDenominator < s.minScaleDenominator )
|| ( s.maxScaleDenominator != -1 && scaleDenominator > s.maxScaleDenominator ) )
{
return;
}

//convert from mm / map units to painter units
QSizeF spu = sizePainterUnits( s.size, s, c );
double w = spu.width();
Expand Down
23 changes: 21 additions & 2 deletions src/core/qgspallabeling.cpp
Expand Up @@ -3424,6 +3424,26 @@ void QgsPalLabeling::registerDiagramFeature( const QString& layerID, QgsFeature&
return;
}

QgsDiagramRendererV2* dr = layerIt.value().renderer;
if ( dr )
{
QList<QgsDiagramSettings> settingList = dr->diagramSettings();
if ( settingList.size() > 0 )
{
double minScale = settingList.at( 0 ).minScaleDenominator;
if ( minScale > 0 && context.rendererScale() < minScale )
{
return;
}

double maxScale = settingList.at( 0 ).maxScaleDenominator;
if ( maxScale > 0 && context.rendererScale() > maxScale )
{
return;
}
}
}

//convert geom to geos
QgsGeometry* geom = feat.geometry();

Expand Down Expand Up @@ -3462,7 +3482,6 @@ void QgsPalLabeling::registerDiagramFeature( const QString& layerID, QgsFeature&

double diagramWidth = 0;
double diagramHeight = 0;
QgsDiagramRendererV2* dr = layerIt.value().renderer;
if ( dr )
{
QSizeF diagSize = dr->sizeMapUnits( feat, context );
Expand Down Expand Up @@ -4013,7 +4032,7 @@ void QgsPalLabeling::drawLabeling( QgsRenderContext& context )
feature.setFields( &dit.value().fields );
palGeometry->feature( feature );
QgsPoint outPt = xform.transform(( *it )->getX(), ( *it )->getY() );
dit.value().renderer->renderDiagram( feature, context, QPointF( outPt.x(), outPt.y() ) );
dit.value().renderer->renderDiagram( feature, context, outPt.toQPointF() );
}
}

Expand Down

0 comments on commit 18e4a0c

Please sign in to comment.