Skip to content

Commit b1444bb

Browse files
committed
Consider scale for data defined symbology properties
1 parent c84ad6e commit b1444bb

6 files changed

+15
-11
lines changed

src/core/symbology-ng/qgsellipsesymbollayerv2.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ void QgsEllipseSymbolLayerV2::startRender( QgsSymbolV2RenderContext& context )
247247
mPen.setColor( mOutlineColor );
248248
mPen.setWidthF( mOutlineWidth * QgsSymbolLayerV2Utils::lineWidthScaleFactor( context.renderContext(), mOutlineWidthUnit ) );
249249
mBrush.setColor( mFillColor );
250-
prepareExpressions( context.layer() );
250+
prepareExpressions( context.layer(), context.renderContext().rendererScale() );
251251
}
252252

253253
void QgsEllipseSymbolLayerV2::stopRender( QgsSymbolV2RenderContext & )

src/core/symbology-ng/qgsfillsymbollayerv2.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ void QgsSimpleFillSymbolLayerV2::startRender( QgsSymbolV2RenderContext& context
152152
mSelPen = QPen( selPenColor );
153153
mPen.setStyle( mBorderStyle );
154154
mPen.setWidthF( mBorderWidth * QgsSymbolLayerV2Utils::lineWidthScaleFactor( context.renderContext(), mBorderWidthUnit ) );
155-
prepareExpressions( context.layer() );
155+
prepareExpressions( context.layer(), context.renderContext().rendererScale() );
156156
}
157157

158158
void QgsSimpleFillSymbolLayerV2::stopRender( QgsSymbolV2RenderContext& context )
@@ -576,7 +576,7 @@ void QgsSVGFillSymbolLayer::startRender( QgsSymbolV2RenderContext& context )
576576
mOutline->startRender( context.renderContext() );
577577
}
578578

579-
prepareExpressions( context.layer() );
579+
prepareExpressions( context.layer(), context.renderContext().rendererScale() );
580580
}
581581

582582
void QgsSVGFillSymbolLayer::stopRender( QgsSymbolV2RenderContext& context )
@@ -1096,7 +1096,7 @@ void QgsLinePatternFillSymbolLayer::startRender( QgsSymbolV2RenderContext& conte
10961096
mOutline->startRender( context.renderContext() );
10971097
}
10981098

1099-
prepareExpressions( context.layer() );
1099+
prepareExpressions( context.layer(), context.renderContext().rendererScale() );
11001100
}
11011101

11021102
void QgsLinePatternFillSymbolLayer::stopRender( QgsSymbolV2RenderContext & )
@@ -1467,7 +1467,7 @@ void QgsPointPatternFillSymbolLayer::startRender( QgsSymbolV2RenderContext& cont
14671467
{
14681468
mOutline->startRender( context.renderContext() );
14691469
}
1470-
prepareExpressions( context.layer() );
1470+
prepareExpressions( context.layer(), context.renderContext().rendererScale() );
14711471
}
14721472

14731473
void QgsPointPatternFillSymbolLayer::stopRender( QgsSymbolV2RenderContext& context )

src/core/symbology-ng/qgslinesymbollayerv2.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ void QgsSimpleLineSymbolLayerV2::startRender( QgsSymbolV2RenderContext& context
159159
mSelPen.setColor( selColor );
160160

161161
//prepare expressions for data defined properties
162-
prepareExpressions( context.layer() );
162+
prepareExpressions( context.layer(), context.renderContext().rendererScale() );
163163
}
164164

165165
void QgsSimpleLineSymbolLayerV2::stopRender( QgsSymbolV2RenderContext& context )
@@ -538,7 +538,7 @@ void QgsMarkerLineSymbolLayerV2::startRender( QgsSymbolV2RenderContext& context
538538
mMarker->startRender( context.renderContext(), context.layer() );
539539

540540
//prepare expressions for data defined properties
541-
prepareExpressions( context.layer() );
541+
prepareExpressions( context.layer(), context.renderContext().rendererScale() );
542542
}
543543

544544
void QgsMarkerLineSymbolLayerV2::stopRender( QgsSymbolV2RenderContext& context )

src/core/symbology-ng/qgsmarkersymbollayerv2.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ void QgsSimpleMarkerSymbolLayerV2::startRender( QgsSymbolV2RenderContext& contex
211211
mSelCache = QImage();
212212
}
213213

214-
prepareExpressions( context.layer() );
214+
prepareExpressions( context.layer(), context.renderContext().rendererScale() );
215215
}
216216

217217

@@ -830,7 +830,7 @@ void QgsSvgMarkerSymbolLayerV2::startRender( QgsSymbolV2RenderContext& context )
830830
{
831831
mOrigSize = mSize; // save in case the size would be data defined
832832
Q_UNUSED( context );
833-
prepareExpressions( context.layer() );
833+
prepareExpressions( context.layer(), context.renderContext().rendererScale() );
834834
}
835835

836836
void QgsSvgMarkerSymbolLayerV2::stopRender( QgsSymbolV2RenderContext& context )

src/core/symbology-ng/qgssymbollayerv2.cpp

+5-1
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ void QgsSymbolLayerV2::removeDataDefinedProperties()
7676
mDataDefinedProperties.clear();
7777
}
7878

79-
void QgsSymbolLayerV2::prepareExpressions( const QgsVectorLayer* vl )
79+
void QgsSymbolLayerV2::prepareExpressions( const QgsVectorLayer* vl, double scale )
8080
{
8181
if ( !vl )
8282
{
@@ -90,6 +90,10 @@ void QgsSymbolLayerV2::prepareExpressions( const QgsVectorLayer* vl )
9090
if ( it.value() )
9191
{
9292
it.value()->prepare( fields );
93+
if ( scale > 0 )
94+
{
95+
it.value()->setScale( scale );
96+
}
9397
}
9498
}
9599
}

src/core/symbology-ng/qgssymbollayerv2.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ class CORE_EXPORT QgsSymbolLayerV2
108108
static const bool selectFillBorder = false; // Fill symbol layer also selects border symbology
109109
static const bool selectFillStyle = false; // Fill symbol uses symbol layer style..
110110

111-
virtual void prepareExpressions( const QgsVectorLayer* vl );
111+
virtual void prepareExpressions( const QgsVectorLayer* vl, double scale = -1 );
112112
virtual QgsExpression* expression( const QString& property );
113113
/**Saves data defined properties to string map*/
114114
void saveDataDefinedProperties( QgsStringMap& stringMap ) const;

0 commit comments

Comments
 (0)