Skip to content

Commit e94a8cc

Browse files
committedMay 19, 2015
Fix attributes from some symbols were not available for data defined
symbology (line marker, line pattern)
1 parent 2abdfa0 commit e94a8cc

File tree

6 files changed

+24
-0
lines changed

6 files changed

+24
-0
lines changed
 

‎python/core/symbology-ng/qgsfillsymbollayerv2.sip

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -759,6 +759,8 @@ class QgsLinePatternFillSymbolLayer: QgsImageFillSymbolLayer
759759
bool setSubSymbol( QgsSymbolV2* symbol );
760760
QgsSymbolV2* subSymbol();
761761

762+
QSet<QString> usedAttributes() const;
763+
762764
};
763765

764766
class QgsPointPatternFillSymbolLayer : QgsImageFillSymbolLayer

‎python/core/symbology-ng/qgslinesymbollayerv2.sip

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,8 @@ class QgsMarkerLineSymbolLayerV2 : QgsLineSymbolLayerV2
207207
void setMapUnitScale( const QgsMapUnitScale& scale );
208208
QgsMapUnitScale mapUnitScale() const;
209209

210+
QSet<QString> usedAttributes() const;
211+
210212
protected:
211213

212214
void renderPolylineInterval( const QPolygonF& points, QgsSymbolV2RenderContext& context );

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2314,6 +2314,14 @@ QgsSymbolV2* QgsLinePatternFillSymbolLayer::subSymbol()
23142314
return mFillLineSymbol;
23152315
}
23162316

2317+
QSet<QString> QgsLinePatternFillSymbolLayer::usedAttributes() const
2318+
{
2319+
QSet<QString> attr = QgsFillSymbolLayerV2::usedAttributes();
2320+
if ( mFillLineSymbol )
2321+
attr.unite( mFillLineSymbol->usedAttributes() );
2322+
return attr;
2323+
}
2324+
23172325
double QgsLinePatternFillSymbolLayer::estimateMaxBleed() const
23182326
{
23192327
return 0;

‎src/core/symbology-ng/qgsfillsymbollayerv2.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -925,6 +925,8 @@ class CORE_EXPORT QgsLinePatternFillSymbolLayer: public QgsImageFillSymbolLayer
925925
bool setSubSymbol( QgsSymbolV2* symbol ) override;
926926
QgsSymbolV2* subSymbol() override;
927927

928+
QSet<QString> usedAttributes() const override;
929+
928930
protected:
929931
/**Distance (in mm or map units) between lines*/
930932
double mDistance;

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1495,6 +1495,14 @@ QgsMapUnitScale QgsMarkerLineSymbolLayerV2::mapUnitScale() const
14951495
return QgsMapUnitScale();
14961496
}
14971497

1498+
QSet<QString> QgsMarkerLineSymbolLayerV2::usedAttributes() const
1499+
{
1500+
QSet<QString> attr = QgsLineSymbolLayerV2::usedAttributes();
1501+
if ( mMarker )
1502+
attr.unite( mMarker->usedAttributes() );
1503+
return attr;
1504+
}
1505+
14981506
double QgsMarkerLineSymbolLayerV2::estimateMaxBleed() const
14991507
{
15001508
return ( mMarker->size() / 2.0 ) + mOffset;

‎src/core/symbology-ng/qgslinesymbollayerv2.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,8 @@ class CORE_EXPORT QgsMarkerLineSymbolLayerV2 : public QgsLineSymbolLayerV2
256256
void setMapUnitScale( const QgsMapUnitScale& scale ) override;
257257
QgsMapUnitScale mapUnitScale() const override;
258258

259+
QSet<QString> usedAttributes() const override;
260+
259261
protected:
260262

261263
void renderPolylineInterval( const QPolygonF& points, QgsSymbolV2RenderContext& context );

0 commit comments

Comments
 (0)
Please sign in to comment.