Skip to content

Commit a721752

Browse files
committed
Allow coloring of svg markers when used with graduated/categorised renderers (fix #11658)
1 parent ab70ec9 commit a721752

File tree

2 files changed

+11
-12
lines changed

2 files changed

+11
-12
lines changed

src/core/symbology-ng/qgsmarkersymbollayerv2.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1041,7 +1041,7 @@ QgsSvgMarkerSymbolLayerV2::QgsSvgMarkerSymbolLayerV2( const QString& name, doubl
10411041
mScaleMethod = scaleMethod;
10421042
mOutlineWidth = 1.0;
10431043
mOutlineWidthUnit = QgsSymbolV2::MM;
1044-
mFillColor = QColor( Qt::black );
1044+
mColor = QColor( Qt::black );
10451045
mOutlineColor = QColor( Qt::black );
10461046
}
10471047

@@ -1292,10 +1292,10 @@ void QgsSvgMarkerSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV2Re
12921292
}
12931293
outlineWidth = QgsSymbolLayerV2Utils::convertToPainterUnits( context.renderContext(), outlineWidth, mOutlineWidthUnit, mOutlineWidthMapUnitScale );
12941294

1295-
QColor fillColor = mFillColor;
1295+
QColor fillColor = mColor;
12961296
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL ) )
12971297
{
1298-
context.setOriginalValueVariable( QgsSymbolLayerV2Utils::encodeColor( mFillColor ) );
1298+
context.setOriginalValueVariable( QgsSymbolLayerV2Utils::encodeColor( mColor ) );
12991299
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL, context, QVariant(), &ok ).toString();
13001300
if ( ok )
13011301
fillColor = QgsSymbolLayerV2Utils::decodeColor( colorString );
@@ -1386,8 +1386,8 @@ QgsStringMap QgsSvgMarkerSymbolLayerV2::properties() const
13861386
map["offset_unit"] = QgsSymbolLayerV2Utils::encodeOutputUnit( mOffsetUnit );
13871387
map["offset_map_unit_scale"] = QgsSymbolLayerV2Utils::encodeMapUnitScale( mOffsetMapUnitScale );
13881388
map["scale_method"] = QgsSymbolLayerV2Utils::encodeScaleMethod( mScaleMethod );
1389-
map["color"] = mFillColor.name();
1390-
map["outline_color"] = mOutlineColor.name();
1389+
map["color"] = QgsSymbolLayerV2Utils::encodeColor( mColor );
1390+
map["outline_color"] = QgsSymbolLayerV2Utils::encodeColor( mOutlineColor );
13911391
map["outline_width"] = QString::number( mOutlineWidth );
13921392
map["outline_width_unit"] = QgsSymbolLayerV2Utils::encodeOutputUnit( mOutlineWidthUnit );
13931393
map["outline_width_map_unit_scale"] = QgsSymbolLayerV2Utils::encodeMapUnitScale( mOutlineWidthMapUnitScale );
@@ -1401,7 +1401,7 @@ QgsStringMap QgsSvgMarkerSymbolLayerV2::properties() const
14011401
QgsSymbolLayerV2* QgsSvgMarkerSymbolLayerV2::clone() const
14021402
{
14031403
QgsSvgMarkerSymbolLayerV2* m = new QgsSvgMarkerSymbolLayerV2( mPath, mSize, mAngle );
1404-
m->setFillColor( mFillColor );
1404+
m->setColor( mColor );
14051405
m->setOutlineColor( mOutlineColor );
14061406
m->setOutlineWidth( mOutlineWidth );
14071407
m->setOutlineWidthUnit( mOutlineWidthUnit );
@@ -1455,7 +1455,7 @@ void QgsSvgMarkerSymbolLayerV2::writeSldMarker( QDomDocument &doc, QDomElement &
14551455
QDomElement graphicElem = doc.createElement( "se:Graphic" );
14561456
element.appendChild( graphicElem );
14571457

1458-
QgsSymbolLayerV2Utils::externalGraphicToSld( doc, graphicElem, mPath, "image/svg+xml", mFillColor, mSize );
1458+
QgsSymbolLayerV2Utils::externalGraphicToSld( doc, graphicElem, mPath, "image/svg+xml", mColor, mSize );
14591459

14601460
// <Rotation>
14611461
QString angleFunc;
@@ -1598,10 +1598,10 @@ bool QgsSvgMarkerSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitScale
15981598
}
15991599
outlineWidth = QgsSymbolLayerV2Utils::convertToPainterUnits( context->renderContext(), outlineWidth, mOutlineWidthUnit, mOutlineWidthMapUnitScale );
16001600

1601-
QColor fillColor = mFillColor;
1601+
QColor fillColor = mColor;
16021602
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL ) )
16031603
{
1604-
context->setOriginalValueVariable( QgsSymbolLayerV2Utils::encodeColor( mFillColor ) );
1604+
context->setOriginalValueVariable( QgsSymbolLayerV2Utils::encodeColor( mColor ) );
16051605
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL, *context, QVariant(), &ok ).toString();
16061606
if ( ok )
16071607
fillColor = QgsSymbolLayerV2Utils::decodeColor( colorString );

src/core/symbology-ng/qgsmarkersymbollayerv2.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -173,8 +173,8 @@ class CORE_EXPORT QgsSvgMarkerSymbolLayerV2 : public QgsMarkerSymbolLayerV2
173173
QString path() const { return mPath; }
174174
void setPath( const QString& path );
175175

176-
QColor fillColor() const override { return mFillColor; }
177-
void setFillColor( const QColor& c ) override { mFillColor = c; }
176+
QColor fillColor() const override { return color(); }
177+
void setFillColor( const QColor& color ) override { setColor( color ); }
178178

179179
QColor outlineColor() const override { return mOutlineColor; }
180180
void setOutlineColor( const QColor& c ) override { mOutlineColor = c; }
@@ -201,7 +201,6 @@ class CORE_EXPORT QgsSvgMarkerSymbolLayerV2 : public QgsMarkerSymbolLayerV2
201201

202202
//param(fill), param(outline), param(outline-width) are going
203203
//to be replaced in memory
204-
QColor mFillColor;
205204
QColor mOutlineColor;
206205
double mOutlineWidth;
207206
QgsSymbolV2::OutputUnit mOutlineWidthUnit;

0 commit comments

Comments
 (0)