66
77#include < QPainter>
88
9- QgsSimpleFillSymbolLayerV2::QgsSimpleFillSymbolLayerV2 (QColor color, QColor borderColor, Qt::BrushStyle style )
10- : mBrushStyle(style), mBorderColor(borderColor)
9+ QgsSimpleFillSymbolLayerV2::QgsSimpleFillSymbolLayerV2 (QColor color, Qt::BrushStyle style, QColor borderColor, Qt::PenStyle borderStyle, double borderWidth )
10+ : mBrushStyle(style), mBorderColor(borderColor), mBorderStyle(borderStyle), mBorderWidth(borderWidth)
1111{
1212 mColor = color;
1313}
@@ -16,17 +16,23 @@ QgsSimpleFillSymbolLayerV2::QgsSimpleFillSymbolLayerV2(QColor color, QColor bord
1616QgsSymbolLayerV2* QgsSimpleFillSymbolLayerV2::create (const QgsStringMap& props)
1717{
1818 QColor color = DEFAULT_SIMPLEFILL_COLOR;
19- QColor borderColor = DEFAULT_SIMPLEFILL_BORDERCOLOR;
2019 Qt::BrushStyle style = DEFAULT_SIMPLEFILL_STYLE;
21-
20+ QColor borderColor = DEFAULT_SIMPLEFILL_BORDERCOLOR;
21+ Qt::PenStyle borderStyle = DEFAULT_SIMPLEFILL_BORDERSTYLE;
22+ double borderWidth = DEFAULT_SIMPLEFILL_BORDERWIDTH;
23+
2224 if (props.contains (" color" ))
2325 color = QgsSymbolLayerV2Utils::decodeColor (props[" color" ]);
24- if (props.contains (" color_border" ))
25- borderColor = QgsSymbolLayerV2Utils::decodeColor (props[" color_border" ]);
2626 if (props.contains (" style" ))
2727 style = QgsSymbolLayerV2Utils::decodeBrushStyle (props[" style" ]);
28-
29- return new QgsSimpleFillSymbolLayerV2 (color, borderColor, style);
28+ if (props.contains (" color_border" ))
29+ borderColor = QgsSymbolLayerV2Utils::decodeColor (props[" color_border" ]);
30+ if (props.contains (" style_border" ))
31+ borderStyle = QgsSymbolLayerV2Utils::decodePenStyle (props[" style_border" ]);
32+ if (props.contains (" width_border" ))
33+ borderWidth = props[" width_border" ].toDouble ();
34+
35+ return new QgsSimpleFillSymbolLayerV2 (color, style, borderColor, borderStyle, borderWidth);
3036}
3137
3238
@@ -39,6 +45,8 @@ void QgsSimpleFillSymbolLayerV2::startRender(QgsRenderContext& context)
3945{
4046 mBrush = QBrush (mColor , mBrushStyle );
4147 mPen = QPen (mBorderColor );
48+ mPen .setStyle (mBorderStyle );
49+ mPen .setWidthF (mBorderWidth );
4250}
4351
4452void QgsSimpleFillSymbolLayerV2::stopRender (QgsRenderContext& context)
@@ -73,12 +81,14 @@ QgsStringMap QgsSimpleFillSymbolLayerV2::properties() const
7381{
7482 QgsStringMap map;
7583 map[" color" ] = QgsSymbolLayerV2Utils::encodeColor (mColor );
76- map[" color_border" ] = QgsSymbolLayerV2Utils::encodeColor (mBorderColor );
7784 map[" style" ] = QgsSymbolLayerV2Utils::encodeBrushStyle (mBrushStyle );
85+ map[" color_border" ] = QgsSymbolLayerV2Utils::encodeColor (mBorderColor );
86+ map[" style_border" ] = QgsSymbolLayerV2Utils::encodePenStyle (mBorderStyle );
87+ map[" width_border" ] = QString::number (mBorderWidth );
7888 return map;
7989}
8090
8191QgsSymbolLayerV2* QgsSimpleFillSymbolLayerV2::clone () const
8292{
83- return new QgsSimpleFillSymbolLayerV2 (mColor , mBorderColor , mBrushStyle );
93+ return new QgsSimpleFillSymbolLayerV2 (mColor , mBrushStyle , mBorderColor , mBorderStyle , mBorderWidth );
8494}
0 commit comments