@@ -106,6 +106,12 @@ QgsSymbolV2List QgsRuleBasedRendererV2::Rule::symbols()
106
106
return lst;
107
107
}
108
108
109
+ void QgsRuleBasedRendererV2::Rule::setSymbol ( QgsSymbolV2* sym )
110
+ {
111
+ delete mSymbol ;
112
+ mSymbol = sym;
113
+ }
114
+
109
115
QgsLegendSymbolList QgsRuleBasedRendererV2::Rule::legendSymbolItems ()
110
116
{
111
117
QgsLegendSymbolList lst;
@@ -534,34 +540,21 @@ QgsFeatureRendererV2* QgsRuleBasedRendererV2::create( QDomElement& element )
534
540
535
541
void QgsRuleBasedRendererV2::refineRuleCategories ( QgsRuleBasedRendererV2::Rule* initialRule, QgsCategorizedSymbolRendererV2* r )
536
542
{
537
- RuleList rules;
538
543
foreach ( const QgsRendererCategoryV2& cat, r->categories () )
539
544
{
540
- QString newfilter = QString ( " %1 = '%2'" ).arg ( r->classAttribute () ).arg ( cat.value ().toString () );
541
- QString filter = initialRule->filterExpression ();
542
- QString label = initialRule->label ();
543
- QString description = initialRule->description ();
544
- if ( filter.isEmpty () )
545
- filter = newfilter;
546
- else
547
- filter = QString ( " (%1) AND (%2)" ).arg ( filter ).arg ( newfilter );
548
- initialRule->appendChild ( new Rule ( cat.symbol ()->clone (), initialRule->scaleMinDenom (), initialRule->scaleMaxDenom (), filter, label, description ) );
545
+ QString filter = QString ( " %1 = '%2'" ).arg ( r->classAttribute () ).arg ( cat.value ().toString () );
546
+ QString label = filter;
547
+ initialRule->appendChild ( new Rule ( cat.symbol ()->clone (), 0 , 0 , filter, label ) );
549
548
}
550
549
}
551
550
552
551
void QgsRuleBasedRendererV2::refineRuleRanges ( QgsRuleBasedRendererV2::Rule* initialRule, QgsGraduatedSymbolRendererV2* r )
553
552
{
554
553
foreach ( const QgsRendererRangeV2& rng, r->ranges () )
555
554
{
556
- QString newfilter = QString ( " %1 >= '%2' AND %1 <= '%3'" ).arg ( r->classAttribute () ).arg ( rng.lowerValue () ).arg ( rng.upperValue () );
557
- QString filter = initialRule->filterExpression ();
558
- QString label = initialRule->label ();
559
- QString description = initialRule->description ();
560
- if ( filter.isEmpty () )
561
- filter = newfilter;
562
- else
563
- filter = QString ( " (%1) AND (%2)" ).arg ( filter ).arg ( newfilter );
564
- initialRule->appendChild ( new Rule ( rng.symbol ()->clone (), initialRule->scaleMinDenom (), initialRule->scaleMaxDenom (), filter, label, description ) );
555
+ QString filter = QString ( " %1 >= '%2' AND %1 <= '%3'" ).arg ( r->classAttribute () ).arg ( rng.lowerValue () ).arg ( rng.upperValue () );
556
+ QString label = filter;
557
+ initialRule->appendChild ( new Rule ( rng.symbol ()->clone (), 0 , 0 , filter, label ) );
565
558
}
566
559
}
567
560
@@ -570,21 +563,18 @@ void QgsRuleBasedRendererV2::refineRuleScales( QgsRuleBasedRendererV2::Rule* ini
570
563
qSort ( scales ); // make sure the scales are in ascending order
571
564
int oldScale = initialRule->scaleMinDenom ();
572
565
int maxDenom = initialRule->scaleMaxDenom ();
573
- QString filter = initialRule->filterExpression ();
574
- QString label = initialRule->label ();
575
- QString description = initialRule->description ();
576
566
QgsSymbolV2* symbol = initialRule->symbol ();
577
567
foreach ( int scale, scales )
578
568
{
579
569
if ( initialRule->scaleMinDenom () >= scale )
580
570
continue ; // jump over the first scales out of the interval
581
571
if ( maxDenom != 0 && maxDenom <= scale )
582
572
break ; // ignore the latter scales out of the interval
583
- initialRule->appendChild ( new Rule ( symbol->clone (), oldScale, scale, filter, label, description ) );
573
+ initialRule->appendChild ( new Rule ( symbol->clone (), oldScale, scale, QString (), QString ( " %1 - %2 " ). arg ( oldScale ). arg ( scale ) ) );
584
574
oldScale = scale;
585
575
}
586
576
// last rule
587
- initialRule->appendChild ( new Rule ( symbol->clone (), oldScale, maxDenom, filter, label, description ) );
577
+ initialRule->appendChild ( new Rule ( symbol->clone (), oldScale, maxDenom, QString (), QString ( " %1 - %2 " ). arg ( oldScale ). arg ( maxDenom ) ) );
588
578
}
589
579
590
580
QString QgsRuleBasedRendererV2::dump ()
0 commit comments