Skip to content

Commit 9675af0

Browse files
committedApr 19, 2013
Add python bindings for symbology units and data defined functions
1 parent 99c922d commit 9675af0

File tree

5 files changed

+119
-0
lines changed

5 files changed

+119
-0
lines changed
 

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,18 @@ class QgsEllipseSymbolLayerV2 : QgsMarkerSymbolLayerV2
3939
void setOutlineColor( const QColor& c );
4040
QColor outlineColor() const;
4141

42+
void setSymbolWidthUnit( QgsSymbolV2::OutputUnit unit );
43+
QgsSymbolV2::OutputUnit symbolWidthUnit() const;
44+
45+
void setSymbolHeightUnit( QgsSymbolV2::OutputUnit unit );
46+
QgsSymbolV2::OutputUnit symbolHeightUnit() const;
47+
48+
void setOutlineWidthUnit( QgsSymbolV2::OutputUnit unit );
49+
QgsSymbolV2::OutputUnit outlineWidthUnit() const;
50+
51+
void setOutputUnit( QgsSymbolV2::OutputUnit unit );
52+
QgsSymbolV2::OutputUnit outputUnit() const;
53+
4254
QSet<QString> usedAttributes() const;
4355

4456
};

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

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,15 @@ class QgsSimpleFillSymbolLayerV2 : QgsFillSymbolLayerV2
4646

4747
void setOffset( QPointF offset );
4848
QPointF offset();
49+
50+
void setBorderWidthUnit( QgsSymbolV2::OutputUnit unit );
51+
QgsSymbolV2::OutputUnit borderWidthUnit() const;
52+
53+
void setOffsetUnit( QgsSymbolV2::OutputUnit unit );
54+
QgsSymbolV2::OutputUnit offsetUnit() const;
55+
56+
void setOutputUnit( QgsSymbolV2::OutputUnit unit );
57+
QgsSymbolV2::OutputUnit outputUnit() const;
4958
};
5059

5160
/**Base class for polygon renderers generating texture images*/
@@ -62,6 +71,9 @@ class QgsImageFillSymbolLayer: QgsFillSymbolLayerV2
6271

6372
virtual QgsSymbolV2* subSymbol();
6473
virtual bool setSubSymbol( QgsSymbolV2* symbol );
74+
75+
void setOutlineWidthUnit( QgsSymbolV2::OutputUnit unit );
76+
QgsSymbolV2::OutputUnit outlineWidthUnit() const;
6577
};
6678

6779
/**A class for svg fill patterns. The class automatically scales the pattern to
@@ -105,6 +117,16 @@ class QgsSVGFillSymbolLayer: QgsImageFillSymbolLayer
105117
QColor svgOutlineColor() const;
106118
void setSvgOutlineWidth( double w );
107119
double svgOutlineWidth() const;
120+
121+
void setPatternWidthUnit( QgsSymbolV2::OutputUnit unit );
122+
QgsSymbolV2::OutputUnit patternWidthUnit() const;
123+
124+
void setSvgOutlineWidthUnit( QgsSymbolV2::OutputUnit unit );
125+
QgsSymbolV2::OutputUnit svgOutlineWidthUnit() const;
126+
127+
void setOutputUnit( QgsSymbolV2::OutputUnit unit );
128+
QgsSymbolV2::OutputUnit outputUnit() const;
129+
108130
};
109131

110132
class QgsLinePatternFillSymbolLayer: QgsImageFillSymbolLayer
@@ -142,6 +164,18 @@ class QgsLinePatternFillSymbolLayer: QgsImageFillSymbolLayer
142164
QColor color() const;
143165
void setOffset( double offset );
144166
double offset() const;
167+
168+
void setDistanceUnit( QgsSymbolV2::OutputUnit unit );
169+
QgsSymbolV2::OutputUnit distanceUnit() const;
170+
171+
void setLineWidthUnit( QgsSymbolV2::OutputUnit unit );
172+
QgsSymbolV2::OutputUnit lineWidthUnit() const;
173+
174+
void setOffsetUnit( QgsSymbolV2::OutputUnit unit );
175+
QgsSymbolV2::OutputUnit offsetUnit() const;
176+
177+
void setOutputUnit( QgsSymbolV2::OutputUnit unit );
178+
QgsSymbolV2::OutputUnit outputUnit() const;
145179
};
146180

147181
class QgsPointPatternFillSymbolLayer : QgsImageFillSymbolLayer
@@ -183,6 +217,21 @@ class QgsPointPatternFillSymbolLayer : QgsImageFillSymbolLayer
183217

184218
bool setSubSymbol( QgsSymbolV2* symbol );
185219
virtual QgsSymbolV2* subSymbol();
220+
221+
void setDistanceXUnit( QgsSymbolV2::OutputUnit unit );
222+
QgsSymbolV2::OutputUnit distanceXUnit() const;
223+
224+
void setDistanceYUnit( QgsSymbolV2::OutputUnit unit );
225+
QgsSymbolV2::OutputUnit distanceYUnit() const;
226+
227+
void setDisplacementXUnit( QgsSymbolV2::OutputUnit unit );
228+
QgsSymbolV2::OutputUnit displacementXUnit() const;
229+
230+
void setDisplacementYUnit( QgsSymbolV2::OutputUnit unit );
231+
QgsSymbolV2::OutputUnit displacementYUnit() const;
232+
233+
void setOutputUnit( QgsSymbolV2::OutputUnit unit );
234+
QgsSymbolV2::OutputUnit outputUnit() const;
186235
};
187236

188237
class QgsCentroidFillSymbolLayerV2 : QgsFillSymbolLayerV2

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,15 @@ class QgsSimpleLineSymbolLayerV2 : QgsLineSymbolLayerV2
4444
double offset() const;
4545
void setOffset( double offset );
4646

47+
QgsSymbolV2::OutputUnit offsetUnit() const;
48+
void setOffsetUnit( QgsSymbolV2::OutputUnit unit );
49+
4750
bool useCustomDashPattern() const;
4851
void setUseCustomDashPattern( bool b );
4952

53+
QgsSymbolV2::OutputUnit customDashPatternUnit() const;
54+
void setCustomDashPatternUnit( QgsSymbolV2::OutputUnit unit );
55+
5056
QVector<qreal> customDashVector() const;
5157
void setCustomDashVector( const QVector<qreal>& vector );
5258
};
@@ -114,6 +120,15 @@ class QgsMarkerLineSymbolLayerV2 : QgsLineSymbolLayerV2
114120
double offset() const;
115121
void setOffset( double offset );
116122

123+
QgsSymbolV2::OutputUnit intervalUnit() const;
124+
void setIntervalUnit( QgsSymbolV2::OutputUnit unit );
125+
126+
QgsSymbolV2::OutputUnit offsetUnit() const;
127+
void setOffsetUnit( QgsSymbolV2::OutputUnit unit );
128+
129+
void setOutputUnit( QgsSymbolV2::OutputUnit unit );
130+
QgsSymbolV2::OutputUnit outputUnit() const;
131+
117132
Placement placement() const;
118133
void setPlacement( Placement p );
119134

@@ -157,4 +172,7 @@ class QgsLineDecorationSymbolLayerV2 : QgsLineSymbolLayerV2
157172
QgsSymbolLayerV2* clone() const /Factory/;
158173

159174
void toSld( QDomDocument &doc, QDomElement &element, QgsStringMap props ) const;
175+
176+
void setOutputUnit( QgsSymbolV2::OutputUnit unit );
177+
QgsSymbolV2::OutputUnit outputUnit() const;
160178
};

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,12 @@ class QgsSimpleMarkerSymbolLayerV2 : QgsMarkerSymbolLayerV2
3939
QColor borderColor() const;
4040
void setBorderColor( QColor color );
4141

42+
double outlineWidth() const;
43+
void setOutlineWidth( double w );
44+
45+
QgsSymbolV2::OutputUnit outlineWidthUnit() const;
46+
void setOutlineWidthUnit( QgsSymbolV2::OutputUnit u );
47+
4248
protected:
4349

4450
void drawMarker( QPainter* p, QgsSymbolV2RenderContext& context );
@@ -92,6 +98,12 @@ class QgsSvgMarkerSymbolLayerV2 : QgsMarkerSymbolLayerV2
9298

9399
double outlineWidth() const;
94100
void setOutlineWidth( double w );
101+
102+
void setOutlineWidthUnit( QgsSymbolV2::OutputUnit unit );
103+
QgsSymbolV2::OutputUnit outlineWidthUnit() const;
104+
105+
void setOutputUnit( QgsSymbolV2::OutputUnit unit );
106+
QgsSymbolV2::OutputUnit outputUnit() const;
95107
};
96108

97109
class QgsFontMarkerSymbolLayerV2 : QgsMarkerSymbolLayerV2

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

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,15 +90,31 @@ class QgsSymbolLayerV2
9090
void setLocked( bool locked );
9191
bool isLocked() const;
9292

93+
virtual void setOutputUnit( QgsSymbolV2::OutputUnit unit );
94+
virtual QgsSymbolV2::OutputUnit outputUnit() const;
95+
9396
// used only with rending with symbol levels is turned on (0 = first pass, 1 = second, ...)
9497
void setRenderingPass( int renderingPass );
9598
int renderingPass() const;
9699

97100
// symbol layers normally only use additional attributes to provide data defined settings
98101
virtual QSet<QString> usedAttributes() const;
99102

103+
virtual const QgsExpression* dataDefinedProperty( const QString& property ) const;
104+
virtual QString dataDefinedPropertyString( const QString& property ) const;
105+
virtual void setDataDefinedProperty( const QString& property, const QString& expressionString );
106+
virtual void removeDataDefinedProperty( const QString& property );
107+
virtual void removeDataDefinedProperties();
108+
100109
protected:
101110
QgsSymbolLayerV2( QgsSymbolV2::SymbolType type, bool locked = false );
111+
112+
virtual void prepareExpressions( const QgsVectorLayer* vl );
113+
virtual QgsExpression* expression( const QString& property );
114+
/**Saves data defined properties to string map*/
115+
void saveDataDefinedProperties( QgsStringMap& stringMap ) const;
116+
/**Copies data defined properties of this layer to another symbol layer*/
117+
void copyDataDefinedProperties( QgsSymbolLayerV2* destLayer ) const;
102118
};
103119

104120
//////////////////////
@@ -130,6 +146,15 @@ class QgsMarkerSymbolLayerV2 : QgsSymbolLayerV2
130146

131147
virtual void writeSldMarker( QDomDocument &doc, QDomElement &element, QgsStringMap props ) const;
132148

149+
void setOffsetUnit( QgsSymbolV2::OutputUnit unit );
150+
QgsSymbolV2::OutputUnit offsetUnit() const;
151+
152+
void setSizeUnit( QgsSymbolV2::OutputUnit unit );
153+
QgsSymbolV2::OutputUnit sizeUnit() const;
154+
155+
virtual void setOutputUnit( QgsSymbolV2::OutputUnit unit );
156+
virtual QgsSymbolV2::OutputUnit outputUnit() const;
157+
133158
protected:
134159
QgsMarkerSymbolLayerV2( bool locked = false );
135160
};
@@ -149,6 +174,9 @@ class QgsLineSymbolLayerV2 : QgsSymbolLayerV2
149174
virtual void setWidth( double width );
150175
virtual double width() const;
151176

177+
void setWidthUnit( QgsSymbolV2::OutputUnit unit );
178+
QgsSymbolV2::OutputUnit widthUnit() const;
179+
152180
void drawPreviewIcon( QgsSymbolV2RenderContext& context, QSize size );
153181

154182
protected:

0 commit comments

Comments
 (0)
Please sign in to comment.