mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-14 00:07:35 -04:00
Port symbols to expression contexts
This commit is contained in:
parent
1a7acb0d98
commit
d6d6827b6e
@ -212,7 +212,22 @@ class QgsSymbolLayerV2
|
||||
* @see getDataDefinedProperty
|
||||
* @note added in QGIS 2.9
|
||||
*/
|
||||
virtual QVariant evaluateDataDefinedProperty( const QString& property, const QgsFeature* feature ) const;
|
||||
virtual QVariant evaluateDataDefinedProperty( const QString& property, const QgsFeature* feature ) const /Deprecated/;
|
||||
|
||||
/** Evaluates the matching data defined property and returns the calculated
|
||||
* value. Prior to evaluation the data defined property must be prepared
|
||||
* by calling @link prepareExpressions @endlink.
|
||||
* @param property property key
|
||||
* @param context symbol render context
|
||||
* @param defaultVal default value to return if evaluation was not successful
|
||||
* @param ok if specified, will be set to true if evaluation was successful
|
||||
* @returns calculated value for data defined property, or default value
|
||||
* if property does not exist or is deactived.
|
||||
* @see hasDataDefinedProperty
|
||||
* @see getDataDefinedProperty
|
||||
* @note added in QGIS 2.12
|
||||
*/
|
||||
virtual QVariant evaluateDataDefinedProperty( const QString& property, const QgsSymbolV2RenderContext& context, const QVariant& defaultVal = QVariant(), bool *ok = 0 ) const;
|
||||
|
||||
virtual bool writeDxf( QgsDxfExport& e,
|
||||
double mmMapUnitScaleFactor,
|
||||
@ -253,7 +268,14 @@ class QgsSymbolLayerV2
|
||||
* @param fields associated layer fields
|
||||
* @param scale map scale
|
||||
*/
|
||||
virtual void prepareExpressions( const QgsFields* fields, double scale = -1.0 );
|
||||
virtual void prepareExpressions( const QgsFields* fields, double scale = -1.0 ) /Deprecated/;
|
||||
|
||||
/** Prepares all data defined property expressions for evaluation. This should
|
||||
* be called prior to evaluating data defined properties.
|
||||
* @param context symbol render context
|
||||
* @note added in QGIS 2.12
|
||||
*/
|
||||
virtual void prepareExpressions( const QgsSymbolV2RenderContext& context );
|
||||
|
||||
/** Returns the data defined expression associated with a property
|
||||
* @deprecated use getDataDefinedProperty or evaluateDataDefinedProperty instead
|
||||
|
@ -207,13 +207,13 @@ void QgsEllipseSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV2Rend
|
||||
bool ok;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH ) )
|
||||
{
|
||||
double width = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH, context.feature(), mOutlineWidth ).toDouble();
|
||||
double width = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH, context, mOutlineWidth ).toDouble();
|
||||
width *= QgsSymbolLayerV2Utils::lineWidthScaleFactor( context.renderContext(), mOutlineWidthUnit, mOutlineWidthMapUnitScale );
|
||||
mPen.setWidthF( width );
|
||||
}
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_STYLE ) )
|
||||
{
|
||||
QString styleString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_STYLE, context.feature(), QVariant(), &ok ).toString();
|
||||
QString styleString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_STYLE, context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
{
|
||||
Qt::PenStyle style = QgsSymbolLayerV2Utils::decodePenStyle( styleString );
|
||||
@ -222,13 +222,13 @@ void QgsEllipseSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV2Rend
|
||||
}
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL_COLOR ) )
|
||||
{
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL_COLOR, context.feature(), QVariant(), &ok ).toString();
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL_COLOR, context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
mBrush.setColor( QColor( QgsSymbolLayerV2Utils::decodeColor( colorString ) ) );
|
||||
}
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_COLOR ) )
|
||||
{
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_COLOR, context.feature(), QVariant(), &ok ).toString();
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_COLOR, context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
mPen.setColor( QColor( QgsSymbolLayerV2Utils::decodeColor( colorString ) ) );
|
||||
}
|
||||
@ -239,7 +239,7 @@ void QgsEllipseSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV2Rend
|
||||
QString symbolName = mSymbolName;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_SYMBOL_NAME ) )
|
||||
{
|
||||
symbolName = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SYMBOL_NAME, context.feature(), mSymbolName ).toString();
|
||||
symbolName = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SYMBOL_NAME, context, mSymbolName ).toString();
|
||||
}
|
||||
preparePath( symbolName, context, &scaledWidth, &scaledHeight, context.feature() );
|
||||
}
|
||||
@ -260,7 +260,7 @@ void QgsEllipseSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV2Rend
|
||||
double rotation = 0.0;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_ROTATION ) )
|
||||
{
|
||||
rotation = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ROTATION, context.feature(), mAngle ).toDouble() + mLineAngle;
|
||||
rotation = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ROTATION, context, mAngle ).toDouble() + mLineAngle;
|
||||
}
|
||||
else if ( !qgsDoubleNear( mAngle + mLineAngle, 0.0 ) )
|
||||
{
|
||||
@ -297,7 +297,7 @@ void QgsEllipseSymbolLayerV2::startRender( QgsSymbolV2RenderContext& context )
|
||||
mPen.setStyle( mOutlineStyle );
|
||||
mPen.setWidthF( mOutlineWidth * QgsSymbolLayerV2Utils::lineWidthScaleFactor( context.renderContext(), mOutlineWidthUnit, mOutlineWidthMapUnitScale ) );
|
||||
mBrush.setColor( mFillColor );
|
||||
prepareExpressions( context.fields(), context.renderContext().rendererScale() );
|
||||
prepareExpressions( context );
|
||||
}
|
||||
|
||||
void QgsEllipseSymbolLayerV2::stopRender( QgsSymbolV2RenderContext & )
|
||||
@ -453,7 +453,7 @@ QgsStringMap QgsEllipseSymbolLayerV2::properties() const
|
||||
return map;
|
||||
}
|
||||
|
||||
void QgsEllipseSymbolLayerV2::preparePath( const QString& symbolName, QgsSymbolV2RenderContext& context, double* scaledWidth, double* scaledHeight, const QgsFeature* f )
|
||||
void QgsEllipseSymbolLayerV2::preparePath( const QString& symbolName, QgsSymbolV2RenderContext& context, double* scaledWidth, double* scaledHeight, const QgsFeature* )
|
||||
{
|
||||
mPainterPath = QPainterPath();
|
||||
const QgsRenderContext& ct = context.renderContext();
|
||||
@ -462,7 +462,7 @@ void QgsEllipseSymbolLayerV2::preparePath( const QString& symbolName, QgsSymbolV
|
||||
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH ) ) //1. priority: data defined setting on symbol layer le
|
||||
{
|
||||
width = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH, f, mSymbolWidth ).toDouble();
|
||||
width = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH, context, mSymbolWidth ).toDouble();
|
||||
}
|
||||
else if ( context.renderHints() & QgsSymbolV2::DataDefinedSizeScale ) //2. priority: is data defined size on symbol level
|
||||
{
|
||||
@ -481,7 +481,7 @@ void QgsEllipseSymbolLayerV2::preparePath( const QString& symbolName, QgsSymbolV
|
||||
double height = 0;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_HEIGHT ) ) //1. priority: data defined setting on symbol layer level
|
||||
{
|
||||
height = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_HEIGHT, f, mSymbolHeight ).toDouble();
|
||||
height = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_HEIGHT, context, mSymbolHeight ).toDouble();
|
||||
}
|
||||
else if ( context.renderHints() & QgsSymbolV2::DataDefinedSizeScale ) //2. priority: is data defined size on symbol level
|
||||
{
|
||||
@ -558,14 +558,14 @@ QgsMapUnitScale QgsEllipseSymbolLayerV2::mapUnitScale() const
|
||||
return QgsMapUnitScale();
|
||||
}
|
||||
|
||||
bool QgsEllipseSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitScaleFactor, const QString& layerName, const QgsSymbolV2RenderContext* context, const QgsFeature* f, const QPointF& shift ) const
|
||||
bool QgsEllipseSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitScaleFactor, const QString& layerName, const QgsSymbolV2RenderContext* context, const QgsFeature*, const QPointF& shift ) const
|
||||
{
|
||||
//width
|
||||
double symbolWidth = mSymbolWidth;
|
||||
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH ) ) //1. priority: data defined setting on symbol layer le
|
||||
{
|
||||
symbolWidth = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH, f, mSymbolWidth ).toDouble();
|
||||
symbolWidth = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH, *context, mSymbolWidth ).toDouble();
|
||||
}
|
||||
else if ( context->renderHints() & QgsSymbolV2::DataDefinedSizeScale ) //2. priority: is data defined size on symbol level
|
||||
{
|
||||
@ -580,7 +580,7 @@ bool QgsEllipseSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitScaleFa
|
||||
double symbolHeight = mSymbolHeight;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_HEIGHT ) ) //1. priority: data defined setting on symbol layer level
|
||||
{
|
||||
symbolHeight = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_HEIGHT, f, mSymbolHeight ).toDouble();
|
||||
symbolHeight = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_HEIGHT, *context, mSymbolHeight ).toDouble();
|
||||
}
|
||||
else if ( context->renderHints() & QgsSymbolV2::DataDefinedSizeScale ) //2. priority: is data defined size on symbol level
|
||||
{
|
||||
@ -596,7 +596,7 @@ bool QgsEllipseSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitScaleFa
|
||||
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH ) )
|
||||
{
|
||||
outlineWidth = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH, f, mOutlineWidth ).toDouble();
|
||||
outlineWidth = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH, *context, mOutlineWidth ).toDouble();
|
||||
}
|
||||
if ( mOutlineWidthUnit == QgsSymbolV2::MM )
|
||||
{
|
||||
@ -608,7 +608,7 @@ bool QgsEllipseSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitScaleFa
|
||||
QColor fc = mFillColor;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL_COLOR ) )
|
||||
{
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL_COLOR, f, QVariant(), &ok ).toString();
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL_COLOR, *context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
fc = QColor( colorString );
|
||||
}
|
||||
@ -617,7 +617,7 @@ bool QgsEllipseSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitScaleFa
|
||||
QColor oc = mOutlineColor;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_COLOR ) )
|
||||
{
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_COLOR, f, QVariant(), &ok ).toString();
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_COLOR, *context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
oc = QColor( colorString );
|
||||
}
|
||||
@ -626,7 +626,7 @@ bool QgsEllipseSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitScaleFa
|
||||
QString symbolName = mSymbolName;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_SYMBOL_NAME ) )
|
||||
{
|
||||
symbolName = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SYMBOL_NAME, f, mSymbolName ).toString();
|
||||
symbolName = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SYMBOL_NAME, *context, mSymbolName ).toString();
|
||||
}
|
||||
|
||||
//offset
|
||||
@ -639,7 +639,7 @@ bool QgsEllipseSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitScaleFa
|
||||
double rotation = 0.0;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_ROTATION ) )
|
||||
{
|
||||
rotation = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ROTATION, f, mAngle ).toDouble() + mLineAngle;
|
||||
rotation = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ROTATION, *context, mAngle ).toDouble() + mLineAngle;
|
||||
}
|
||||
else if ( !qgsDoubleNear( mAngle + mLineAngle, 0.0 ) )
|
||||
{
|
||||
|
@ -84,32 +84,32 @@ void QgsSimpleFillSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderCon
|
||||
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR ) )
|
||||
{
|
||||
QString color = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context.feature(), QVariant(), &ok ).toString();
|
||||
QString color = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
brush.setColor( QgsSymbolLayerV2Utils::decodeColor( color ) );
|
||||
}
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL_STYLE ) )
|
||||
{
|
||||
QString style = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL_STYLE, context.feature(), QVariant(), &ok ).toString();
|
||||
QString style = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL_STYLE, context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
brush.setStyle( QgsSymbolLayerV2Utils::decodeBrushStyle( style ) );
|
||||
}
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR_BORDER ) )
|
||||
{
|
||||
QString color = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR_BORDER, context.feature(), QVariant(), &ok ).toString();
|
||||
QString color = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR_BORDER, context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
pen.setColor( QgsSymbolLayerV2Utils::decodeColor( color ) );
|
||||
}
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH_BORDER ) )
|
||||
{
|
||||
double width = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH_BORDER, context.feature(), mBorderWidth ).toDouble();
|
||||
double width = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH_BORDER, context, mBorderWidth ).toDouble();
|
||||
width *= QgsSymbolLayerV2Utils::lineWidthScaleFactor( context.renderContext(), mBorderWidthUnit, mBorderWidthMapUnitScale );
|
||||
pen.setWidthF( width );
|
||||
selPen.setWidthF( width );
|
||||
}
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_BORDER_STYLE ) )
|
||||
{
|
||||
QString style = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_BORDER_STYLE, context.feature(), QVariant(), &ok ).toString();
|
||||
QString style = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_BORDER_STYLE, context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
{
|
||||
pen.setStyle( QgsSymbolLayerV2Utils::decodePenStyle( style ) );
|
||||
@ -118,7 +118,7 @@ void QgsSimpleFillSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderCon
|
||||
}
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_JOIN_STYLE ) )
|
||||
{
|
||||
QString style = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_JOIN_STYLE, context.feature(), QVariant(), &ok ).toString();
|
||||
QString style = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_JOIN_STYLE, context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
{
|
||||
pen.setJoinStyle( QgsSymbolLayerV2Utils::decodePenJoinStyle( style ) );
|
||||
@ -249,7 +249,7 @@ void QgsSimpleFillSymbolLayerV2::startRender( QgsSymbolV2RenderContext& context
|
||||
mPen.setStyle( mBorderStyle );
|
||||
mPen.setWidthF( mBorderWidth * QgsSymbolLayerV2Utils::lineWidthScaleFactor( context.renderContext(), mBorderWidthUnit, mBorderWidthMapUnitScale ) );
|
||||
mPen.setJoinStyle( mPenJoinStyle );
|
||||
prepareExpressions( context.fields(), context.renderContext().rendererScale() );
|
||||
prepareExpressions( context );
|
||||
}
|
||||
|
||||
void QgsSimpleFillSymbolLayerV2::stopRender( QgsSymbolV2RenderContext& context )
|
||||
@ -396,7 +396,7 @@ double QgsSimpleFillSymbolLayerV2::dxfWidth( const QgsDxfExport& e, const QgsSym
|
||||
double width = mBorderWidth;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH_BORDER ) )
|
||||
{
|
||||
width = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH_BORDER, context.feature(), mBorderWidth ).toDouble();
|
||||
width = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH_BORDER, context, mBorderWidth ).toDouble();
|
||||
}
|
||||
return width * e.mapUnitScaleFactor( e.symbologyScaleDenominator(), mBorderWidthUnit, e.mapUnits() );
|
||||
}
|
||||
@ -406,7 +406,7 @@ QColor QgsSimpleFillSymbolLayerV2::dxfColor( const QgsSymbolV2RenderContext& con
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_BORDER_COLOR ) )
|
||||
{
|
||||
bool ok;
|
||||
QString color = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_BORDER_COLOR, context.feature(), QVariant(), &ok ).toString();
|
||||
QString color = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_BORDER_COLOR, context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
return QgsSymbolLayerV2Utils::decodeColor( color );
|
||||
}
|
||||
@ -423,7 +423,7 @@ QColor QgsSimpleFillSymbolLayerV2::dxfBrushColor( const QgsSymbolV2RenderContext
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR ) )
|
||||
{
|
||||
bool ok;
|
||||
QString color = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context.feature(), QVariant(), &ok ).toString();
|
||||
QString color = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
return QgsSymbolLayerV2Utils::decodeColor( color );
|
||||
}
|
||||
@ -564,7 +564,7 @@ void QgsGradientFillSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderC
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR ) )
|
||||
{
|
||||
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context.feature(), QVariant(), &ok ).toString();
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
color = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
||||
}
|
||||
@ -573,7 +573,7 @@ void QgsGradientFillSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderC
|
||||
QColor color2 = mColor2;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR2 ) )
|
||||
{
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR2, context.feature(), QVariant(), &ok ).toString();
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR2, context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
color2 = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
||||
}
|
||||
@ -582,14 +582,14 @@ void QgsGradientFillSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderC
|
||||
double angle = mAngle;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE ) )
|
||||
{
|
||||
angle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE, context.feature(), mAngle ).toDouble();
|
||||
angle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE, context, mAngle ).toDouble();
|
||||
}
|
||||
|
||||
//gradient type
|
||||
QgsGradientFillSymbolLayerV2::GradientType gradientType = mGradientType;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_GRADIENT_TYPE ) )
|
||||
{
|
||||
QString currentType = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_GRADIENT_TYPE, context.feature(), QVariant(), &ok ).toString();
|
||||
QString currentType = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_GRADIENT_TYPE, context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
{
|
||||
if ( currentType == QObject::tr( "linear" ) )
|
||||
@ -611,7 +611,7 @@ void QgsGradientFillSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderC
|
||||
GradientCoordinateMode coordinateMode = mCoordinateMode;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COORDINATE_MODE ) )
|
||||
{
|
||||
QString currentCoordMode = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COORDINATE_MODE, context.feature(), QVariant(), &ok ).toString();
|
||||
QString currentCoordMode = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COORDINATE_MODE, context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
{
|
||||
if ( currentCoordMode == QObject::tr( "feature" ) )
|
||||
@ -629,7 +629,7 @@ void QgsGradientFillSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderC
|
||||
GradientSpread spread = mGradientSpread;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_SPREAD ) )
|
||||
{
|
||||
QString currentSpread = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SPREAD, context.feature(), QVariant(), &ok ).toString();
|
||||
QString currentSpread = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SPREAD, context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
{
|
||||
if ( currentSpread == QObject::tr( "pad" ) )
|
||||
@ -651,34 +651,34 @@ void QgsGradientFillSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderC
|
||||
double refPoint1X = mReferencePoint1.x();
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE1_X ) )
|
||||
{
|
||||
refPoint1X = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE1_X, context.feature(), refPoint1X ).toDouble();
|
||||
refPoint1X = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE1_X, context, refPoint1X ).toDouble();
|
||||
}
|
||||
double refPoint1Y = mReferencePoint1.y();
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE1_Y ) )
|
||||
{
|
||||
refPoint1Y = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE1_Y, context.feature(), refPoint1Y ).toDouble();
|
||||
refPoint1Y = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE1_Y, context, refPoint1Y ).toDouble();
|
||||
}
|
||||
bool refPoint1IsCentroid = mReferencePoint1IsCentroid;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE1_ISCENTROID ) )
|
||||
{
|
||||
refPoint1IsCentroid = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE1_ISCENTROID, context.feature(), refPoint1IsCentroid ).toBool();
|
||||
refPoint1IsCentroid = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE1_ISCENTROID, context, refPoint1IsCentroid ).toBool();
|
||||
}
|
||||
|
||||
//reference point 2 x & y
|
||||
double refPoint2X = mReferencePoint2.x();
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE2_X ) )
|
||||
{
|
||||
refPoint2X = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE2_X, context.feature(), refPoint2X ).toDouble();
|
||||
refPoint2X = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE2_X, context, refPoint2X ).toDouble();
|
||||
}
|
||||
double refPoint2Y = mReferencePoint2.y();
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE2_Y ) )
|
||||
{
|
||||
refPoint2Y = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE2_Y, context.feature(), refPoint2Y ).toDouble();
|
||||
refPoint2Y = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE2_Y, context, refPoint2Y ).toDouble();
|
||||
}
|
||||
bool refPoint2IsCentroid = mReferencePoint2IsCentroid;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE2_ISCENTROID ) )
|
||||
{
|
||||
refPoint2IsCentroid = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE2_ISCENTROID, context.feature(), refPoint2IsCentroid ).toBool();
|
||||
refPoint2IsCentroid = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE2_ISCENTROID, context, refPoint2IsCentroid ).toBool();
|
||||
}
|
||||
|
||||
if ( refPoint1IsCentroid || refPoint2IsCentroid )
|
||||
@ -807,7 +807,7 @@ void QgsGradientFillSymbolLayerV2::startRender( QgsSymbolV2RenderContext& contex
|
||||
mSelBrush = QBrush( selColor );
|
||||
|
||||
//update mBrush to use a gradient fill with specified properties
|
||||
prepareExpressions( context.fields(), context.renderContext().rendererScale() );
|
||||
prepareExpressions( context );
|
||||
}
|
||||
|
||||
void QgsGradientFillSymbolLayerV2::stopRender( QgsSymbolV2RenderContext& context )
|
||||
@ -1044,7 +1044,7 @@ void QgsShapeburstFillSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2Rende
|
||||
color = mColor;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR ) )
|
||||
{
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context.feature(), QVariant(), &ok ).toString();
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
color = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
||||
}
|
||||
@ -1053,7 +1053,7 @@ void QgsShapeburstFillSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2Rende
|
||||
color2 = mColor2;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR2 ) )
|
||||
{
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR2, context.feature(), QVariant(), &ok ).toString();
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR2, context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
color2 = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
||||
}
|
||||
@ -1062,28 +1062,28 @@ void QgsShapeburstFillSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2Rende
|
||||
blurRadius = mBlurRadius;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_BLUR_RADIUS ) )
|
||||
{
|
||||
blurRadius = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_BLUR_RADIUS, context.feature(), mBlurRadius ).toInt();
|
||||
blurRadius = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_BLUR_RADIUS, context, mBlurRadius ).toInt();
|
||||
}
|
||||
|
||||
//use whole shape
|
||||
useWholeShape = mUseWholeShape;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_USE_WHOLE_SHAPE ) )
|
||||
{
|
||||
useWholeShape = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_USE_WHOLE_SHAPE, context.feature(), mUseWholeShape ).toBool();
|
||||
useWholeShape = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_USE_WHOLE_SHAPE, context, mUseWholeShape ).toBool();
|
||||
}
|
||||
|
||||
//max distance
|
||||
maxDistance = mMaxDistance;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_MAX_DISTANCE ) )
|
||||
{
|
||||
maxDistance = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_MAX_DISTANCE, context.feature(), mMaxDistance ).toDouble();
|
||||
maxDistance = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_MAX_DISTANCE, context, mMaxDistance ).toDouble();
|
||||
}
|
||||
|
||||
//ignore rings
|
||||
ignoreRings = mIgnoreRings;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_IGNORE_RINGS ) )
|
||||
{
|
||||
ignoreRings = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_IGNORE_RINGS, context.feature(), mIgnoreRings ).toBool();
|
||||
ignoreRings = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_IGNORE_RINGS, context, mIgnoreRings ).toBool();
|
||||
}
|
||||
|
||||
}
|
||||
@ -1095,7 +1095,7 @@ void QgsShapeburstFillSymbolLayerV2::startRender( QgsSymbolV2RenderContext& cont
|
||||
if ( ! selectionIsOpaque ) selColor.setAlphaF( context.alpha() );
|
||||
mSelBrush = QBrush( selColor );
|
||||
|
||||
prepareExpressions( context.fields(), context.renderContext().rendererScale() );
|
||||
prepareExpressions( context );
|
||||
}
|
||||
|
||||
void QgsShapeburstFillSymbolLayerV2::stopRender( QgsSymbolV2RenderContext& context )
|
||||
@ -1647,7 +1647,7 @@ double QgsImageFillSymbolLayer::dxfWidth( const QgsDxfExport& e, const QgsSymbol
|
||||
double width = mOutlineWidth;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH ) )
|
||||
{
|
||||
width = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH, context.feature(), mOutlineWidth ).toDouble();
|
||||
width = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH, context, mOutlineWidth ).toDouble();
|
||||
}
|
||||
return width * e.mapUnitScaleFactor( e.symbologyScaleDenominator(), mOutlineWidthUnit, e.mapUnits() );
|
||||
}
|
||||
@ -1933,7 +1933,7 @@ void QgsSVGFillSymbolLayer::startRender( QgsSymbolV2RenderContext& context )
|
||||
mOutline->startRender( context.renderContext(), context.fields() );
|
||||
}
|
||||
|
||||
prepareExpressions( context.fields(), context.renderContext().rendererScale() );
|
||||
prepareExpressions( context );
|
||||
}
|
||||
|
||||
void QgsSVGFillSymbolLayer::stopRender( QgsSymbolV2RenderContext& context )
|
||||
@ -2137,7 +2137,7 @@ void QgsSVGFillSymbolLayer::applyDataDefinedSettings( const QgsSymbolV2RenderCon
|
||||
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE ) )
|
||||
{
|
||||
double nextAngle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE, context.feature(), QVariant(), &ok ).toDouble();
|
||||
double nextAngle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE, context, QVariant(), &ok ).toDouble();
|
||||
if ( ok )
|
||||
mNextAngle = nextAngle;
|
||||
}
|
||||
@ -2145,31 +2145,31 @@ void QgsSVGFillSymbolLayer::applyDataDefinedSettings( const QgsSymbolV2RenderCon
|
||||
double width = mPatternWidth;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH ) )
|
||||
{
|
||||
width = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH, context.feature(), mPatternWidth ).toDouble();
|
||||
width = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH, context, mPatternWidth ).toDouble();
|
||||
}
|
||||
QString svgFile = mSvgFilePath;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_SVG_FILE ) )
|
||||
{
|
||||
svgFile = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SVG_FILE, context.feature(), mSvgFilePath ).toString();
|
||||
svgFile = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SVG_FILE, context, mSvgFilePath ).toString();
|
||||
}
|
||||
QColor svgFillColor = mSvgFillColor;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_SVG_FILL_COLOR ) )
|
||||
{
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SVG_FILL_COLOR, context.feature(), QVariant(), &ok ).toString();
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SVG_FILL_COLOR, context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
svgFillColor = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
||||
}
|
||||
QColor svgOutlineColor = mSvgOutlineColor;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_SVG_OUTLINE_COLOR ) )
|
||||
{
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SVG_OUTLINE_COLOR, context.feature(), QVariant(), &ok ).toString();
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SVG_OUTLINE_COLOR, context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
svgOutlineColor = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
||||
}
|
||||
double outlineWidth = mSvgOutlineWidth;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_SVG_OUTLINE_WIDTH ) )
|
||||
{
|
||||
outlineWidth = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SVG_OUTLINE_WIDTH, context.feature(), mSvgOutlineWidth ).toDouble();
|
||||
outlineWidth = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SVG_OUTLINE_WIDTH, context, mSvgOutlineWidth ).toDouble();
|
||||
}
|
||||
applyPattern( mBrush, svgFile, width, mPatternWidthUnit, svgFillColor, svgOutlineColor, outlineWidth,
|
||||
mSvgOutlineWidthUnit, context, mPatternWidthMapUnitScale, mSvgOutlineWidthMapUnitScale );
|
||||
@ -2742,7 +2742,7 @@ void QgsLinePatternFillSymbolLayer::startRender( QgsSymbolV2RenderContext& conte
|
||||
mFillLineSymbol->startRender( context.renderContext(), context.fields() );
|
||||
}
|
||||
|
||||
prepareExpressions( context.fields(), context.renderContext().rendererScale() );
|
||||
prepareExpressions( context );
|
||||
}
|
||||
|
||||
void QgsLinePatternFillSymbolLayer::stopRender( QgsSymbolV2RenderContext & )
|
||||
@ -2850,22 +2850,22 @@ void QgsLinePatternFillSymbolLayer::applyDataDefinedSettings( const QgsSymbolV2R
|
||||
double lineAngle = mLineAngle;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_LINEANGLE ) )
|
||||
{
|
||||
lineAngle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_LINEANGLE, context.feature(), mLineAngle ).toDouble();
|
||||
lineAngle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_LINEANGLE, context, mLineAngle ).toDouble();
|
||||
}
|
||||
double distance = mDistance;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISTANCE ) )
|
||||
{
|
||||
distance = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISTANCE, context.feature(), mDistance ).toDouble();
|
||||
distance = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISTANCE, context, mDistance ).toDouble();
|
||||
}
|
||||
double lineWidth = mLineWidth;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_LINEWIDTH ) )
|
||||
{
|
||||
lineWidth = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_LINEWIDTH, context.feature(), mLineWidth ).toDouble();
|
||||
lineWidth = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_LINEWIDTH, context, mLineWidth ).toDouble();
|
||||
}
|
||||
QColor color = mColor;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR ) )
|
||||
{
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context.feature(), QVariant(), &ok ).toString();
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
color = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
||||
}
|
||||
@ -3145,7 +3145,7 @@ void QgsPointPatternFillSymbolLayer::startRender( QgsSymbolV2RenderContext& cont
|
||||
{
|
||||
mOutline->startRender( context.renderContext(), context.fields() );
|
||||
}
|
||||
prepareExpressions( context.fields(), context.renderContext().rendererScale() );
|
||||
prepareExpressions( context );
|
||||
}
|
||||
|
||||
void QgsPointPatternFillSymbolLayer::stopRender( QgsSymbolV2RenderContext& context )
|
||||
@ -3261,22 +3261,22 @@ void QgsPointPatternFillSymbolLayer::applyDataDefinedSettings( const QgsSymbolV2
|
||||
double distanceX = mDistanceX;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISTANCE_X ) )
|
||||
{
|
||||
distanceX = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISTANCE_X, context.feature(), mDistanceX ).toDouble();
|
||||
distanceX = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISTANCE_X, context, mDistanceX ).toDouble();
|
||||
}
|
||||
double distanceY = mDistanceY;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISTANCE_Y ) )
|
||||
{
|
||||
distanceY = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISTANCE_Y, context.feature(), mDistanceY ).toDouble();
|
||||
distanceY = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISTANCE_Y, context, mDistanceY ).toDouble();
|
||||
}
|
||||
double displacementX = mDisplacementX;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISPLACEMENT_X ) )
|
||||
{
|
||||
displacementX = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISPLACEMENT_X, context.feature(), mDisplacementX ).toDouble();
|
||||
displacementX = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISPLACEMENT_X, context, mDisplacementX ).toDouble();
|
||||
}
|
||||
double displacementY = mDisplacementY;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISPLACEMENT_Y ) )
|
||||
{
|
||||
displacementY = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISPLACEMENT_Y, context.feature(), mDisplacementY ).toDouble();
|
||||
displacementY = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISPLACEMENT_Y, context, mDisplacementY ).toDouble();
|
||||
}
|
||||
applyPattern( context, mBrush, distanceX, distanceY, displacementX, displacementY );
|
||||
}
|
||||
@ -3581,7 +3581,7 @@ void QgsRasterFillSymbolLayer::renderPolygon( const QPolygonF &points, QList<QPo
|
||||
|
||||
void QgsRasterFillSymbolLayer::startRender( QgsSymbolV2RenderContext &context )
|
||||
{
|
||||
prepareExpressions( context.fields(), context.renderContext().rendererScale() );
|
||||
prepareExpressions( context );
|
||||
applyPattern( mBrush, mImageFilePath, mWidth, mAlpha, context );
|
||||
}
|
||||
|
||||
@ -3663,7 +3663,7 @@ void QgsRasterFillSymbolLayer::applyDataDefinedSettings( const QgsSymbolV2Render
|
||||
bool ok;
|
||||
if ( hasAngleExpression )
|
||||
{
|
||||
double nextAngle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE, context.feature(), QVariant(), &ok ).toDouble();
|
||||
double nextAngle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE, context, QVariant(), &ok ).toDouble();
|
||||
if ( ok )
|
||||
mNextAngle = nextAngle;
|
||||
}
|
||||
@ -3676,17 +3676,17 @@ void QgsRasterFillSymbolLayer::applyDataDefinedSettings( const QgsSymbolV2Render
|
||||
double width = mWidth;
|
||||
if ( hasWidthExpression )
|
||||
{
|
||||
width = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH, context.feature(), mWidth ).toDouble();
|
||||
width = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH, context, mWidth ).toDouble();
|
||||
}
|
||||
double alpha = mAlpha;
|
||||
if ( hasAlphaExpression )
|
||||
{
|
||||
alpha = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ALPHA, context.feature(), mAlpha ).toDouble();
|
||||
alpha = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ALPHA, context, mAlpha ).toDouble();
|
||||
}
|
||||
QString file = mImageFilePath;
|
||||
if ( hasFileExpression )
|
||||
{
|
||||
file = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILE, context.feature(), mImageFilePath ).toString();
|
||||
file = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILE, context, mImageFilePath ).toString();
|
||||
}
|
||||
applyPattern( mBrush, file, width, alpha, context );
|
||||
}
|
||||
|
@ -227,7 +227,7 @@ void QgsSimpleLineSymbolLayerV2::startRender( QgsSymbolV2RenderContext& context
|
||||
mSelPen.setColor( selColor );
|
||||
|
||||
//prepare expressions for data defined properties
|
||||
prepareExpressions( context.fields(), context.renderContext().rendererScale() );
|
||||
prepareExpressions( context );
|
||||
}
|
||||
|
||||
void QgsSimpleLineSymbolLayerV2::stopRender( QgsSymbolV2RenderContext& context )
|
||||
@ -469,7 +469,7 @@ void QgsSimpleLineSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderCon
|
||||
bool hasStrokeWidthExpression = false;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH ) )
|
||||
{
|
||||
double scaledWidth = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH, context.feature(), mWidth ).toDouble()
|
||||
double scaledWidth = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH, context, mWidth ).toDouble()
|
||||
* QgsSymbolLayerV2Utils::lineWidthScaleFactor( context.renderContext(), mWidthUnit, mWidthMapUnitScale );
|
||||
pen.setWidthF( scaledWidth );
|
||||
selPen.setWidthF( scaledWidth );
|
||||
@ -480,7 +480,7 @@ void QgsSimpleLineSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderCon
|
||||
bool ok;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR ) )
|
||||
{
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context.feature(), QVariant(), &ok ).toString();
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
pen.setColor( QgsSymbolLayerV2Utils::decodeColor( colorString ) );
|
||||
}
|
||||
@ -488,7 +488,7 @@ void QgsSimpleLineSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderCon
|
||||
//offset
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET ) )
|
||||
{
|
||||
offset = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET, context.feature(), offset ).toDouble();
|
||||
offset = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET, context, offset ).toDouble();
|
||||
}
|
||||
|
||||
//dash dot vector
|
||||
@ -513,7 +513,7 @@ void QgsSimpleLineSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderCon
|
||||
}
|
||||
|
||||
QVector<qreal> dashVector;
|
||||
QStringList dashList = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_CUSTOMDASH, context.feature(), QVariant(), &ok ).toString().split( ";" );
|
||||
QStringList dashList = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_CUSTOMDASH, context, QVariant(), &ok ).toString().split( ";" );
|
||||
if ( ok )
|
||||
{
|
||||
QStringList::const_iterator dashIt = dashList.constBegin();
|
||||
@ -528,7 +528,7 @@ void QgsSimpleLineSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderCon
|
||||
//line style
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_LINE_STYLE ) )
|
||||
{
|
||||
QString lineStyleString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_LINE_STYLE, context.feature(), QVariant(), &ok ).toString();
|
||||
QString lineStyleString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_LINE_STYLE, context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
pen.setStyle( QgsSymbolLayerV2Utils::decodePenStyle( lineStyleString ) );
|
||||
}
|
||||
@ -536,7 +536,7 @@ void QgsSimpleLineSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderCon
|
||||
//join style
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_JOINSTYLE ) )
|
||||
{
|
||||
QString joinStyleString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_JOINSTYLE, context.feature(), QVariant(), &ok ).toString();
|
||||
QString joinStyleString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_JOINSTYLE, context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
pen.setJoinStyle( QgsSymbolLayerV2Utils::decodePenJoinStyle( joinStyleString ) );
|
||||
}
|
||||
@ -544,7 +544,7 @@ void QgsSimpleLineSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderCon
|
||||
//cap style
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_CAPSTYLE ) )
|
||||
{
|
||||
QString capStyleString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_CAPSTYLE, context.feature(), QVariant(), &ok ).toString();
|
||||
QString capStyleString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_CAPSTYLE, context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
pen.setCapStyle( QgsSymbolLayerV2Utils::decodePenCapStyle( capStyleString ) );
|
||||
}
|
||||
@ -580,7 +580,7 @@ double QgsSimpleLineSymbolLayerV2::dxfWidth( const QgsDxfExport& e, const QgsSym
|
||||
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH ) )
|
||||
{
|
||||
width = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH, context.feature(), mWidth ).toDouble() * e.mapUnitScaleFactor( e.symbologyScaleDenominator(), widthUnit(), e.mapUnits() );
|
||||
width = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH, context, mWidth ).toDouble() * e.mapUnitScaleFactor( e.symbologyScaleDenominator(), widthUnit(), e.mapUnits() );
|
||||
}
|
||||
else if ( context.renderHints() & QgsSymbolV2::DataDefinedSizeScale )
|
||||
{
|
||||
@ -595,7 +595,7 @@ QColor QgsSimpleLineSymbolLayerV2::dxfColor( const QgsSymbolV2RenderContext& con
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR ) )
|
||||
{
|
||||
bool ok;
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context.feature(), QVariant(), &ok ).toString();
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
return ( QgsSymbolLayerV2Utils::decodeColor( colorString ) );
|
||||
}
|
||||
@ -609,7 +609,7 @@ double QgsSimpleLineSymbolLayerV2::dxfOffset( const QgsDxfExport& e, const QgsSy
|
||||
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET ) )
|
||||
{
|
||||
offset = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET, context.feature(), mOffset ).toDouble();
|
||||
offset = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET, context, mOffset ).toDouble();
|
||||
}
|
||||
return offset;
|
||||
}
|
||||
@ -786,7 +786,7 @@ void QgsMarkerLineSymbolLayerV2::startRender( QgsSymbolV2RenderContext& context
|
||||
mMarker->startRender( context.renderContext(), context.fields() );
|
||||
|
||||
//prepare expressions for data defined properties
|
||||
prepareExpressions( context.fields(), context.renderContext().rendererScale() );
|
||||
prepareExpressions( context );
|
||||
}
|
||||
|
||||
void QgsMarkerLineSymbolLayerV2::stopRender( QgsSymbolV2RenderContext& context )
|
||||
@ -800,7 +800,7 @@ void QgsMarkerLineSymbolLayerV2::renderPolyline( const QPolygonF& points, QgsSym
|
||||
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET ) )
|
||||
{
|
||||
offset = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET, context.feature(), mOffset ).toDouble();
|
||||
offset = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET, context, mOffset ).toDouble();
|
||||
}
|
||||
|
||||
Placement placement = mPlacement;
|
||||
@ -808,7 +808,7 @@ void QgsMarkerLineSymbolLayerV2::renderPolyline( const QPolygonF& points, QgsSym
|
||||
bool ok;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_PLACEMENT ) )
|
||||
{
|
||||
QString placementString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_PLACEMENT, context.feature(), QVariant(), &ok ).toString();
|
||||
QString placementString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_PLACEMENT, context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
{
|
||||
if ( placementString.compare( "vertex", Qt::CaseInsensitive ) == 0 )
|
||||
@ -887,7 +887,7 @@ void QgsMarkerLineSymbolLayerV2::renderPolylineInterval( const QPolygonF& points
|
||||
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_INTERVAL ) )
|
||||
{
|
||||
interval = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_INTERVAL, context.feature(), mInterval ).toDouble();
|
||||
interval = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_INTERVAL, context, mInterval ).toDouble();
|
||||
}
|
||||
if ( interval <= 0 )
|
||||
{
|
||||
@ -896,7 +896,7 @@ void QgsMarkerLineSymbolLayerV2::renderPolylineInterval( const QPolygonF& points
|
||||
double offsetAlongLine = mOffsetAlongLine;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET_ALONG_LINE ) )
|
||||
{
|
||||
offsetAlongLine = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET_ALONG_LINE, context.feature(), mOffsetAlongLine ).toDouble();
|
||||
offsetAlongLine = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET_ALONG_LINE, context, mOffsetAlongLine ).toDouble();
|
||||
}
|
||||
|
||||
double painterUnitInterval = interval * QgsSymbolLayerV2Utils::lineWidthScaleFactor( rc, mIntervalUnit, mIntervalMapUnitScale );
|
||||
@ -970,7 +970,7 @@ void QgsMarkerLineSymbolLayerV2::renderPolylineVertex( const QPolygonF& points,
|
||||
double offsetAlongLine = mOffsetAlongLine;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET_ALONG_LINE ) )
|
||||
{
|
||||
offsetAlongLine = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET_ALONG_LINE, context.feature(), mOffsetAlongLine ).toDouble();
|
||||
offsetAlongLine = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET_ALONG_LINE, context, mOffsetAlongLine ).toDouble();
|
||||
}
|
||||
if ( offsetAlongLine != 0 )
|
||||
{
|
||||
|
@ -247,7 +247,7 @@ void QgsSimpleMarkerSymbolLayerV2::startRender( QgsSymbolV2RenderContext& contex
|
||||
mSelCache = QImage();
|
||||
}
|
||||
|
||||
prepareExpressions( context.fields(), context.renderContext().rendererScale() );
|
||||
prepareExpressions( context );
|
||||
|
||||
QgsMarkerSymbolLayerV2::startRender( context );
|
||||
}
|
||||
@ -473,7 +473,7 @@ void QgsSimpleMarkerSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV
|
||||
bool ok = true;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE ) )
|
||||
{
|
||||
scaledSize = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE, context.feature(), mSize, &ok ).toDouble();
|
||||
scaledSize = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE, context, mSize, &ok ).toDouble();
|
||||
}
|
||||
|
||||
if ( hasDataDefinedSize && ok )
|
||||
@ -499,7 +499,7 @@ void QgsSimpleMarkerSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV
|
||||
bool usingDataDefinedRotation = false;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE ) )
|
||||
{
|
||||
angle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE, context.feature(), mAngle, &ok ).toDouble() + mLineAngle;
|
||||
angle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE, context, mAngle, &ok ).toDouble() + mLineAngle;
|
||||
usingDataDefinedRotation = ok;
|
||||
}
|
||||
|
||||
@ -530,7 +530,7 @@ void QgsSimpleMarkerSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV
|
||||
bool createdNewPath = false;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_NAME ) )
|
||||
{
|
||||
QString name = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_NAME, context.feature(), QVariant(), &ok ).toString();
|
||||
QString name = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_NAME, context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
{
|
||||
if ( !prepareShape( name ) ) // drawing as a polygon
|
||||
@ -571,13 +571,13 @@ void QgsSimpleMarkerSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV
|
||||
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR ) )
|
||||
{
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context.feature(), QVariant(), &ok ).toString();
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
mBrush.setColor( QgsSymbolLayerV2Utils::decodeColor( colorString ) );
|
||||
}
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR_BORDER ) )
|
||||
{
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR_BORDER, context.feature(), QVariant(), &ok ).toString();
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR_BORDER, context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
{
|
||||
mPen.setColor( QgsSymbolLayerV2Utils::decodeColor( colorString ) );
|
||||
@ -586,7 +586,7 @@ void QgsSimpleMarkerSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV
|
||||
}
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH ) )
|
||||
{
|
||||
double outlineWidth = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH, context.feature(), QVariant(), &ok ).toDouble();
|
||||
double outlineWidth = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH, context, QVariant(), &ok ).toDouble();
|
||||
if ( ok )
|
||||
{
|
||||
mPen.setWidthF( outlineWidth * QgsSymbolLayerV2Utils::lineWidthScaleFactor( context.renderContext(), mOutlineWidthUnit, mOutlineWidthMapUnitScale ) );
|
||||
@ -595,7 +595,7 @@ void QgsSimpleMarkerSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV
|
||||
}
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_STYLE ) )
|
||||
{
|
||||
QString outlineStyle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_STYLE, context.feature(), QVariant(), &ok ).toString();
|
||||
QString outlineStyle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_STYLE, context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
{
|
||||
mPen.setStyle( QgsSymbolLayerV2Utils::decodePenStyle( outlineStyle ) );
|
||||
@ -798,7 +798,7 @@ void QgsSimpleMarkerSymbolLayerV2::drawMarker( QPainter* p, QgsSymbolV2RenderCon
|
||||
}
|
||||
}
|
||||
|
||||
bool QgsSimpleMarkerSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitScaleFactor, const QString& layerName, const QgsSymbolV2RenderContext* context, const QgsFeature* f, const QPointF& shift ) const
|
||||
bool QgsSimpleMarkerSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitScaleFactor, const QString& layerName, const QgsSymbolV2RenderContext* context, const QgsFeature*, const QPointF& shift ) const
|
||||
{
|
||||
//data defined size?
|
||||
double size = mSize;
|
||||
@ -815,7 +815,7 @@ bool QgsSimpleMarkerSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitSc
|
||||
{
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE ) )
|
||||
{
|
||||
size = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE, f, mSize, &ok ).toDouble();
|
||||
size = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE, *context, mSize, &ok ).toDouble();
|
||||
}
|
||||
|
||||
if ( ok )
|
||||
@ -843,7 +843,7 @@ bool QgsSimpleMarkerSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitSc
|
||||
|
||||
if ( context && hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH ) )
|
||||
{
|
||||
outlineWidth = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH, f, mOutlineWidth ).toDouble();
|
||||
outlineWidth = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH, *context, mOutlineWidth ).toDouble();
|
||||
}
|
||||
if ( mSizeUnit == QgsSymbolV2::MM )
|
||||
{
|
||||
@ -855,13 +855,13 @@ bool QgsSimpleMarkerSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitSc
|
||||
QColor bc = mBrush.color();
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR ) )
|
||||
{
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, f, QVariant(), &ok ).toString();
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, *context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
bc = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
||||
}
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR_BORDER ) )
|
||||
{
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR_BORDER, f, QVariant(), &ok ).toString();
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR_BORDER, *context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
pc = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
||||
}
|
||||
@ -879,13 +879,13 @@ bool QgsSimpleMarkerSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitSc
|
||||
double angle = mAngle + mLineAngle;
|
||||
if ( context && hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE ) )
|
||||
{
|
||||
angle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE, f, mAngle ).toDouble() + mLineAngle;
|
||||
angle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE, *context, mAngle ).toDouble() + mLineAngle;
|
||||
}
|
||||
|
||||
QString name( mName );
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_NAME ) )
|
||||
{
|
||||
name = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_NAME, f, QVariant(), &ok ).toString();
|
||||
name = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_NAME, *context, QVariant(), &ok ).toString();
|
||||
}
|
||||
|
||||
angle = -angle; //rotation in Qt is counterclockwise
|
||||
@ -1176,7 +1176,7 @@ void QgsSvgMarkerSymbolLayerV2::startRender( QgsSymbolV2RenderContext& context )
|
||||
{
|
||||
QgsMarkerSymbolLayerV2::startRender( context ); // get anchor point expressions
|
||||
Q_UNUSED( context );
|
||||
prepareExpressions( context.fields(), context.renderContext().rendererScale() );
|
||||
prepareExpressions( context );
|
||||
}
|
||||
|
||||
void QgsSvgMarkerSymbolLayerV2::stopRender( QgsSymbolV2RenderContext& context )
|
||||
@ -1197,7 +1197,7 @@ void QgsSvgMarkerSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV2Re
|
||||
bool ok = true;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE ) )
|
||||
{
|
||||
scaledSize = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE, context.feature(), mSize, &ok ).toDouble();
|
||||
scaledSize = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE, context, mSize, &ok ).toDouble();
|
||||
}
|
||||
|
||||
if ( hasDataDefinedSize && ok )
|
||||
@ -1231,7 +1231,7 @@ void QgsSvgMarkerSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV2Re
|
||||
double angle = mAngle + mLineAngle;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE ) )
|
||||
{
|
||||
angle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE, context.feature(), mAngle ).toDouble() + mLineAngle;
|
||||
angle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE, context, mAngle ).toDouble() + mLineAngle;
|
||||
}
|
||||
|
||||
bool hasDataDefinedRotation = context.renderHints() & QgsSymbolV2::DataDefinedRotation || hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE );
|
||||
@ -1265,19 +1265,19 @@ void QgsSvgMarkerSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV2Re
|
||||
QString path = mPath;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_NAME ) )
|
||||
{
|
||||
path = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_NAME, context.feature(), mPath ).toString();
|
||||
path = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_NAME, context, mPath ).toString();
|
||||
}
|
||||
|
||||
double outlineWidth = mOutlineWidth;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH ) )
|
||||
{
|
||||
outlineWidth = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH, context.feature(), mOutlineWidth ).toDouble();
|
||||
outlineWidth = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH, context, mOutlineWidth ).toDouble();
|
||||
}
|
||||
|
||||
QColor fillColor = mFillColor;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL ) )
|
||||
{
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL, context.feature(), QVariant(), &ok ).toString();
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL, context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
fillColor = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
||||
}
|
||||
@ -1285,7 +1285,7 @@ void QgsSvgMarkerSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV2Re
|
||||
QColor outlineColor = mOutlineColor;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE ) )
|
||||
{
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE, context.feature(), QVariant(), &ok ).toString();
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE, context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
outlineColor = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
||||
}
|
||||
@ -1496,7 +1496,7 @@ QgsSymbolLayerV2* QgsSvgMarkerSymbolLayerV2::createFromSld( QDomElement &element
|
||||
return m;
|
||||
}
|
||||
|
||||
bool QgsSvgMarkerSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitScaleFactor, const QString& layerName, const QgsSymbolV2RenderContext* context, const QgsFeature* f,
|
||||
bool QgsSvgMarkerSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitScaleFactor, const QString& layerName, const QgsSymbolV2RenderContext* context, const QgsFeature*,
|
||||
const QPointF& shift ) const
|
||||
{
|
||||
Q_UNUSED( layerName );
|
||||
@ -1510,7 +1510,7 @@ bool QgsSvgMarkerSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitScale
|
||||
bool ok = true;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE ) )
|
||||
{
|
||||
size = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE, f, mSize, &ok ).toDouble();
|
||||
size = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE, *context, mSize, &ok ).toDouble();
|
||||
}
|
||||
|
||||
if ( hasDataDefinedSize && ok )
|
||||
@ -1537,7 +1537,7 @@ bool QgsSvgMarkerSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitScale
|
||||
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET ) )
|
||||
{
|
||||
QString offsetString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET, f, QVariant(), &ok ).toString();
|
||||
QString offsetString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET, *context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
offset = QgsSymbolLayerV2Utils::decodePoint( offsetString );
|
||||
}
|
||||
@ -1554,7 +1554,7 @@ bool QgsSvgMarkerSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitScale
|
||||
double angle = mAngle + mLineAngle;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE ) )
|
||||
{
|
||||
angle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE, f, mAngle ).toDouble() + mLineAngle;
|
||||
angle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE, *context, mAngle ).toDouble() + mLineAngle;
|
||||
}
|
||||
//angle = -angle; //rotation in Qt is counterclockwise
|
||||
if ( angle )
|
||||
@ -1563,19 +1563,19 @@ bool QgsSvgMarkerSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitScale
|
||||
QString path = mPath;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_NAME ) )
|
||||
{
|
||||
path = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_NAME, f, mPath ).toString();
|
||||
path = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_NAME, *context, mPath ).toString();
|
||||
}
|
||||
|
||||
double outlineWidth = mOutlineWidth;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH ) )
|
||||
{
|
||||
outlineWidth = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH, f, mOutlineWidth ).toDouble();
|
||||
outlineWidth = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH, *context, mOutlineWidth ).toDouble();
|
||||
}
|
||||
|
||||
QColor fillColor = mFillColor;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL ) )
|
||||
{
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL, f, QVariant(), &ok ).toString();
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL, *context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
fillColor = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
||||
}
|
||||
@ -1583,7 +1583,7 @@ bool QgsSvgMarkerSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitScale
|
||||
QColor outlineColor = mOutlineColor;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE ) )
|
||||
{
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE, f, QVariant(), &ok ).toString();
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE, *context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
outlineColor = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
||||
}
|
||||
@ -1698,7 +1698,7 @@ void QgsFontMarkerSymbolLayerV2::startRender( QgsSymbolV2RenderContext& context
|
||||
mFontMetrics = new QFontMetrics( mFont );
|
||||
mChrOffset = QPointF( mFontMetrics->width( mChr ) / 2.0, -mFontMetrics->ascent() / 2.0 );
|
||||
mOrigSize = mSize; // save in case the size would be data defined
|
||||
prepareExpressions( context.fields(), context.renderContext().rendererScale() );
|
||||
prepareExpressions( context );
|
||||
}
|
||||
|
||||
void QgsFontMarkerSymbolLayerV2::stopRender( QgsSymbolV2RenderContext& context )
|
||||
@ -1716,7 +1716,7 @@ void QgsFontMarkerSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV2R
|
||||
bool ok;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR ) )
|
||||
{
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context.feature(), QVariant(), &ok ).toString();
|
||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context, QVariant(), &ok ).toString();
|
||||
if ( ok )
|
||||
penColor = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
||||
}
|
||||
@ -1732,7 +1732,7 @@ void QgsFontMarkerSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV2R
|
||||
QString charToRender = mChr;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_CHAR ) )
|
||||
{
|
||||
charToRender = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_CHAR, context.feature(), mChr ).toString();
|
||||
charToRender = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_CHAR, context, mChr ).toString();
|
||||
if ( charToRender != mChr )
|
||||
{
|
||||
chrOffset = QPointF( mFontMetrics->width( charToRender ) / 2.0, -mFontMetrics->ascent() / 2.0 );
|
||||
@ -1746,7 +1746,7 @@ void QgsFontMarkerSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV2R
|
||||
ok = true;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE ) )
|
||||
{
|
||||
scaledSize = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE, context.feature(), mSize, &ok ).toDouble();
|
||||
scaledSize = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE, context, mSize, &ok ).toDouble();
|
||||
}
|
||||
|
||||
if ( hasDataDefinedSize && ok )
|
||||
@ -1770,7 +1770,7 @@ void QgsFontMarkerSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV2R
|
||||
double angle = mAngle + mLineAngle;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE ) )
|
||||
{
|
||||
angle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE, context.feature(), mAngle ).toDouble() + mLineAngle;
|
||||
angle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE, context, mAngle ).toDouble() + mLineAngle;
|
||||
}
|
||||
|
||||
bool hasDataDefinedRotation = context.renderHints() & QgsSymbolV2::DataDefinedRotation || hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE );
|
||||
|
@ -24,6 +24,7 @@
|
||||
#include "qgseffectstack.h"
|
||||
#include "qgspainteffectregistry.h"
|
||||
#include "qgsdatadefined.h"
|
||||
#include "qgsexpressioncontext.h"
|
||||
|
||||
#include <QSize>
|
||||
#include <QPainter>
|
||||
@ -189,7 +190,8 @@ QVariant QgsSymbolLayerV2::evaluateDataDefinedProperty( const QString &property,
|
||||
{
|
||||
if ( dd->expression() )
|
||||
{
|
||||
QVariant result = dd->expression()->evaluate( feature );
|
||||
QgsExpressionContext context = feature ? QgsExpressionContextUtils::createFeatureBasedContext( *feature, QgsFields() ) : QgsExpressionContext();
|
||||
QVariant result = dd->expression()->evaluate( &context );
|
||||
if ( result.isValid() )
|
||||
{
|
||||
if ( ok )
|
||||
@ -217,6 +219,47 @@ QVariant QgsSymbolLayerV2::evaluateDataDefinedProperty( const QString &property,
|
||||
return defaultVal;
|
||||
}
|
||||
|
||||
QVariant QgsSymbolLayerV2::evaluateDataDefinedProperty( const QString& property, const QgsSymbolV2RenderContext& context, const QVariant& defaultVal, bool* ok ) const
|
||||
{
|
||||
if ( ok )
|
||||
*ok = false;
|
||||
|
||||
QgsDataDefined* dd = getDataDefinedProperty( property );
|
||||
if ( !dd || !dd->isActive() )
|
||||
return defaultVal;
|
||||
|
||||
if ( dd->useExpression() )
|
||||
{
|
||||
if ( dd->expression() )
|
||||
{
|
||||
QVariant result = dd->expression()->evaluate( &context.renderContext().expressionContext() );
|
||||
if ( result.isValid() )
|
||||
{
|
||||
if ( ok )
|
||||
*ok = true;
|
||||
return result;
|
||||
}
|
||||
else
|
||||
return defaultVal;
|
||||
}
|
||||
else
|
||||
{
|
||||
return defaultVal;
|
||||
}
|
||||
}
|
||||
else if ( context.feature() && !dd->field().isEmpty() && !mFields.isEmpty() )
|
||||
{
|
||||
int attributeIndex = mFields.fieldNameIndex( dd->field() );
|
||||
if ( attributeIndex >= 0 )
|
||||
{
|
||||
if ( ok )
|
||||
*ok = true;
|
||||
return context.feature()->attribute( attributeIndex );
|
||||
}
|
||||
}
|
||||
return defaultVal;
|
||||
}
|
||||
|
||||
bool QgsSymbolLayerV2::writeDxf( QgsDxfExport& e,
|
||||
double mmMapUnitScaleFactor,
|
||||
const QString& layerName,
|
||||
@ -312,7 +355,7 @@ void QgsSymbolLayerV2::prepareExpressions( const QgsFields* fields, double scale
|
||||
|
||||
if ( fields )
|
||||
{
|
||||
it.value()->prepareExpression( *fields );
|
||||
it.value()->prepareExpression( QgsExpressionContextUtils::createFeatureBasedContext( QgsFeature(), *fields ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -328,6 +371,30 @@ void QgsSymbolLayerV2::prepareExpressions( const QgsFields* fields, double scale
|
||||
}
|
||||
}
|
||||
|
||||
void QgsSymbolLayerV2::prepareExpressions( const QgsSymbolV2RenderContext& context )
|
||||
{
|
||||
QMap< QString, QgsDataDefined* >::iterator it = mDataDefinedProperties.begin();
|
||||
for ( ; it != mDataDefinedProperties.end(); ++it )
|
||||
{
|
||||
if ( it.value() )
|
||||
{
|
||||
QMap<QString, QVariant> params;
|
||||
if ( context.renderContext().rendererScale() > 0 )
|
||||
{
|
||||
params.insert( "scale", context.renderContext().rendererScale() );
|
||||
}
|
||||
it.value()->setExpressionParams( params );
|
||||
it.value()->prepareExpression( context.renderContext().expressionContext() );
|
||||
}
|
||||
}
|
||||
|
||||
if ( context.fields() )
|
||||
{
|
||||
//QgsFields is implicitly shared, so it's cheap to make a copy
|
||||
mFields = *context.fields();
|
||||
}
|
||||
}
|
||||
|
||||
QgsSymbolLayerV2::~QgsSymbolLayerV2()
|
||||
{
|
||||
removeDataDefinedProperties();
|
||||
@ -475,7 +542,7 @@ void QgsMarkerSymbolLayerV2::markerOffset( const QgsSymbolV2RenderContext& conte
|
||||
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET ) )
|
||||
{
|
||||
QPointF offset = QgsSymbolLayerV2Utils::decodePoint( evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET, context.feature() ).toString() );
|
||||
QPointF offset = QgsSymbolLayerV2Utils::decodePoint( evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET, context ).toString() );
|
||||
offsetX = offset.x();
|
||||
offsetY = offset.y();
|
||||
}
|
||||
@ -487,11 +554,11 @@ void QgsMarkerSymbolLayerV2::markerOffset( const QgsSymbolV2RenderContext& conte
|
||||
VerticalAnchorPoint verticalAnchorPoint = mVerticalAnchorPoint;
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_HORIZONTAL_ANCHOR_POINT ) )
|
||||
{
|
||||
horizontalAnchorPoint = decodeHorizontalAnchorPoint( evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_HORIZONTAL_ANCHOR_POINT , context.feature() ).toString() );
|
||||
horizontalAnchorPoint = decodeHorizontalAnchorPoint( evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_HORIZONTAL_ANCHOR_POINT , context ).toString() );
|
||||
}
|
||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_VERTICAL_ANCHOR_POINT ) )
|
||||
{
|
||||
verticalAnchorPoint = decodeVerticalAnchorPoint( evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_VERTICAL_ANCHOR_POINT, context.feature() ).toString() );
|
||||
verticalAnchorPoint = decodeVerticalAnchorPoint( evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_VERTICAL_ANCHOR_POINT, context ).toString() );
|
||||
}
|
||||
|
||||
//correct horizontal position according to anchor point
|
||||
|
@ -199,7 +199,22 @@ class CORE_EXPORT QgsSymbolLayerV2
|
||||
* @see getDataDefinedProperty
|
||||
* @note added in QGIS 2.9
|
||||
*/
|
||||
virtual QVariant evaluateDataDefinedProperty( const QString& property, const QgsFeature* feature, const QVariant& defaultVal = QVariant(), bool *ok = 0 ) const;
|
||||
Q_DECL_DEPRECATED virtual QVariant evaluateDataDefinedProperty( const QString& property, const QgsFeature* feature, const QVariant& defaultVal = QVariant(), bool *ok = 0 ) const;
|
||||
|
||||
/** Evaluates the matching data defined property and returns the calculated
|
||||
* value. Prior to evaluation the data defined property must be prepared
|
||||
* by calling @link prepareExpressions @endlink.
|
||||
* @param property property key
|
||||
* @param context symbol render context
|
||||
* @param defaultVal default value to return if evaluation was not successful
|
||||
* @param ok if specified, will be set to true if evaluation was successful
|
||||
* @returns calculated value for data defined property, or default value
|
||||
* if property does not exist or is deactived.
|
||||
* @see hasDataDefinedProperty
|
||||
* @see getDataDefinedProperty
|
||||
* @note added in QGIS 2.12
|
||||
*/
|
||||
virtual QVariant evaluateDataDefinedProperty( const QString& property, const QgsSymbolV2RenderContext& context, const QVariant& defaultVal = QVariant(), bool *ok = 0 ) const;
|
||||
|
||||
virtual bool writeDxf( QgsDxfExport& e,
|
||||
double mmMapUnitScaleFactor,
|
||||
@ -254,7 +269,14 @@ class CORE_EXPORT QgsSymbolLayerV2
|
||||
* @param fields associated layer fields
|
||||
* @param scale map scale
|
||||
*/
|
||||
virtual void prepareExpressions( const QgsFields* fields, double scale = -1.0 );
|
||||
Q_DECL_DEPRECATED virtual void prepareExpressions( const QgsFields* fields, double scale = -1.0 );
|
||||
|
||||
/** Prepares all data defined property expressions for evaluation. This should
|
||||
* be called prior to evaluating data defined properties.
|
||||
* @param context symbol render context
|
||||
* @note added in QGIS 2.12
|
||||
*/
|
||||
virtual void prepareExpressions( const QgsSymbolV2RenderContext& context );
|
||||
|
||||
/** Returns the data defined expression associated with a property
|
||||
* @deprecated use getDataDefinedProperty or evaluateDataDefinedProperty instead
|
||||
|
Loading…
x
Reference in New Issue
Block a user