Skip to content

Commit 1fbb58e

Browse files
author
wonder
committedJun 12, 2010
Rule-based renderer: respect the original scale range when refining the rule based on scales.
git-svn-id: http://svn.osgeo.org/qgis/trunk@13711 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent 0a4f1c5 commit 1fbb58e

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed
 

‎src/core/symbology-ng/qgsrulebasedrendererv2.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -355,14 +355,20 @@ QList<QgsRuleBasedRendererV2::Rule> QgsRuleBasedRendererV2::refineRuleRanges( Qg
355355

356356
QList<QgsRuleBasedRendererV2::Rule> QgsRuleBasedRendererV2::refineRuleScales( QgsRuleBasedRendererV2::Rule& initialRule, QList<int> scales )
357357
{
358+
qSort(scales); // make sure the scales are in ascending order
358359
QList<Rule> rules;
359-
int oldScale = 0;
360+
int oldScale = initialRule.scaleMinDenom();
361+
int maxDenom = initialRule.scaleMaxDenom();
360362
foreach( int scale, scales )
361363
{
364+
if ( initialRule.scaleMinDenom() >= scale )
365+
continue; // jump over the first scales out of the interval
366+
if ( maxDenom != 0 && maxDenom <= scale )
367+
break; // ignore the latter scales out of the interval
362368
rules.append( Rule( initialRule.symbol()->clone(), oldScale, scale, initialRule.filterExpression() ) );
363369
oldScale = scale;
364370
}
365371
// last rule
366-
rules.append( Rule( initialRule.symbol()->clone(), oldScale, 0, initialRule.filterExpression() ) );
372+
rules.append( Rule( initialRule.symbol()->clone(), oldScale, maxDenom, initialRule.filterExpression() ) );
367373
return rules;
368374
}

0 commit comments

Comments
 (0)
Please sign in to comment.