Skip to content

Commit 79c0d5b

Browse files
committed
Use permissive parseColor method for evaluating data defined colors
Allows more flexible conversion of evaluated strings to color
1 parent aab3b15 commit 79c0d5b

6 files changed

+25
-25
lines changed

src/core/qgspallabeling.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -2331,7 +2331,7 @@ bool QgsPalLayerSettings::dataDefinedValEval( const QString& valType,
23312331
{
23322332
QString colorstr = exprVal.toString().trimmed();
23332333
QgsDebugMsgLevel( dbgStr.arg( colorstr ), 4 );
2334-
QColor color = QgsSymbolLayerV2Utils::decodeColor( colorstr );
2334+
QColor color = QgsSymbolLayerV2Utils::parseColor( colorstr );
23352335

23362336
if ( color.isValid() )
23372337
{

src/core/symbology-ng/qgsellipsesymbollayerv2.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -209,12 +209,12 @@ void QgsEllipseSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV2Rend
209209
if ( hasDataDefinedProperty( "fill_color" ) )
210210
{
211211
QString colorString = evaluateDataDefinedProperty( "fill_color", context.feature() ).toString();
212-
mBrush.setColor( QColor( QgsSymbolLayerV2Utils::decodeColor( colorString ) ) );
212+
mBrush.setColor( QColor( QgsSymbolLayerV2Utils::parseColor( colorString ) ) );
213213
}
214214
if ( hasDataDefinedProperty( "outline_color" ) )
215215
{
216216
QString colorString = evaluateDataDefinedProperty( "outline_color", context.feature() ).toString();
217-
mPen.setColor( QColor( QgsSymbolLayerV2Utils::decodeColor( colorString ) ) );
217+
mPen.setColor( QColor( QgsSymbolLayerV2Utils::parseColor( colorString ) ) );
218218
}
219219
double scaledWidth = mSymbolWidth;
220220
double scaledHeight = mSymbolHeight;

src/core/symbology-ng/qgsfillsymbollayerv2.cpp

+11-11
Original file line numberDiff line numberDiff line change
@@ -82,15 +82,15 @@ void QgsSimpleFillSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderCon
8282

8383
if ( hasDataDefinedProperty( "color" ) )
8484
{
85-
brush.setColor( QgsSymbolLayerV2Utils::decodeColor( evaluateDataDefinedProperty( "color", context.feature() ).toString() ) );
85+
brush.setColor( QgsSymbolLayerV2Utils::parseColor( evaluateDataDefinedProperty( "color", context.feature() ).toString() ) );
8686
}
8787
if ( hasDataDefinedProperty( "fill_style" ) )
8888
{
8989
brush.setStyle( QgsSymbolLayerV2Utils::decodeBrushStyle( evaluateDataDefinedProperty( "fill_style", context.feature() ).toString() ) );
9090
}
9191
if ( hasDataDefinedProperty( "color_border" ) )
9292
{
93-
pen.setColor( QgsSymbolLayerV2Utils::decodeColor( evaluateDataDefinedProperty( "color_border", context.feature() ).toString() ) );
93+
pen.setColor( QgsSymbolLayerV2Utils::parseColor( evaluateDataDefinedProperty( "color_border", context.feature() ).toString() ) );
9494
}
9595
if ( hasDataDefinedProperty( "width_border" ) )
9696
{
@@ -389,7 +389,7 @@ QColor QgsSimpleFillSymbolLayerV2::dxfColor( const QgsSymbolV2RenderContext& con
389389
{
390390
if ( hasDataDefinedProperty( "border_color" ) )
391391
{
392-
return QgsSymbolLayerV2Utils::decodeColor( evaluateDataDefinedProperty( "border_color", context.feature() ).toString() );
392+
return QgsSymbolLayerV2Utils::parseColor( evaluateDataDefinedProperty( "border_color", context.feature() ).toString() );
393393
}
394394
return mBorderColor;
395395
}
@@ -403,7 +403,7 @@ QColor QgsSimpleFillSymbolLayerV2::dxfBrushColor( const QgsSymbolV2RenderContext
403403
{
404404
if ( hasDataDefinedProperty( "color" ) )
405405
{
406-
return QgsSymbolLayerV2Utils::decodeColor( evaluateDataDefinedProperty( "color", context.feature() ).toString() );
406+
return QgsSymbolLayerV2Utils::parseColor( evaluateDataDefinedProperty( "color", context.feature() ).toString() );
407407
}
408408
return mColor;
409409
}
@@ -540,14 +540,14 @@ void QgsGradientFillSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderC
540540
QColor color = mColor;
541541
if ( hasDataDefinedProperty( "color" ) )
542542
{
543-
color = QgsSymbolLayerV2Utils::decodeColor( evaluateDataDefinedProperty( "color", context.feature() ).toString() );
543+
color = QgsSymbolLayerV2Utils::parseColor( evaluateDataDefinedProperty( "color", context.feature() ).toString() );
544544
}
545545

546546
//second gradient color
547547
QColor color2 = mColor2;
548548
if ( hasDataDefinedProperty( "color2" ) )
549549
{
550-
color2 = QgsSymbolLayerV2Utils::decodeColor( evaluateDataDefinedProperty( "color2", context.feature() ).toString() );
550+
color2 = QgsSymbolLayerV2Utils::parseColor( evaluateDataDefinedProperty( "color2", context.feature() ).toString() );
551551
}
552552

553553
//gradient rotation angle
@@ -1020,14 +1020,14 @@ void QgsShapeburstFillSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2Rende
10201020
color = mColor;
10211021
if ( hasDataDefinedProperty( "color" ) )
10221022
{
1023-
color = QgsSymbolLayerV2Utils::decodeColor( evaluateDataDefinedProperty( "color", context.feature() ).toString() );
1023+
color = QgsSymbolLayerV2Utils::parseColor( evaluateDataDefinedProperty( "color", context.feature() ).toString() );
10241024
}
10251025

10261026
//second gradient color
10271027
color2 = mColor2;
10281028
if ( hasDataDefinedProperty( "color2" ) )
10291029
{
1030-
color2 = QgsSymbolLayerV2Utils::decodeColor( evaluateDataDefinedProperty( "color2", context.feature() ).toString() );
1030+
color2 = QgsSymbolLayerV2Utils::parseColor( evaluateDataDefinedProperty( "color2", context.feature() ).toString() );
10311031
}
10321032

10331033
//blur radius
@@ -2123,12 +2123,12 @@ void QgsSVGFillSymbolLayer::applyDataDefinedSettings( const QgsSymbolV2RenderCon
21232123
QColor svgFillColor = mSvgFillColor;
21242124
if ( hasDataDefinedProperty( "svgFillColor" ) )
21252125
{
2126-
svgFillColor = QgsSymbolLayerV2Utils::decodeColor( evaluateDataDefinedProperty( "svgFillColor", context.feature() ).toString() );
2126+
svgFillColor = QgsSymbolLayerV2Utils::parseColor( evaluateDataDefinedProperty( "svgFillColor", context.feature() ).toString() );
21272127
}
21282128
QColor svgOutlineColor = mSvgOutlineColor;
21292129
if ( hasDataDefinedProperty( "svgOutlineColor" ) )
21302130
{
2131-
svgOutlineColor = QgsSymbolLayerV2Utils::decodeColor( evaluateDataDefinedProperty( "svgOutlineColor", context.feature() ).toString() );
2131+
svgOutlineColor = QgsSymbolLayerV2Utils::parseColor( evaluateDataDefinedProperty( "svgOutlineColor", context.feature() ).toString() );
21322132
}
21332133
double outlineWidth = mSvgOutlineWidth;
21342134
if ( hasDataDefinedProperty( "svgOutlineWidth" ) )
@@ -2820,7 +2820,7 @@ void QgsLinePatternFillSymbolLayer::applyDataDefinedSettings( const QgsSymbolV2R
28202820
QColor color = mColor;
28212821
if ( hasDataDefinedProperty( "color" ) )
28222822
{
2823-
color = QgsSymbolLayerV2Utils::decodeColor( evaluateDataDefinedProperty( "color", context.feature() ).toString() );
2823+
color = QgsSymbolLayerV2Utils::parseColor( evaluateDataDefinedProperty( "color", context.feature() ).toString() );
28242824
}
28252825
applyPattern( context, mBrush, lineAngle, distance, lineWidth, color );
28262826
}

src/core/symbology-ng/qgslinesymbollayerv2.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -479,7 +479,7 @@ void QgsSimpleLineSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderCon
479479
//color
480480
if ( hasDataDefinedProperty( "color" ) )
481481
{
482-
pen.setColor( QgsSymbolLayerV2Utils::decodeColor( evaluateDataDefinedProperty( "color", context.feature() ).toString() ) );
482+
pen.setColor( QgsSymbolLayerV2Utils::parseColor( evaluateDataDefinedProperty( "color", context.feature() ).toString() ) );
483483
}
484484

485485
//offset
@@ -585,7 +585,7 @@ QColor QgsSimpleLineSymbolLayerV2::dxfColor( const QgsSymbolV2RenderContext& con
585585
{
586586
if ( hasDataDefinedProperty( "color" ) )
587587
{
588-
return ( QgsSymbolLayerV2Utils::decodeColor( evaluateDataDefinedProperty( "color", context.feature() ).toString() ) );
588+
return ( QgsSymbolLayerV2Utils::parseColor( evaluateDataDefinedProperty( "color", context.feature() ).toString() ) );
589589
}
590590
return mColor;
591591
}

src/core/symbology-ng/qgsmarkersymbollayerv2.cpp

+7-7
Original file line numberDiff line numberDiff line change
@@ -563,12 +563,12 @@ void QgsSimpleMarkerSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV
563563

564564
if ( hasDataDefinedProperty( "color" ) )
565565
{
566-
mBrush.setColor( QgsSymbolLayerV2Utils::decodeColor( evaluateDataDefinedProperty( "color", context.feature() ).toString() ) );
566+
mBrush.setColor( QgsSymbolLayerV2Utils::parseColor( evaluateDataDefinedProperty( "color", context.feature() ).toString() ) );
567567
}
568568
if ( hasDataDefinedProperty( "color_border" ) )
569569
{
570-
mPen.setColor( QgsSymbolLayerV2Utils::decodeColor( evaluateDataDefinedProperty( "color_border", context.feature() ).toString() ) );
571-
mSelPen.setColor( QgsSymbolLayerV2Utils::decodeColor( evaluateDataDefinedProperty( "color_border", context.feature() ).toString() ) );
570+
mPen.setColor( QgsSymbolLayerV2Utils::parseColor( evaluateDataDefinedProperty( "color_border", context.feature() ).toString() ) );
571+
mSelPen.setColor( QgsSymbolLayerV2Utils::parseColor( evaluateDataDefinedProperty( "color_border", context.feature() ).toString() ) );
572572
}
573573
if ( hasDataDefinedProperty( "outline_width" ) )
574574
{
@@ -831,11 +831,11 @@ bool QgsSimpleMarkerSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitSc
831831
QColor bc = mBrush.color();
832832
if ( hasDataDefinedProperty( "color" ) )
833833
{
834-
bc = QgsSymbolLayerV2Utils::decodeColor( evaluateDataDefinedProperty( "color", f ).toString() );
834+
bc = QgsSymbolLayerV2Utils::parseColor( evaluateDataDefinedProperty( "color", f ).toString() );
835835
}
836836
if ( hasDataDefinedProperty( "color_border" ) )
837837
{
838-
pc = QgsSymbolLayerV2Utils::decodeColor( evaluateDataDefinedProperty( "color_border", f ).toString() );
838+
pc = QgsSymbolLayerV2Utils::parseColor( evaluateDataDefinedProperty( "color_border", f ).toString() );
839839
}
840840

841841
//offset
@@ -1294,13 +1294,13 @@ void QgsSvgMarkerSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV2Re
12941294
QColor fillColor = mFillColor;
12951295
if ( hasDataDefinedProperty( "fill" ) )
12961296
{
1297-
fillColor = QgsSymbolLayerV2Utils::decodeColor( evaluateDataDefinedProperty( "fill", context.feature() ).toString() );
1297+
fillColor = QgsSymbolLayerV2Utils::parseColor( evaluateDataDefinedProperty( "fill", context.feature() ).toString() );
12981298
}
12991299

13001300
QColor outlineColor = mOutlineColor;
13011301
if ( hasDataDefinedProperty( "outline" ) )
13021302
{
1303-
outlineColor = QgsSymbolLayerV2Utils::decodeColor( evaluateDataDefinedProperty( "outline", context.feature() ).toString() );
1303+
outlineColor = QgsSymbolLayerV2Utils::parseColor( evaluateDataDefinedProperty( "outline", context.feature() ).toString() );
13041304
}
13051305

13061306
bool fitsInCache = true;

src/core/symbology-ng/qgspointdisplacementrenderer.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -336,8 +336,8 @@ QgsFeatureRendererV2* QgsPointDisplacementRenderer::create( QDomElement& symbolo
336336
labelFont.fromString( symbologyElem.attribute( "labelFont", "" ) );
337337
r->setLabelFont( labelFont );
338338
r->setCircleWidth( symbologyElem.attribute( "circleWidth", "0.4" ).toDouble() );
339-
r->setCircleColor( QgsSymbolLayerV2Utils::decodeColor( symbologyElem.attribute( "circleColor", "" ) ) );
340-
r->setLabelColor( QgsSymbolLayerV2Utils::decodeColor( symbologyElem.attribute( "labelColor", "" ) ) );
339+
r->setCircleColor( QgsSymbolLayerV2Utils::parseColor( symbologyElem.attribute( "circleColor", "" ) ) );
340+
r->setLabelColor( QgsSymbolLayerV2Utils::parseColor( symbologyElem.attribute( "labelColor", "" ) ) );
341341
r->setCircleRadiusAddition( symbologyElem.attribute( "circleRadiusAddition", "0.0" ).toDouble() );
342342
r->setMaxLabelScaleDenominator( symbologyElem.attribute( "maxLabelScaleDenominator", "-1" ).toDouble() );
343343
r->setTolerance( symbologyElem.attribute( "tolerance", "0.00001" ).toDouble() );

0 commit comments

Comments
 (0)