mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-16 00:03:12 -04:00
Finish implementation of @value context variable
This commit is contained in:
parent
5cfdea569b
commit
a8f8cfefe5
@ -376,6 +376,13 @@ class QgsExpressionContext
|
|||||||
*/
|
*/
|
||||||
QgsFields fields() const;
|
QgsFields fields() const;
|
||||||
|
|
||||||
|
/** Sets the original value variable value for the context.
|
||||||
|
* @param value value for original value variable. This usually represents the an original widget
|
||||||
|
* value before any data defined overrides have been applied.
|
||||||
|
* @note added in QGIS 2.12
|
||||||
|
*/
|
||||||
|
void setOriginalValueVariable( const QVariant& value );
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/** \ingroup core
|
/** \ingroup core
|
||||||
|
@ -188,6 +188,13 @@ class QgsSymbolV2RenderContext
|
|||||||
QgsRenderContext& renderContext();
|
QgsRenderContext& renderContext();
|
||||||
//void setRenderContext( QgsRenderContext& c );
|
//void setRenderContext( QgsRenderContext& c );
|
||||||
|
|
||||||
|
/** Sets the original value variable value for data defined symbology
|
||||||
|
* @param value value for original value variable. This usually represents the symbol property value
|
||||||
|
* before any data defined overrides have been applied.
|
||||||
|
* @note added in QGIS 2.12
|
||||||
|
*/
|
||||||
|
void setOriginalValueVariable( const QVariant& value );
|
||||||
|
|
||||||
QgsSymbolV2::OutputUnit outputUnit() const;
|
QgsSymbolV2::OutputUnit outputUnit() const;
|
||||||
void setOutputUnit( QgsSymbolV2::OutputUnit u );
|
void setOutputUnit( QgsSymbolV2::OutputUnit u );
|
||||||
|
|
||||||
|
@ -50,6 +50,10 @@ static QgsExpressionContext _getExpressionContext( const void* context )
|
|||||||
if ( layer )
|
if ( layer )
|
||||||
expContext << QgsExpressionContextUtils::layerScope( layer );
|
expContext << QgsExpressionContextUtils::layerScope( layer );
|
||||||
|
|
||||||
|
//TODO - show actual value
|
||||||
|
expContext.setOriginalValueVariable( QVariant() );
|
||||||
|
expContext.setHighlightedVariables( QStringList() << QgsExpressionContext::EXPR_ORIGINAL_VALUE );
|
||||||
|
|
||||||
return expContext;
|
return expContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
|
|
||||||
const QString QgsExpressionContext::EXPR_FIELDS( "_fields_" );
|
const QString QgsExpressionContext::EXPR_FIELDS( "_fields_" );
|
||||||
const QString QgsExpressionContext::EXPR_FEATURE( "_feature_" );
|
const QString QgsExpressionContext::EXPR_FEATURE( "_feature_" );
|
||||||
|
const QString QgsExpressionContext::EXPR_ORIGINAL_VALUE( "value" );
|
||||||
|
|
||||||
//
|
//
|
||||||
// QgsExpressionContextScope
|
// QgsExpressionContextScope
|
||||||
@ -413,6 +414,14 @@ QgsFields QgsExpressionContext::fields() const
|
|||||||
return qvariant_cast<QgsFields>( variable( QgsExpressionContext::EXPR_FIELDS ) );
|
return qvariant_cast<QgsFields>( variable( QgsExpressionContext::EXPR_FIELDS ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void QgsExpressionContext::setOriginalValueVariable( const QVariant &value )
|
||||||
|
{
|
||||||
|
if ( mStack.isEmpty() )
|
||||||
|
mStack.append( new QgsExpressionContextScope() );
|
||||||
|
|
||||||
|
mStack.last()->setVariable( QgsExpressionContext::EXPR_ORIGINAL_VALUE, value );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// QgsExpressionContextUtils
|
// QgsExpressionContextUtils
|
||||||
|
@ -410,8 +410,16 @@ class CORE_EXPORT QgsExpressionContext
|
|||||||
*/
|
*/
|
||||||
QgsFields fields() const;
|
QgsFields fields() const;
|
||||||
|
|
||||||
|
/** Sets the original value variable value for the context.
|
||||||
|
* @param value value for original value variable. This usually represents the an original widget
|
||||||
|
* value before any data defined overrides have been applied.
|
||||||
|
* @note added in QGIS 2.12
|
||||||
|
*/
|
||||||
|
void setOriginalValueVariable( const QVariant& value );
|
||||||
|
|
||||||
static const QString EXPR_FIELDS;
|
static const QString EXPR_FIELDS;
|
||||||
static const QString EXPR_FEATURE;
|
static const QString EXPR_FEATURE;
|
||||||
|
static const QString EXPR_ORIGINAL_VALUE;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
@ -1652,7 +1652,7 @@ QVariant QgsPalLayerSettings::dataDefinedValue( DataDefinedProperties p, QgsFeat
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool QgsPalLayerSettings::dataDefinedEvaluate( DataDefinedProperties p, QVariant& exprVal, const QgsExpressionContext* context ) const
|
bool QgsPalLayerSettings::dataDefinedEvaluate( DataDefinedProperties p, QVariant& exprVal, QgsExpressionContext *context, QVariant originalValue ) const
|
||||||
{
|
{
|
||||||
// null passed-around QVariant
|
// null passed-around QVariant
|
||||||
exprVal.clear();
|
exprVal.clear();
|
||||||
@ -1668,8 +1668,9 @@ bool QgsPalLayerSettings::dataDefinedEvaluate( DataDefinedProperties p, QVariant
|
|||||||
scopedEc->setFeature( *mCurFeat );
|
scopedEc->setFeature( *mCurFeat );
|
||||||
scopedEc->setFields( mCurFields );
|
scopedEc->setFields( mCurFields );
|
||||||
}
|
}
|
||||||
const QgsExpressionContext* ec = context ? context : scopedEc.data();
|
QgsExpressionContext* ec = context ? context : scopedEc.data();
|
||||||
|
|
||||||
|
ec->setOriginalValueVariable( originalValue );
|
||||||
QVariant result = dataDefinedValue( p, *mCurFeat, mCurFields, ec );
|
QVariant result = dataDefinedValue( p, *mCurFeat, mCurFields, ec );
|
||||||
|
|
||||||
if ( result.isValid() && !result.isNull() )
|
if ( result.isValid() && !result.isNull() )
|
||||||
@ -1734,7 +1735,7 @@ void QgsPalLayerSettings::calculateLabelSize( const QFontMetricsF* fm, QString t
|
|||||||
if ( f )
|
if ( f )
|
||||||
scopedRc->expressionContext().setFeature( *f );
|
scopedRc->expressionContext().setFeature( *f );
|
||||||
}
|
}
|
||||||
const QgsRenderContext* rc = context ? context : scopedRc.data();
|
QgsRenderContext* rc = context ? context : scopedRc.data();
|
||||||
|
|
||||||
QString wrapchr = wrapChar;
|
QString wrapchr = wrapChar;
|
||||||
double multilineH = multilineHeight;
|
double multilineH = multilineHeight;
|
||||||
@ -1783,12 +1784,14 @@ void QgsPalLayerSettings::calculateLabelSize( const QFontMetricsF* fm, QString t
|
|||||||
}
|
}
|
||||||
else // called externally with passed-in feature, evaluate data defined
|
else // called externally with passed-in feature, evaluate data defined
|
||||||
{
|
{
|
||||||
|
rc->expressionContext().setOriginalValueVariable( wrapChar );
|
||||||
QVariant exprVal = dataDefinedValue( QgsPalLayerSettings::MultiLineWrapChar, *f, mCurFields, &rc->expressionContext() );
|
QVariant exprVal = dataDefinedValue( QgsPalLayerSettings::MultiLineWrapChar, *f, mCurFields, &rc->expressionContext() );
|
||||||
if ( exprVal.isValid() )
|
if ( exprVal.isValid() )
|
||||||
{
|
{
|
||||||
wrapchr = exprVal.toString();
|
wrapchr = exprVal.toString();
|
||||||
}
|
}
|
||||||
exprVal.clear();
|
exprVal.clear();
|
||||||
|
rc->expressionContext().setOriginalValueVariable( multilineH );
|
||||||
exprVal = dataDefinedValue( QgsPalLayerSettings::MultiLineHeight, *f, mCurFields, &rc->expressionContext() );
|
exprVal = dataDefinedValue( QgsPalLayerSettings::MultiLineHeight, *f, mCurFields, &rc->expressionContext() );
|
||||||
if ( exprVal.isValid() )
|
if ( exprVal.isValid() )
|
||||||
{
|
{
|
||||||
@ -1801,6 +1804,7 @@ void QgsPalLayerSettings::calculateLabelSize( const QFontMetricsF* fm, QString t
|
|||||||
}
|
}
|
||||||
|
|
||||||
exprVal.clear();
|
exprVal.clear();
|
||||||
|
rc->expressionContext().setOriginalValueVariable( addDirSymb );
|
||||||
exprVal = dataDefinedValue( QgsPalLayerSettings::DirSymbDraw, *f, mCurFields, &rc->expressionContext() );
|
exprVal = dataDefinedValue( QgsPalLayerSettings::DirSymbDraw, *f, mCurFields, &rc->expressionContext() );
|
||||||
if ( exprVal.isValid() )
|
if ( exprVal.isValid() )
|
||||||
{
|
{
|
||||||
@ -1810,18 +1814,21 @@ void QgsPalLayerSettings::calculateLabelSize( const QFontMetricsF* fm, QString t
|
|||||||
if ( addDirSymb ) // don't do extra evaluations if not adding a direction symbol
|
if ( addDirSymb ) // don't do extra evaluations if not adding a direction symbol
|
||||||
{
|
{
|
||||||
exprVal.clear();
|
exprVal.clear();
|
||||||
|
rc->expressionContext().setOriginalValueVariable( leftDirSymb );
|
||||||
exprVal = dataDefinedValue( QgsPalLayerSettings::DirSymbLeft, *f, mCurFields, &rc->expressionContext() );
|
exprVal = dataDefinedValue( QgsPalLayerSettings::DirSymbLeft, *f, mCurFields, &rc->expressionContext() );
|
||||||
if ( exprVal.isValid() )
|
if ( exprVal.isValid() )
|
||||||
{
|
{
|
||||||
leftDirSymb = exprVal.toString();
|
leftDirSymb = exprVal.toString();
|
||||||
}
|
}
|
||||||
exprVal.clear();
|
exprVal.clear();
|
||||||
|
rc->expressionContext().setOriginalValueVariable( rightDirSymb );
|
||||||
exprVal = dataDefinedValue( QgsPalLayerSettings::DirSymbRight, *f, mCurFields, &rc->expressionContext() );
|
exprVal = dataDefinedValue( QgsPalLayerSettings::DirSymbRight, *f, mCurFields, &rc->expressionContext() );
|
||||||
if ( exprVal.isValid() )
|
if ( exprVal.isValid() )
|
||||||
{
|
{
|
||||||
rightDirSymb = exprVal.toString();
|
rightDirSymb = exprVal.toString();
|
||||||
}
|
}
|
||||||
exprVal.clear();
|
exprVal.clear();
|
||||||
|
rc->expressionContext().setOriginalValueVariable(( int )placeDirSymb );
|
||||||
exprVal = dataDefinedValue( QgsPalLayerSettings::DirSymbPlacement, *f, mCurFields, &rc->expressionContext() );
|
exprVal = dataDefinedValue( QgsPalLayerSettings::DirSymbPlacement, *f, mCurFields, &rc->expressionContext() );
|
||||||
if ( exprVal.isValid() )
|
if ( exprVal.isValid() )
|
||||||
{
|
{
|
||||||
@ -1917,7 +1924,7 @@ void QgsPalLayerSettings::registerFeature( QgsFeature& f, QgsRenderContext &cont
|
|||||||
// data defined show label? defaults to show label if not 0
|
// data defined show label? defaults to show label if not 0
|
||||||
if ( dataDefinedIsActive( QgsPalLayerSettings::Show ) )
|
if ( dataDefinedIsActive( QgsPalLayerSettings::Show ) )
|
||||||
{
|
{
|
||||||
bool showLabel = dataDefinedEvaluate( QgsPalLayerSettings::Show, exprVal, &context.expressionContext() );
|
bool showLabel = dataDefinedEvaluate( QgsPalLayerSettings::Show, exprVal, &context.expressionContext(), true );
|
||||||
showLabel = exprVal.toBool();
|
showLabel = exprVal.toBool();
|
||||||
QgsDebugMsgLevel( QString( "exprVal Show:%1" ).arg( showLabel ? "true" : "false" ), 4 );
|
QgsDebugMsgLevel( QString( "exprVal Show:%1" ).arg( showLabel ? "true" : "false" ), 4 );
|
||||||
if ( !showLabel )
|
if ( !showLabel )
|
||||||
@ -1928,7 +1935,7 @@ void QgsPalLayerSettings::registerFeature( QgsFeature& f, QgsRenderContext &cont
|
|||||||
|
|
||||||
// data defined scale visibility?
|
// data defined scale visibility?
|
||||||
bool useScaleVisibility = scaleVisibility;
|
bool useScaleVisibility = scaleVisibility;
|
||||||
if ( dataDefinedEvaluate( QgsPalLayerSettings::ScaleVisibility, exprVal, &context.expressionContext() ) )
|
if ( dataDefinedEvaluate( QgsPalLayerSettings::ScaleVisibility, exprVal, &context.expressionContext(), scaleVisibility ) )
|
||||||
{
|
{
|
||||||
QgsDebugMsgLevel( QString( "exprVal ScaleVisibility:%1" ).arg( exprVal.toBool() ? "true" : "false" ), 4 );
|
QgsDebugMsgLevel( QString( "exprVal ScaleVisibility:%1" ).arg( exprVal.toBool() ? "true" : "false" ), 4 );
|
||||||
useScaleVisibility = exprVal.toBool();
|
useScaleVisibility = exprVal.toBool();
|
||||||
@ -1938,7 +1945,7 @@ void QgsPalLayerSettings::registerFeature( QgsFeature& f, QgsRenderContext &cont
|
|||||||
{
|
{
|
||||||
// data defined min scale?
|
// data defined min scale?
|
||||||
double minScale = scaleMin;
|
double minScale = scaleMin;
|
||||||
if ( dataDefinedEvaluate( QgsPalLayerSettings::MinScale, exprVal, &context.expressionContext() ) )
|
if ( dataDefinedEvaluate( QgsPalLayerSettings::MinScale, exprVal, &context.expressionContext(), scaleMin ) )
|
||||||
{
|
{
|
||||||
QgsDebugMsgLevel( QString( "exprVal MinScale:%1" ).arg( exprVal.toDouble() ), 4 );
|
QgsDebugMsgLevel( QString( "exprVal MinScale:%1" ).arg( exprVal.toDouble() ), 4 );
|
||||||
bool conversionOk;
|
bool conversionOk;
|
||||||
@ -1962,7 +1969,7 @@ void QgsPalLayerSettings::registerFeature( QgsFeature& f, QgsRenderContext &cont
|
|||||||
|
|
||||||
// data defined max scale?
|
// data defined max scale?
|
||||||
double maxScale = scaleMax;
|
double maxScale = scaleMax;
|
||||||
if ( dataDefinedEvaluate( QgsPalLayerSettings::MaxScale, exprVal, &context.expressionContext() ) )
|
if ( dataDefinedEvaluate( QgsPalLayerSettings::MaxScale, exprVal, &context.expressionContext(), scaleMax ) )
|
||||||
{
|
{
|
||||||
QgsDebugMsgLevel( QString( "exprVal MaxScale:%1" ).arg( exprVal.toDouble() ), 4 );
|
QgsDebugMsgLevel( QString( "exprVal MaxScale:%1" ).arg( exprVal.toDouble() ), 4 );
|
||||||
bool conversionOk;
|
bool conversionOk;
|
||||||
@ -2002,7 +2009,7 @@ void QgsPalLayerSettings::registerFeature( QgsFeature& f, QgsRenderContext &cont
|
|||||||
|
|
||||||
//data defined label size?
|
//data defined label size?
|
||||||
double fontSize = labelFont.pointSizeF(); // font size doesn't have its own class data member
|
double fontSize = labelFont.pointSizeF(); // font size doesn't have its own class data member
|
||||||
if ( dataDefinedEvaluate( QgsPalLayerSettings::Size, exprVal, &context.expressionContext() ) )
|
if ( dataDefinedEvaluate( QgsPalLayerSettings::Size, exprVal, &context.expressionContext(), fontSize ) )
|
||||||
{
|
{
|
||||||
QgsDebugMsgLevel( QString( "exprVal Size:%1" ).arg( exprVal.toDouble() ), 4 );
|
QgsDebugMsgLevel( QString( "exprVal Size:%1" ).arg( exprVal.toDouble() ), 4 );
|
||||||
bool ok;
|
bool ok;
|
||||||
@ -2031,7 +2038,7 @@ void QgsPalLayerSettings::registerFeature( QgsFeature& f, QgsRenderContext &cont
|
|||||||
if ( fontunits == QgsPalLayerSettings::MapUnits )
|
if ( fontunits == QgsPalLayerSettings::MapUnits )
|
||||||
{
|
{
|
||||||
bool useFontLimitPixelSize = fontLimitPixelSize;
|
bool useFontLimitPixelSize = fontLimitPixelSize;
|
||||||
if ( dataDefinedEvaluate( QgsPalLayerSettings::FontLimitPixel, exprVal, &context.expressionContext() ) )
|
if ( dataDefinedEvaluate( QgsPalLayerSettings::FontLimitPixel, exprVal, &context.expressionContext(), fontLimitPixelSize ) )
|
||||||
{
|
{
|
||||||
QgsDebugMsgLevel( QString( "exprVal FontLimitPixel:%1" ).arg( exprVal.toBool() ? "true" : "false" ), 4 );
|
QgsDebugMsgLevel( QString( "exprVal FontLimitPixel:%1" ).arg( exprVal.toBool() ? "true" : "false" ), 4 );
|
||||||
useFontLimitPixelSize = exprVal.toBool();
|
useFontLimitPixelSize = exprVal.toBool();
|
||||||
@ -2040,7 +2047,7 @@ void QgsPalLayerSettings::registerFeature( QgsFeature& f, QgsRenderContext &cont
|
|||||||
if ( useFontLimitPixelSize )
|
if ( useFontLimitPixelSize )
|
||||||
{
|
{
|
||||||
int fontMinPixel = fontMinPixelSize;
|
int fontMinPixel = fontMinPixelSize;
|
||||||
if ( dataDefinedEvaluate( QgsPalLayerSettings::FontMinPixel, exprVal, &context.expressionContext() ) )
|
if ( dataDefinedEvaluate( QgsPalLayerSettings::FontMinPixel, exprVal, &context.expressionContext(), fontMinPixelSize ) )
|
||||||
{
|
{
|
||||||
bool ok;
|
bool ok;
|
||||||
int sizeInt = exprVal.toInt( &ok );
|
int sizeInt = exprVal.toInt( &ok );
|
||||||
@ -2052,7 +2059,7 @@ void QgsPalLayerSettings::registerFeature( QgsFeature& f, QgsRenderContext &cont
|
|||||||
}
|
}
|
||||||
|
|
||||||
int fontMaxPixel = fontMaxPixelSize;
|
int fontMaxPixel = fontMaxPixelSize;
|
||||||
if ( dataDefinedEvaluate( QgsPalLayerSettings::FontMaxPixel, exprVal, &context.expressionContext() ) )
|
if ( dataDefinedEvaluate( QgsPalLayerSettings::FontMaxPixel, exprVal, &context.expressionContext(), fontMaxPixelSize ) )
|
||||||
{
|
{
|
||||||
bool ok;
|
bool ok;
|
||||||
int sizeInt = exprVal.toInt( &ok );
|
int sizeInt = exprVal.toInt( &ok );
|
||||||
@ -2110,7 +2117,7 @@ void QgsPalLayerSettings::registerFeature( QgsFeature& f, QgsRenderContext &cont
|
|||||||
|
|
||||||
// data defined format numbers?
|
// data defined format numbers?
|
||||||
bool formatnum = formatNumbers;
|
bool formatnum = formatNumbers;
|
||||||
if ( dataDefinedEvaluate( QgsPalLayerSettings::NumFormat, exprVal, &context.expressionContext() ) )
|
if ( dataDefinedEvaluate( QgsPalLayerSettings::NumFormat, exprVal, &context.expressionContext(), formatNumbers ) )
|
||||||
{
|
{
|
||||||
formatnum = exprVal.toBool();
|
formatnum = exprVal.toBool();
|
||||||
QgsDebugMsgLevel( QString( "exprVal NumFormat:%1" ).arg( formatnum ? "true" : "false" ), 4 );
|
QgsDebugMsgLevel( QString( "exprVal NumFormat:%1" ).arg( formatnum ? "true" : "false" ), 4 );
|
||||||
@ -2121,7 +2128,7 @@ void QgsPalLayerSettings::registerFeature( QgsFeature& f, QgsRenderContext &cont
|
|||||||
{
|
{
|
||||||
// data defined decimal places?
|
// data defined decimal places?
|
||||||
int decimalPlaces = decimals;
|
int decimalPlaces = decimals;
|
||||||
if ( dataDefinedEvaluate( QgsPalLayerSettings::NumDecimals, exprVal, &context.expressionContext() ) )
|
if ( dataDefinedEvaluate( QgsPalLayerSettings::NumDecimals, exprVal, &context.expressionContext(), decimals ) )
|
||||||
{
|
{
|
||||||
bool ok;
|
bool ok;
|
||||||
int dInt = exprVal.toInt( &ok );
|
int dInt = exprVal.toInt( &ok );
|
||||||
@ -2134,7 +2141,7 @@ void QgsPalLayerSettings::registerFeature( QgsFeature& f, QgsRenderContext &cont
|
|||||||
|
|
||||||
// data defined plus sign?
|
// data defined plus sign?
|
||||||
bool signPlus = plusSign;
|
bool signPlus = plusSign;
|
||||||
if ( dataDefinedEvaluate( QgsPalLayerSettings::NumPlusSign, exprVal, &context.expressionContext() ) )
|
if ( dataDefinedEvaluate( QgsPalLayerSettings::NumPlusSign, exprVal, &context.expressionContext(), plusSign ) )
|
||||||
{
|
{
|
||||||
signPlus = exprVal.toBool();
|
signPlus = exprVal.toBool();
|
||||||
QgsDebugMsgLevel( QString( "exprVal NumPlusSign:%1" ).arg( signPlus ? "true" : "false" ), 4 );
|
QgsDebugMsgLevel( QString( "exprVal NumPlusSign:%1" ).arg( signPlus ? "true" : "false" ), 4 );
|
||||||
@ -2191,7 +2198,7 @@ void QgsPalLayerSettings::registerFeature( QgsFeature& f, QgsRenderContext &cont
|
|||||||
|
|
||||||
// data defined centroid whole or clipped?
|
// data defined centroid whole or clipped?
|
||||||
bool wholeCentroid = centroidWhole;
|
bool wholeCentroid = centroidWhole;
|
||||||
if ( dataDefinedEvaluate( QgsPalLayerSettings::CentroidWhole, exprVal, &context.expressionContext() ) )
|
if ( dataDefinedEvaluate( QgsPalLayerSettings::CentroidWhole, exprVal, &context.expressionContext(), centroidWhole ) )
|
||||||
{
|
{
|
||||||
QString str = exprVal.toString().trimmed();
|
QString str = exprVal.toString().trimmed();
|
||||||
QgsDebugMsgLevel( QString( "exprVal CentroidWhole:%1" ).arg( str ), 4 );
|
QgsDebugMsgLevel( QString( "exprVal CentroidWhole:%1" ).arg( str ), 4 );
|
||||||
@ -2298,7 +2305,7 @@ void QgsPalLayerSettings::registerFeature( QgsFeature& f, QgsRenderContext &cont
|
|||||||
//data defined quadrant offset?
|
//data defined quadrant offset?
|
||||||
bool ddFixedQuad = false;
|
bool ddFixedQuad = false;
|
||||||
QuadrantPosition quadOff = quadOffset;
|
QuadrantPosition quadOff = quadOffset;
|
||||||
if ( dataDefinedEvaluate( QgsPalLayerSettings::OffsetQuad, exprVal, &context.expressionContext() ) )
|
if ( dataDefinedEvaluate( QgsPalLayerSettings::OffsetQuad, exprVal, &context.expressionContext(), ( int )quadOff ) )
|
||||||
{
|
{
|
||||||
bool ok;
|
bool ok;
|
||||||
int quadInt = exprVal.toInt( &ok );
|
int quadInt = exprVal.toInt( &ok );
|
||||||
@ -2353,7 +2360,7 @@ void QgsPalLayerSettings::registerFeature( QgsFeature& f, QgsRenderContext &cont
|
|||||||
//data defined label offset?
|
//data defined label offset?
|
||||||
double xOff = xOffset;
|
double xOff = xOffset;
|
||||||
double yOff = yOffset;
|
double yOff = yOffset;
|
||||||
if ( dataDefinedEvaluate( QgsPalLayerSettings::OffsetXY, exprVal, &context.expressionContext() ) )
|
if ( dataDefinedEvaluate( QgsPalLayerSettings::OffsetXY, exprVal, &context.expressionContext(), QgsSymbolLayerV2Utils::encodePoint( QPointF( xOffset, yOffset ) ) ) )
|
||||||
{
|
{
|
||||||
QString ptstr = exprVal.toString().trimmed();
|
QString ptstr = exprVal.toString().trimmed();
|
||||||
QgsDebugMsgLevel( QString( "exprVal OffsetXY:%1" ).arg( ptstr ), 4 );
|
QgsDebugMsgLevel( QString( "exprVal OffsetXY:%1" ).arg( ptstr ), 4 );
|
||||||
@ -2408,7 +2415,7 @@ void QgsPalLayerSettings::registerFeature( QgsFeature& f, QgsRenderContext &cont
|
|||||||
|
|
||||||
const QgsMapToPixel& m2p = context.mapToPixel();
|
const QgsMapToPixel& m2p = context.mapToPixel();
|
||||||
//data defined rotation?
|
//data defined rotation?
|
||||||
if ( dataDefinedEvaluate( QgsPalLayerSettings::Rotation, exprVal, &context.expressionContext() ) )
|
if ( dataDefinedEvaluate( QgsPalLayerSettings::Rotation, exprVal, &context.expressionContext(), angleOffset ) )
|
||||||
{
|
{
|
||||||
bool ok;
|
bool ok;
|
||||||
double rotD = exprVal.toDouble( &ok );
|
double rotD = exprVal.toDouble( &ok );
|
||||||
@ -2559,7 +2566,7 @@ void QgsPalLayerSettings::registerFeature( QgsFeature& f, QgsRenderContext &cont
|
|||||||
// set repeat distance
|
// set repeat distance
|
||||||
// data defined repeat distance?
|
// data defined repeat distance?
|
||||||
double repeatDist = repeatDistance;
|
double repeatDist = repeatDistance;
|
||||||
if ( dataDefinedEvaluate( QgsPalLayerSettings::RepeatDistance, exprVal, &context.expressionContext() ) )
|
if ( dataDefinedEvaluate( QgsPalLayerSettings::RepeatDistance, exprVal, &context.expressionContext(), repeatDistance ) )
|
||||||
{
|
{
|
||||||
bool ok;
|
bool ok;
|
||||||
double distD = exprVal.toDouble( &ok );
|
double distD = exprVal.toDouble( &ok );
|
||||||
@ -2618,7 +2625,7 @@ void QgsPalLayerSettings::registerFeature( QgsFeature& f, QgsRenderContext &cont
|
|||||||
|
|
||||||
// data defined label-feature distance?
|
// data defined label-feature distance?
|
||||||
double distance = dist;
|
double distance = dist;
|
||||||
if ( dataDefinedEvaluate( QgsPalLayerSettings::LabelDistance, exprVal, &context.expressionContext() ) )
|
if ( dataDefinedEvaluate( QgsPalLayerSettings::LabelDistance, exprVal, &context.expressionContext(), dist ) )
|
||||||
{
|
{
|
||||||
bool ok;
|
bool ok;
|
||||||
double distD = exprVal.toDouble( &ok );
|
double distD = exprVal.toDouble( &ok );
|
||||||
@ -2660,7 +2667,7 @@ void QgsPalLayerSettings::registerFeature( QgsFeature& f, QgsRenderContext &cont
|
|||||||
}
|
}
|
||||||
|
|
||||||
// data defined priority?
|
// data defined priority?
|
||||||
if ( dataDefinedEvaluate( QgsPalLayerSettings::Priority, exprVal, &context.expressionContext() ) )
|
if ( dataDefinedEvaluate( QgsPalLayerSettings::Priority, exprVal, &context.expressionContext(), priority ) )
|
||||||
{
|
{
|
||||||
bool ok;
|
bool ok;
|
||||||
double priorityD = exprVal.toDouble( &ok );
|
double priorityD = exprVal.toDouble( &ok );
|
||||||
@ -2674,7 +2681,7 @@ void QgsPalLayerSettings::registerFeature( QgsFeature& f, QgsRenderContext &cont
|
|||||||
|
|
||||||
// data defined is obstacle?
|
// data defined is obstacle?
|
||||||
bool isObstacle = obstacle; // start with layer default
|
bool isObstacle = obstacle; // start with layer default
|
||||||
if ( dataDefinedEvaluate( QgsPalLayerSettings::IsObstacle, exprVal, &context.expressionContext() ) )
|
if ( dataDefinedEvaluate( QgsPalLayerSettings::IsObstacle, exprVal, &context.expressionContext(), obstacle ) )
|
||||||
{
|
{
|
||||||
isObstacle = exprVal.toBool();
|
isObstacle = exprVal.toBool();
|
||||||
}
|
}
|
||||||
@ -2682,7 +2689,7 @@ void QgsPalLayerSettings::registerFeature( QgsFeature& f, QgsRenderContext &cont
|
|||||||
( *labelFeature )->setIsObstacle( isObstacle );
|
( *labelFeature )->setIsObstacle( isObstacle );
|
||||||
|
|
||||||
double featObstacleFactor = obstacleFactor;
|
double featObstacleFactor = obstacleFactor;
|
||||||
if ( dataDefinedEvaluate( QgsPalLayerSettings::ObstacleFactor, exprVal, &context.expressionContext() ) )
|
if ( dataDefinedEvaluate( QgsPalLayerSettings::ObstacleFactor, exprVal, &context.expressionContext(), obstacleFactor ) )
|
||||||
{
|
{
|
||||||
bool ok;
|
bool ok;
|
||||||
double factorD = exprVal.toDouble( &ok );
|
double factorD = exprVal.toDouble( &ok );
|
||||||
@ -2741,9 +2748,9 @@ void QgsPalLayerSettings::registerObstacleFeature( QgsFeature& f, QgsRenderConte
|
|||||||
|
|
||||||
bool QgsPalLayerSettings::dataDefinedValEval( DataDefinedValueType valType,
|
bool QgsPalLayerSettings::dataDefinedValEval( DataDefinedValueType valType,
|
||||||
QgsPalLayerSettings::DataDefinedProperties p,
|
QgsPalLayerSettings::DataDefinedProperties p,
|
||||||
QVariant& exprVal, const QgsExpressionContext& context )
|
QVariant& exprVal, QgsExpressionContext& context, QVariant originalValue )
|
||||||
{
|
{
|
||||||
if ( dataDefinedEvaluate( p, exprVal, &context ) )
|
if ( dataDefinedEvaluate( p, exprVal, &context, originalValue ) )
|
||||||
{
|
{
|
||||||
QString dbgStr = QString( "exprVal %1:" ).arg( mDataDefinedNames.value( p ).first ) + "%1";
|
QString dbgStr = QString( "exprVal %1:" ).arg( mDataDefinedNames.value( p ).first ) + "%1";
|
||||||
|
|
||||||
@ -2931,7 +2938,7 @@ void QgsPalLayerSettings::parseTextStyle( QFont& labelFont,
|
|||||||
|
|
||||||
// data defined font family?
|
// data defined font family?
|
||||||
QString ddFontFamily( "" );
|
QString ddFontFamily( "" );
|
||||||
if ( dataDefinedEvaluate( QgsPalLayerSettings::Family, exprVal, &context.expressionContext() ) )
|
if ( dataDefinedEvaluate( QgsPalLayerSettings::Family, exprVal, &context.expressionContext(), labelFont.family() ) )
|
||||||
{
|
{
|
||||||
QString family = exprVal.toString().trimmed();
|
QString family = exprVal.toString().trimmed();
|
||||||
QgsDebugMsgLevel( QString( "exprVal Font family:%1" ).arg( family ), 4 );
|
QgsDebugMsgLevel( QString( "exprVal Font family:%1" ).arg( family ), 4 );
|
||||||
@ -2958,7 +2965,7 @@ void QgsPalLayerSettings::parseTextStyle( QFont& labelFont,
|
|||||||
|
|
||||||
// data defined bold font style?
|
// data defined bold font style?
|
||||||
bool ddBold = false;
|
bool ddBold = false;
|
||||||
if ( dataDefinedEvaluate( QgsPalLayerSettings::Bold, exprVal, &context.expressionContext() ) )
|
if ( dataDefinedEvaluate( QgsPalLayerSettings::Bold, exprVal, &context.expressionContext(), labelFont.bold() ) )
|
||||||
{
|
{
|
||||||
bool bold = exprVal.toBool();
|
bool bold = exprVal.toBool();
|
||||||
QgsDebugMsgLevel( QString( "exprVal Font bold:%1" ).arg( bold ? "true" : "false" ), 4 );
|
QgsDebugMsgLevel( QString( "exprVal Font bold:%1" ).arg( bold ? "true" : "false" ), 4 );
|
||||||
@ -2967,7 +2974,7 @@ void QgsPalLayerSettings::parseTextStyle( QFont& labelFont,
|
|||||||
|
|
||||||
// data defined italic font style?
|
// data defined italic font style?
|
||||||
bool ddItalic = false;
|
bool ddItalic = false;
|
||||||
if ( dataDefinedEvaluate( QgsPalLayerSettings::Italic, exprVal, &context.expressionContext() ) )
|
if ( dataDefinedEvaluate( QgsPalLayerSettings::Italic, exprVal, &context.expressionContext(), labelFont.italic() ) )
|
||||||
{
|
{
|
||||||
bool italic = exprVal.toBool();
|
bool italic = exprVal.toBool();
|
||||||
QgsDebugMsgLevel( QString( "exprVal Font italic:%1" ).arg( italic ? "true" : "false" ), 4 );
|
QgsDebugMsgLevel( QString( "exprVal Font italic:%1" ).arg( italic ? "true" : "false" ), 4 );
|
||||||
@ -3039,7 +3046,7 @@ void QgsPalLayerSettings::parseTextStyle( QFont& labelFont,
|
|||||||
|
|
||||||
// data defined word spacing?
|
// data defined word spacing?
|
||||||
double wordspace = labelFont.wordSpacing();
|
double wordspace = labelFont.wordSpacing();
|
||||||
if ( dataDefinedEvaluate( QgsPalLayerSettings::FontWordSpacing, exprVal, &context.expressionContext() ) )
|
if ( dataDefinedEvaluate( QgsPalLayerSettings::FontWordSpacing, exprVal, &context.expressionContext(), wordspace ) )
|
||||||
{
|
{
|
||||||
bool ok;
|
bool ok;
|
||||||
double wspacing = exprVal.toDouble( &ok );
|
double wspacing = exprVal.toDouble( &ok );
|
||||||
@ -3053,7 +3060,7 @@ void QgsPalLayerSettings::parseTextStyle( QFont& labelFont,
|
|||||||
|
|
||||||
// data defined letter spacing?
|
// data defined letter spacing?
|
||||||
double letterspace = labelFont.letterSpacing();
|
double letterspace = labelFont.letterSpacing();
|
||||||
if ( dataDefinedEvaluate( QgsPalLayerSettings::FontLetterSpacing, exprVal, &context.expressionContext() ) )
|
if ( dataDefinedEvaluate( QgsPalLayerSettings::FontLetterSpacing, exprVal, &context.expressionContext(), letterspace ) )
|
||||||
{
|
{
|
||||||
bool ok;
|
bool ok;
|
||||||
double lspacing = exprVal.toDouble( &ok );
|
double lspacing = exprVal.toDouble( &ok );
|
||||||
@ -3099,7 +3106,7 @@ void QgsPalLayerSettings::parseTextStyle( QFont& labelFont,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// data defined strikeout font style?
|
// data defined strikeout font style?
|
||||||
if ( dataDefinedEvaluate( QgsPalLayerSettings::Strikeout, exprVal, &context.expressionContext() ) )
|
if ( dataDefinedEvaluate( QgsPalLayerSettings::Strikeout, exprVal, &context.expressionContext(), labelFont.strikeOut() ) )
|
||||||
{
|
{
|
||||||
bool strikeout = exprVal.toBool();
|
bool strikeout = exprVal.toBool();
|
||||||
QgsDebugMsgLevel( QString( "exprVal Font strikeout:%1" ).arg( strikeout ? "true" : "false" ), 4 );
|
QgsDebugMsgLevel( QString( "exprVal Font strikeout:%1" ).arg( strikeout ? "true" : "false" ), 4 );
|
||||||
@ -3107,7 +3114,7 @@ void QgsPalLayerSettings::parseTextStyle( QFont& labelFont,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// data defined underline font style?
|
// data defined underline font style?
|
||||||
if ( dataDefinedEvaluate( QgsPalLayerSettings::Underline, exprVal, &context.expressionContext() ) )
|
if ( dataDefinedEvaluate( QgsPalLayerSettings::Underline, exprVal, &context.expressionContext(), labelFont.underline() ) )
|
||||||
{
|
{
|
||||||
bool underline = exprVal.toBool();
|
bool underline = exprVal.toBool();
|
||||||
QgsDebugMsgLevel( QString( "exprVal Font underline:%1" ).arg( underline ? "true" : "false" ), 4 );
|
QgsDebugMsgLevel( QString( "exprVal Font underline:%1" ).arg( underline ? "true" : "false" ), 4 );
|
||||||
@ -3117,10 +3124,10 @@ void QgsPalLayerSettings::parseTextStyle( QFont& labelFont,
|
|||||||
// pass the rest on to QgsPalLabeling::drawLabeling
|
// pass the rest on to QgsPalLabeling::drawLabeling
|
||||||
|
|
||||||
// data defined font color?
|
// data defined font color?
|
||||||
dataDefinedValEval( DDColor, QgsPalLayerSettings::Color, exprVal, context.expressionContext() );
|
dataDefinedValEval( DDColor, QgsPalLayerSettings::Color, exprVal, context.expressionContext(), QgsSymbolLayerV2Utils::encodeColor( textColor ) );
|
||||||
|
|
||||||
// data defined font transparency?
|
// data defined font transparency?
|
||||||
dataDefinedValEval( DDTransparency, QgsPalLayerSettings::FontTransp, exprVal, context.expressionContext() );
|
dataDefinedValEval( DDTransparency, QgsPalLayerSettings::FontTransp, exprVal, context.expressionContext(), textTransp );
|
||||||
|
|
||||||
// data defined font blend mode?
|
// data defined font blend mode?
|
||||||
dataDefinedValEval( DDBlendMode, QgsPalLayerSettings::FontBlendMode, exprVal, context.expressionContext() );
|
dataDefinedValEval( DDBlendMode, QgsPalLayerSettings::FontBlendMode, exprVal, context.expressionContext() );
|
||||||
@ -3133,7 +3140,7 @@ void QgsPalLayerSettings::parseTextBuffer( QgsRenderContext &context )
|
|||||||
|
|
||||||
// data defined draw buffer?
|
// data defined draw buffer?
|
||||||
bool drawBuffer = bufferDraw;
|
bool drawBuffer = bufferDraw;
|
||||||
if ( dataDefinedValEval( DDBool, QgsPalLayerSettings::BufferDraw, exprVal, context.expressionContext() ) )
|
if ( dataDefinedValEval( DDBool, QgsPalLayerSettings::BufferDraw, exprVal, context.expressionContext(), bufferDraw ) )
|
||||||
{
|
{
|
||||||
drawBuffer = exprVal.toBool();
|
drawBuffer = exprVal.toBool();
|
||||||
}
|
}
|
||||||
@ -3145,14 +3152,14 @@ void QgsPalLayerSettings::parseTextBuffer( QgsRenderContext &context )
|
|||||||
|
|
||||||
// data defined buffer size?
|
// data defined buffer size?
|
||||||
double bufrSize = bufferSize;
|
double bufrSize = bufferSize;
|
||||||
if ( dataDefinedValEval( DDDoublePos, QgsPalLayerSettings::BufferSize, exprVal, context.expressionContext() ) )
|
if ( dataDefinedValEval( DDDoublePos, QgsPalLayerSettings::BufferSize, exprVal, context.expressionContext(), bufferSize ) )
|
||||||
{
|
{
|
||||||
bufrSize = exprVal.toDouble();
|
bufrSize = exprVal.toDouble();
|
||||||
}
|
}
|
||||||
|
|
||||||
// data defined buffer transparency?
|
// data defined buffer transparency?
|
||||||
int bufTransp = bufferTransp;
|
int bufTransp = bufferTransp;
|
||||||
if ( dataDefinedValEval( DDTransparency, QgsPalLayerSettings::BufferTransp, exprVal, context.expressionContext() ) )
|
if ( dataDefinedValEval( DDTransparency, QgsPalLayerSettings::BufferTransp, exprVal, context.expressionContext(), bufferTransp ) )
|
||||||
{
|
{
|
||||||
bufTransp = exprVal.toInt();
|
bufTransp = exprVal.toInt();
|
||||||
}
|
}
|
||||||
@ -3171,10 +3178,10 @@ void QgsPalLayerSettings::parseTextBuffer( QgsRenderContext &context )
|
|||||||
dataDefinedValEval( DDUnits, QgsPalLayerSettings::BufferUnit, exprVal, context.expressionContext() );
|
dataDefinedValEval( DDUnits, QgsPalLayerSettings::BufferUnit, exprVal, context.expressionContext() );
|
||||||
|
|
||||||
// data defined buffer color?
|
// data defined buffer color?
|
||||||
dataDefinedValEval( DDColor, QgsPalLayerSettings::BufferColor, exprVal, context.expressionContext() );
|
dataDefinedValEval( DDColor, QgsPalLayerSettings::BufferColor, exprVal, context.expressionContext(), QgsSymbolLayerV2Utils::encodeColor( bufferColor ) );
|
||||||
|
|
||||||
// data defined buffer pen join style?
|
// data defined buffer pen join style?
|
||||||
dataDefinedValEval( DDJoinStyle, QgsPalLayerSettings::BufferJoinStyle, exprVal, context.expressionContext() );
|
dataDefinedValEval( DDJoinStyle, QgsPalLayerSettings::BufferJoinStyle, exprVal, context.expressionContext(), QgsSymbolLayerV2Utils::encodePenJoinStyle( bufferJoinStyle ) );
|
||||||
|
|
||||||
// data defined buffer blend mode?
|
// data defined buffer blend mode?
|
||||||
dataDefinedValEval( DDBlendMode, QgsPalLayerSettings::BufferBlendMode, exprVal, context.expressionContext() );
|
dataDefinedValEval( DDBlendMode, QgsPalLayerSettings::BufferBlendMode, exprVal, context.expressionContext() );
|
||||||
@ -3186,7 +3193,7 @@ void QgsPalLayerSettings::parseTextFormatting( QgsRenderContext &context )
|
|||||||
|
|
||||||
// data defined multiline wrap character?
|
// data defined multiline wrap character?
|
||||||
QString wrapchr = wrapChar;
|
QString wrapchr = wrapChar;
|
||||||
if ( dataDefinedValEval( DDString, QgsPalLayerSettings::MultiLineWrapChar, exprVal, context.expressionContext() ) )
|
if ( dataDefinedValEval( DDString, QgsPalLayerSettings::MultiLineWrapChar, exprVal, context.expressionContext(), wrapChar ) )
|
||||||
{
|
{
|
||||||
wrapchr = exprVal.toString();
|
wrapchr = exprVal.toString();
|
||||||
}
|
}
|
||||||
@ -3195,7 +3202,7 @@ void QgsPalLayerSettings::parseTextFormatting( QgsRenderContext &context )
|
|||||||
dataDefinedValEval( DDDouble, QgsPalLayerSettings::MultiLineHeight, exprVal, context.expressionContext() );
|
dataDefinedValEval( DDDouble, QgsPalLayerSettings::MultiLineHeight, exprVal, context.expressionContext() );
|
||||||
|
|
||||||
// data defined multiline text align?
|
// data defined multiline text align?
|
||||||
if ( dataDefinedEvaluate( QgsPalLayerSettings::MultiLineAlignment, exprVal, &context.expressionContext() ) )
|
if ( dataDefinedEvaluate( QgsPalLayerSettings::MultiLineAlignment, exprVal, &context.expressionContext(), multilineHeight ) )
|
||||||
{
|
{
|
||||||
QString str = exprVal.toString().trimmed();
|
QString str = exprVal.toString().trimmed();
|
||||||
QgsDebugMsgLevel( QString( "exprVal MultiLineAlignment:%1" ).arg( str ), 4 );
|
QgsDebugMsgLevel( QString( "exprVal MultiLineAlignment:%1" ).arg( str ), 4 );
|
||||||
@ -3223,7 +3230,7 @@ void QgsPalLayerSettings::parseTextFormatting( QgsRenderContext &context )
|
|||||||
|
|
||||||
// data defined direction symbol?
|
// data defined direction symbol?
|
||||||
bool drawDirSymb = addDirectionSymbol;
|
bool drawDirSymb = addDirectionSymbol;
|
||||||
if ( dataDefinedValEval( DDBool, QgsPalLayerSettings::DirSymbDraw, exprVal, context.expressionContext() ) )
|
if ( dataDefinedValEval( DDBool, QgsPalLayerSettings::DirSymbDraw, exprVal, context.expressionContext(), addDirectionSymbol ) )
|
||||||
{
|
{
|
||||||
drawDirSymb = exprVal.toBool();
|
drawDirSymb = exprVal.toBool();
|
||||||
}
|
}
|
||||||
@ -3231,10 +3238,10 @@ void QgsPalLayerSettings::parseTextFormatting( QgsRenderContext &context )
|
|||||||
if ( drawDirSymb )
|
if ( drawDirSymb )
|
||||||
{
|
{
|
||||||
// data defined direction left symbol?
|
// data defined direction left symbol?
|
||||||
dataDefinedValEval( DDString, QgsPalLayerSettings::DirSymbLeft, exprVal, context.expressionContext() );
|
dataDefinedValEval( DDString, QgsPalLayerSettings::DirSymbLeft, exprVal, context.expressionContext(), leftDirectionSymbol );
|
||||||
|
|
||||||
// data defined direction right symbol?
|
// data defined direction right symbol?
|
||||||
dataDefinedValEval( DDString, QgsPalLayerSettings::DirSymbRight, exprVal, context.expressionContext() );
|
dataDefinedValEval( DDString, QgsPalLayerSettings::DirSymbRight, exprVal, context.expressionContext(), rightDirectionSymbol );
|
||||||
|
|
||||||
// data defined direction symbol placement?
|
// data defined direction symbol placement?
|
||||||
if ( dataDefinedEvaluate( QgsPalLayerSettings::DirSymbPlacement, exprVal, &context.expressionContext() ) )
|
if ( dataDefinedEvaluate( QgsPalLayerSettings::DirSymbPlacement, exprVal, &context.expressionContext() ) )
|
||||||
@ -3260,7 +3267,7 @@ void QgsPalLayerSettings::parseTextFormatting( QgsRenderContext &context )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// data defined direction symbol reversed?
|
// data defined direction symbol reversed?
|
||||||
dataDefinedValEval( DDBool, QgsPalLayerSettings::DirSymbReverse, exprVal, context.expressionContext() );
|
dataDefinedValEval( DDBool, QgsPalLayerSettings::DirSymbReverse, exprVal, context.expressionContext(), reverseDirectionSymbol );
|
||||||
}
|
}
|
||||||
|
|
||||||
// formatting for numbers is inline with generation of base label text and not passed to label painting
|
// formatting for numbers is inline with generation of base label text and not passed to label painting
|
||||||
@ -3272,7 +3279,7 @@ void QgsPalLayerSettings::parseShapeBackground( QgsRenderContext &context )
|
|||||||
|
|
||||||
// data defined draw shape?
|
// data defined draw shape?
|
||||||
bool drawShape = shapeDraw;
|
bool drawShape = shapeDraw;
|
||||||
if ( dataDefinedValEval( DDBool, QgsPalLayerSettings::ShapeDraw, exprVal, context.expressionContext() ) )
|
if ( dataDefinedValEval( DDBool, QgsPalLayerSettings::ShapeDraw, exprVal, context.expressionContext(), shapeDraw ) )
|
||||||
{
|
{
|
||||||
drawShape = exprVal.toBool();
|
drawShape = exprVal.toBool();
|
||||||
}
|
}
|
||||||
@ -3284,7 +3291,7 @@ void QgsPalLayerSettings::parseShapeBackground( QgsRenderContext &context )
|
|||||||
|
|
||||||
// data defined shape transparency?
|
// data defined shape transparency?
|
||||||
int shapeTransp = shapeTransparency;
|
int shapeTransp = shapeTransparency;
|
||||||
if ( dataDefinedValEval( DDTransparency, QgsPalLayerSettings::ShapeTransparency, exprVal, context.expressionContext() ) )
|
if ( dataDefinedValEval( DDTransparency, QgsPalLayerSettings::ShapeTransparency, exprVal, context.expressionContext(), shapeTransparency ) )
|
||||||
{
|
{
|
||||||
shapeTransp = exprVal.toInt();
|
shapeTransp = exprVal.toInt();
|
||||||
}
|
}
|
||||||
@ -3333,7 +3340,7 @@ void QgsPalLayerSettings::parseShapeBackground( QgsRenderContext &context )
|
|||||||
|
|
||||||
// data defined shape SVG path?
|
// data defined shape SVG path?
|
||||||
QString svgPath = shapeSVGFile;
|
QString svgPath = shapeSVGFile;
|
||||||
if ( dataDefinedEvaluate( QgsPalLayerSettings::ShapeSVGFile, exprVal, &context.expressionContext() ) )
|
if ( dataDefinedEvaluate( QgsPalLayerSettings::ShapeSVGFile, exprVal, &context.expressionContext(), shapeSVGFile ) )
|
||||||
{
|
{
|
||||||
QString svgfile = exprVal.toString().trimmed();
|
QString svgfile = exprVal.toString().trimmed();
|
||||||
QgsDebugMsgLevel( QString( "exprVal ShapeSVGFile:%1" ).arg( svgfile ), 4 );
|
QgsDebugMsgLevel( QString( "exprVal ShapeSVGFile:%1" ).arg( svgfile ), 4 );
|
||||||
@ -3366,14 +3373,14 @@ void QgsPalLayerSettings::parseShapeBackground( QgsRenderContext &context )
|
|||||||
|
|
||||||
// data defined shape size X? (SVGs only use X for sizing)
|
// data defined shape size X? (SVGs only use X for sizing)
|
||||||
double ddShpSizeX = shapeSize.x();
|
double ddShpSizeX = shapeSize.x();
|
||||||
if ( dataDefinedValEval( DDDouble, QgsPalLayerSettings::ShapeSizeX, exprVal, context.expressionContext() ) )
|
if ( dataDefinedValEval( DDDouble, QgsPalLayerSettings::ShapeSizeX, exprVal, context.expressionContext(), ddShpSizeX ) )
|
||||||
{
|
{
|
||||||
ddShpSizeX = exprVal.toDouble();
|
ddShpSizeX = exprVal.toDouble();
|
||||||
}
|
}
|
||||||
|
|
||||||
// data defined shape size Y?
|
// data defined shape size Y?
|
||||||
double ddShpSizeY = shapeSize.y();
|
double ddShpSizeY = shapeSize.y();
|
||||||
if ( dataDefinedValEval( DDDouble, QgsPalLayerSettings::ShapeSizeY, exprVal, context.expressionContext() ) )
|
if ( dataDefinedValEval( DDDouble, QgsPalLayerSettings::ShapeSizeY, exprVal, context.expressionContext(), ddShpSizeY ) )
|
||||||
{
|
{
|
||||||
ddShpSizeY = exprVal.toDouble();
|
ddShpSizeY = exprVal.toDouble();
|
||||||
}
|
}
|
||||||
@ -3433,16 +3440,16 @@ void QgsPalLayerSettings::parseShapeBackground( QgsRenderContext &context )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// data defined shape rotation?
|
// data defined shape rotation?
|
||||||
dataDefinedValEval( DDRotation180, QgsPalLayerSettings::ShapeRotation, exprVal, context.expressionContext() );
|
dataDefinedValEval( DDRotation180, QgsPalLayerSettings::ShapeRotation, exprVal, context.expressionContext(), shapeRotation );
|
||||||
|
|
||||||
// data defined shape offset?
|
// data defined shape offset?
|
||||||
dataDefinedValEval( DDPointF, QgsPalLayerSettings::ShapeOffset, exprVal, context.expressionContext() );
|
dataDefinedValEval( DDPointF, QgsPalLayerSettings::ShapeOffset, exprVal, context.expressionContext(), QgsSymbolLayerV2Utils::encodePoint( shapeOffset ) );
|
||||||
|
|
||||||
// data defined shape offset units?
|
// data defined shape offset units?
|
||||||
dataDefinedValEval( DDUnits, QgsPalLayerSettings::ShapeOffsetUnits, exprVal, context.expressionContext() );
|
dataDefinedValEval( DDUnits, QgsPalLayerSettings::ShapeOffsetUnits, exprVal, context.expressionContext() );
|
||||||
|
|
||||||
// data defined shape radii?
|
// data defined shape radii?
|
||||||
dataDefinedValEval( DDPointF, QgsPalLayerSettings::ShapeRadii, exprVal, context.expressionContext() );
|
dataDefinedValEval( DDPointF, QgsPalLayerSettings::ShapeRadii, exprVal, context.expressionContext(), QgsSymbolLayerV2Utils::encodePoint( shapeRadii ) );
|
||||||
|
|
||||||
// data defined shape radii units?
|
// data defined shape radii units?
|
||||||
dataDefinedValEval( DDUnits, QgsPalLayerSettings::ShapeRadiiUnits, exprVal, context.expressionContext() );
|
dataDefinedValEval( DDUnits, QgsPalLayerSettings::ShapeRadiiUnits, exprVal, context.expressionContext() );
|
||||||
@ -3451,19 +3458,19 @@ void QgsPalLayerSettings::parseShapeBackground( QgsRenderContext &context )
|
|||||||
dataDefinedValEval( DDBlendMode, QgsPalLayerSettings::ShapeBlendMode, exprVal, context.expressionContext() );
|
dataDefinedValEval( DDBlendMode, QgsPalLayerSettings::ShapeBlendMode, exprVal, context.expressionContext() );
|
||||||
|
|
||||||
// data defined shape fill color?
|
// data defined shape fill color?
|
||||||
dataDefinedValEval( DDColor, QgsPalLayerSettings::ShapeFillColor, exprVal, context.expressionContext() );
|
dataDefinedValEval( DDColor, QgsPalLayerSettings::ShapeFillColor, exprVal, context.expressionContext(), QgsSymbolLayerV2Utils::encodeColor( shapeFillColor ) );
|
||||||
|
|
||||||
// data defined shape border color?
|
// data defined shape border color?
|
||||||
dataDefinedValEval( DDColor, QgsPalLayerSettings::ShapeBorderColor, exprVal, context.expressionContext() );
|
dataDefinedValEval( DDColor, QgsPalLayerSettings::ShapeBorderColor, exprVal, context.expressionContext(), QgsSymbolLayerV2Utils::encodeColor( shapeBorderColor ) );
|
||||||
|
|
||||||
// data defined shape border width?
|
// data defined shape border width?
|
||||||
dataDefinedValEval( DDDoublePos, QgsPalLayerSettings::ShapeBorderWidth, exprVal, context.expressionContext() );
|
dataDefinedValEval( DDDoublePos, QgsPalLayerSettings::ShapeBorderWidth, exprVal, context.expressionContext(), shapeBorderWidth );
|
||||||
|
|
||||||
// data defined shape border width units?
|
// data defined shape border width units?
|
||||||
dataDefinedValEval( DDUnits, QgsPalLayerSettings::ShapeBorderWidthUnits, exprVal, context.expressionContext() );
|
dataDefinedValEval( DDUnits, QgsPalLayerSettings::ShapeBorderWidthUnits, exprVal, context.expressionContext() );
|
||||||
|
|
||||||
// data defined shape join style?
|
// data defined shape join style?
|
||||||
dataDefinedValEval( DDJoinStyle, QgsPalLayerSettings::ShapeJoinStyle, exprVal, context.expressionContext() );
|
dataDefinedValEval( DDJoinStyle, QgsPalLayerSettings::ShapeJoinStyle, exprVal, context.expressionContext(), QgsSymbolLayerV2Utils::encodePenJoinStyle( shapeJoinStyle ) );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3473,7 +3480,7 @@ void QgsPalLayerSettings::parseDropShadow( QgsRenderContext &context )
|
|||||||
|
|
||||||
// data defined draw shadow?
|
// data defined draw shadow?
|
||||||
bool drawShadow = shadowDraw;
|
bool drawShadow = shadowDraw;
|
||||||
if ( dataDefinedValEval( DDBool, QgsPalLayerSettings::ShadowDraw, exprVal, context.expressionContext() ) )
|
if ( dataDefinedValEval( DDBool, QgsPalLayerSettings::ShadowDraw, exprVal, context.expressionContext(), shadowDraw ) )
|
||||||
{
|
{
|
||||||
drawShadow = exprVal.toBool();
|
drawShadow = exprVal.toBool();
|
||||||
}
|
}
|
||||||
@ -3485,21 +3492,21 @@ void QgsPalLayerSettings::parseDropShadow( QgsRenderContext &context )
|
|||||||
|
|
||||||
// data defined shadow transparency?
|
// data defined shadow transparency?
|
||||||
int shadowTransp = shadowTransparency;
|
int shadowTransp = shadowTransparency;
|
||||||
if ( dataDefinedValEval( DDTransparency, QgsPalLayerSettings::ShadowTransparency, exprVal, context.expressionContext() ) )
|
if ( dataDefinedValEval( DDTransparency, QgsPalLayerSettings::ShadowTransparency, exprVal, context.expressionContext(), shadowTransparency ) )
|
||||||
{
|
{
|
||||||
shadowTransp = exprVal.toInt();
|
shadowTransp = exprVal.toInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
// data defined shadow offset distance?
|
// data defined shadow offset distance?
|
||||||
double shadowOffDist = shadowOffsetDist;
|
double shadowOffDist = shadowOffsetDist;
|
||||||
if ( dataDefinedValEval( DDDoublePos, QgsPalLayerSettings::ShadowOffsetDist, exprVal, context.expressionContext() ) )
|
if ( dataDefinedValEval( DDDoublePos, QgsPalLayerSettings::ShadowOffsetDist, exprVal, context.expressionContext(), shadowOffsetDist ) )
|
||||||
{
|
{
|
||||||
shadowOffDist = exprVal.toDouble();
|
shadowOffDist = exprVal.toDouble();
|
||||||
}
|
}
|
||||||
|
|
||||||
// data defined shadow offset distance?
|
// data defined shadow offset distance?
|
||||||
double shadowRad = shadowRadius;
|
double shadowRad = shadowRadius;
|
||||||
if ( dataDefinedValEval( DDDoublePos, QgsPalLayerSettings::ShadowRadius, exprVal, context.expressionContext() ) )
|
if ( dataDefinedValEval( DDDoublePos, QgsPalLayerSettings::ShadowRadius, exprVal, context.expressionContext(), shadowRadius ) )
|
||||||
{
|
{
|
||||||
shadowRad = exprVal.toDouble();
|
shadowRad = exprVal.toDouble();
|
||||||
}
|
}
|
||||||
@ -3543,22 +3550,22 @@ void QgsPalLayerSettings::parseDropShadow( QgsRenderContext &context )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// data defined shadow offset angle?
|
// data defined shadow offset angle?
|
||||||
dataDefinedValEval( DDRotation180, QgsPalLayerSettings::ShadowOffsetAngle, exprVal, context.expressionContext() );
|
dataDefinedValEval( DDRotation180, QgsPalLayerSettings::ShadowOffsetAngle, exprVal, context.expressionContext(), shadowOffsetAngle );
|
||||||
|
|
||||||
// data defined shadow offset units?
|
// data defined shadow offset units?
|
||||||
dataDefinedValEval( DDUnits, QgsPalLayerSettings::ShadowOffsetUnits, exprVal, context.expressionContext() );
|
dataDefinedValEval( DDUnits, QgsPalLayerSettings::ShadowOffsetUnits, exprVal, context.expressionContext() );
|
||||||
|
|
||||||
// data defined shadow radius?
|
// data defined shadow radius?
|
||||||
dataDefinedValEval( DDDouble, QgsPalLayerSettings::ShadowRadius, exprVal, context.expressionContext() );
|
dataDefinedValEval( DDDouble, QgsPalLayerSettings::ShadowRadius, exprVal, context.expressionContext(), shadowRadius );
|
||||||
|
|
||||||
// data defined shadow radius units?
|
// data defined shadow radius units?
|
||||||
dataDefinedValEval( DDUnits, QgsPalLayerSettings::ShadowRadiusUnits, exprVal, context.expressionContext() );
|
dataDefinedValEval( DDUnits, QgsPalLayerSettings::ShadowRadiusUnits, exprVal, context.expressionContext() );
|
||||||
|
|
||||||
// data defined shadow scale? ( gui bounds to 0-2000, no upper bound here )
|
// data defined shadow scale? ( gui bounds to 0-2000, no upper bound here )
|
||||||
dataDefinedValEval( DDIntPos, QgsPalLayerSettings::ShadowScale, exprVal, context.expressionContext() );
|
dataDefinedValEval( DDIntPos, QgsPalLayerSettings::ShadowScale, exprVal, context.expressionContext(), shadowScale );
|
||||||
|
|
||||||
// data defined shadow color?
|
// data defined shadow color?
|
||||||
dataDefinedValEval( DDColor, QgsPalLayerSettings::ShadowColor, exprVal, context.expressionContext() );
|
dataDefinedValEval( DDColor, QgsPalLayerSettings::ShadowColor, exprVal, context.expressionContext(), QgsSymbolLayerV2Utils::encodeColor( shadowColor ) );
|
||||||
|
|
||||||
// data defined shadow blend mode?
|
// data defined shadow blend mode?
|
||||||
dataDefinedValEval( DDBlendMode, QgsPalLayerSettings::ShadowBlendMode, exprVal, context.expressionContext() );
|
dataDefinedValEval( DDBlendMode, QgsPalLayerSettings::ShadowBlendMode, exprVal, context.expressionContext() );
|
||||||
|
@ -531,7 +531,7 @@ class CORE_EXPORT QgsPalLayerSettings
|
|||||||
* @returns true/false whether result is null or invalid
|
* @returns true/false whether result is null or invalid
|
||||||
* @note not available in python bindings
|
* @note not available in python bindings
|
||||||
*/
|
*/
|
||||||
bool dataDefinedEvaluate( QgsPalLayerSettings::DataDefinedProperties p, QVariant& exprVal, const QgsExpressionContext* context = 0 ) const;
|
bool dataDefinedEvaluate( QgsPalLayerSettings::DataDefinedProperties p, QVariant& exprVal, QgsExpressionContext* context = 0, QVariant originalValue = QVariant() ) const;
|
||||||
|
|
||||||
/** Whether data definition is active
|
/** Whether data definition is active
|
||||||
*/
|
*/
|
||||||
@ -624,7 +624,7 @@ class CORE_EXPORT QgsPalLayerSettings
|
|||||||
// convenience data defined evaluation function
|
// convenience data defined evaluation function
|
||||||
bool dataDefinedValEval( DataDefinedValueType valType,
|
bool dataDefinedValEval( DataDefinedValueType valType,
|
||||||
QgsPalLayerSettings::DataDefinedProperties p,
|
QgsPalLayerSettings::DataDefinedProperties p,
|
||||||
QVariant& exprVal, const QgsExpressionContext& context );
|
QVariant& exprVal, QgsExpressionContext &context, QVariant originalValue = QVariant() );
|
||||||
|
|
||||||
void parseTextStyle( QFont& labelFont,
|
void parseTextStyle( QFont& labelFont,
|
||||||
QgsPalLayerSettings::SizeUnit fontunits,
|
QgsPalLayerSettings::SizeUnit fontunits,
|
||||||
|
@ -207,12 +207,14 @@ void QgsEllipseSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV2Rend
|
|||||||
bool ok;
|
bool ok;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mOutlineWidth );
|
||||||
double width = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH, context, mOutlineWidth ).toDouble();
|
double width = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH, context, mOutlineWidth ).toDouble();
|
||||||
width = QgsSymbolLayerV2Utils::convertToPainterUnits( context.renderContext(), width, mOutlineWidthUnit, mOutlineWidthMapUnitScale );
|
width = QgsSymbolLayerV2Utils::convertToPainterUnits( context.renderContext(), width, mOutlineWidthUnit, mOutlineWidthMapUnitScale );
|
||||||
mPen.setWidthF( width );
|
mPen.setWidthF( width );
|
||||||
}
|
}
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_STYLE ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_STYLE ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( QgsSymbolLayerV2Utils::encodePenStyle( mPen.style() ) );
|
||||||
QString styleString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_STYLE, context, QVariant(), &ok ).toString();
|
QString styleString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_STYLE, context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
{
|
{
|
||||||
@ -222,12 +224,14 @@ void QgsEllipseSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV2Rend
|
|||||||
}
|
}
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL_COLOR ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL_COLOR ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( QgsSymbolLayerV2Utils::encodeColor( mBrush.color() ) );
|
||||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL_COLOR, context, QVariant(), &ok ).toString();
|
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL_COLOR, context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
mBrush.setColor( QgsSymbolLayerV2Utils::decodeColor( colorString ) );
|
mBrush.setColor( QgsSymbolLayerV2Utils::decodeColor( colorString ) );
|
||||||
}
|
}
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_COLOR ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_COLOR ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( QgsSymbolLayerV2Utils::encodeColor( mPen.color() ) );
|
||||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_COLOR, context, QVariant(), &ok ).toString();
|
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_COLOR, context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
mPen.setColor( QgsSymbolLayerV2Utils::decodeColor( colorString ) );
|
mPen.setColor( QgsSymbolLayerV2Utils::decodeColor( colorString ) );
|
||||||
@ -239,6 +243,7 @@ void QgsEllipseSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV2Rend
|
|||||||
QString symbolName = mSymbolName;
|
QString symbolName = mSymbolName;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_SYMBOL_NAME ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_SYMBOL_NAME ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mSymbolName );
|
||||||
symbolName = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SYMBOL_NAME, context, mSymbolName ).toString();
|
symbolName = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SYMBOL_NAME, context, mSymbolName ).toString();
|
||||||
}
|
}
|
||||||
preparePath( symbolName, context, &scaledWidth, &scaledHeight, context.feature() );
|
preparePath( symbolName, context, &scaledWidth, &scaledHeight, context.feature() );
|
||||||
@ -260,6 +265,7 @@ void QgsEllipseSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV2Rend
|
|||||||
double rotation = 0.0;
|
double rotation = 0.0;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_ROTATION ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_ROTATION ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mAngle );
|
||||||
rotation = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ROTATION, context, mAngle ).toDouble() + mLineAngle;
|
rotation = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ROTATION, context, mAngle ).toDouble() + mLineAngle;
|
||||||
}
|
}
|
||||||
else if ( !qgsDoubleNear( mAngle + mLineAngle, 0.0 ) )
|
else if ( !qgsDoubleNear( mAngle + mLineAngle, 0.0 ) )
|
||||||
@ -462,6 +468,7 @@ void QgsEllipseSymbolLayerV2::preparePath( const QString& symbolName, QgsSymbolV
|
|||||||
|
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH ) ) //1. priority: data defined setting on symbol layer le
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH ) ) //1. priority: data defined setting on symbol layer le
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mSymbolWidth );
|
||||||
width = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH, context, 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
|
else if ( context.renderHints() & QgsSymbolV2::DataDefinedSizeScale ) //2. priority: is data defined size on symbol level
|
||||||
@ -481,6 +488,7 @@ void QgsEllipseSymbolLayerV2::preparePath( const QString& symbolName, QgsSymbolV
|
|||||||
double height = 0;
|
double height = 0;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_HEIGHT ) ) //1. priority: data defined setting on symbol layer level
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_HEIGHT ) ) //1. priority: data defined setting on symbol layer level
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mSymbolHeight );
|
||||||
height = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_HEIGHT, context, 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
|
else if ( context.renderHints() & QgsSymbolV2::DataDefinedSizeScale ) //2. priority: is data defined size on symbol level
|
||||||
@ -565,6 +573,7 @@ bool QgsEllipseSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitScaleFa
|
|||||||
|
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH ) ) //1. priority: data defined setting on symbol layer le
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH ) ) //1. priority: data defined setting on symbol layer le
|
||||||
{
|
{
|
||||||
|
context->setOriginalValueVariable( mSymbolWidth );
|
||||||
symbolWidth = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH, *context, 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
|
else if ( context->renderHints() & QgsSymbolV2::DataDefinedSizeScale ) //2. priority: is data defined size on symbol level
|
||||||
@ -580,6 +589,7 @@ bool QgsEllipseSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitScaleFa
|
|||||||
double symbolHeight = mSymbolHeight;
|
double symbolHeight = mSymbolHeight;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_HEIGHT ) ) //1. priority: data defined setting on symbol layer level
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_HEIGHT ) ) //1. priority: data defined setting on symbol layer level
|
||||||
{
|
{
|
||||||
|
context->setOriginalValueVariable( mSymbolHeight );
|
||||||
symbolHeight = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_HEIGHT, *context, 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
|
else if ( context->renderHints() & QgsSymbolV2::DataDefinedSizeScale ) //2. priority: is data defined size on symbol level
|
||||||
@ -596,6 +606,7 @@ bool QgsEllipseSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitScaleFa
|
|||||||
|
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH ) )
|
||||||
{
|
{
|
||||||
|
context->setOriginalValueVariable( mOutlineWidth );
|
||||||
outlineWidth = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH, *context, mOutlineWidth ).toDouble();
|
outlineWidth = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH, *context, mOutlineWidth ).toDouble();
|
||||||
}
|
}
|
||||||
if ( mOutlineWidthUnit == QgsSymbolV2::MM )
|
if ( mOutlineWidthUnit == QgsSymbolV2::MM )
|
||||||
@ -608,6 +619,7 @@ bool QgsEllipseSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitScaleFa
|
|||||||
QColor fc = mFillColor;
|
QColor fc = mFillColor;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL_COLOR ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL_COLOR ) )
|
||||||
{
|
{
|
||||||
|
context->setOriginalValueVariable( QgsSymbolLayerV2Utils::encodeColor( mFillColor ) );
|
||||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL_COLOR, *context, QVariant(), &ok ).toString();
|
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL_COLOR, *context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
fc = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
fc = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
||||||
@ -617,6 +629,7 @@ bool QgsEllipseSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitScaleFa
|
|||||||
QColor oc = mOutlineColor;
|
QColor oc = mOutlineColor;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_COLOR ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_COLOR ) )
|
||||||
{
|
{
|
||||||
|
context->setOriginalValueVariable( QgsSymbolLayerV2Utils::encodeColor( mOutlineColor ) );
|
||||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_COLOR, *context, QVariant(), &ok ).toString();
|
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_COLOR, *context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
oc = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
oc = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
||||||
@ -626,6 +639,7 @@ bool QgsEllipseSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitScaleFa
|
|||||||
QString symbolName = mSymbolName;
|
QString symbolName = mSymbolName;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_SYMBOL_NAME ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_SYMBOL_NAME ) )
|
||||||
{
|
{
|
||||||
|
context->setOriginalValueVariable( mSymbolName );
|
||||||
symbolName = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SYMBOL_NAME, *context, mSymbolName ).toString();
|
symbolName = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SYMBOL_NAME, *context, mSymbolName ).toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -639,6 +653,7 @@ bool QgsEllipseSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitScaleFa
|
|||||||
double rotation = 0.0;
|
double rotation = 0.0;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_ROTATION ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_ROTATION ) )
|
||||||
{
|
{
|
||||||
|
context->setOriginalValueVariable( mAngle );
|
||||||
rotation = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ROTATION, *context, mAngle ).toDouble() + mLineAngle;
|
rotation = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ROTATION, *context, mAngle ).toDouble() + mLineAngle;
|
||||||
}
|
}
|
||||||
else if ( !qgsDoubleNear( mAngle + mLineAngle, 0.0 ) )
|
else if ( !qgsDoubleNear( mAngle + mLineAngle, 0.0 ) )
|
||||||
|
@ -84,24 +84,28 @@ void QgsSimpleFillSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderCon
|
|||||||
|
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( QgsSymbolLayerV2Utils::encodeColor( brush.color() ) );
|
||||||
QString color = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context, QVariant(), &ok ).toString();
|
QString color = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
brush.setColor( QgsSymbolLayerV2Utils::decodeColor( color ) );
|
brush.setColor( QgsSymbolLayerV2Utils::decodeColor( color ) );
|
||||||
}
|
}
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL_STYLE ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL_STYLE ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( QgsSymbolLayerV2Utils::encodeBrushStyle( brush.style() ) );
|
||||||
QString style = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL_STYLE, context, QVariant(), &ok ).toString();
|
QString style = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL_STYLE, context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
brush.setStyle( QgsSymbolLayerV2Utils::decodeBrushStyle( style ) );
|
brush.setStyle( QgsSymbolLayerV2Utils::decodeBrushStyle( style ) );
|
||||||
}
|
}
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR_BORDER ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR_BORDER ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( QgsSymbolLayerV2Utils::encodeColor( pen.color() ) );
|
||||||
QString color = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR_BORDER, context, QVariant(), &ok ).toString();
|
QString color = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR_BORDER, context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
pen.setColor( QgsSymbolLayerV2Utils::decodeColor( color ) );
|
pen.setColor( QgsSymbolLayerV2Utils::decodeColor( color ) );
|
||||||
}
|
}
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH_BORDER ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH_BORDER ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mBorderWidth );
|
||||||
double width = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH_BORDER, context, mBorderWidth ).toDouble();
|
double width = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH_BORDER, context, mBorderWidth ).toDouble();
|
||||||
width = QgsSymbolLayerV2Utils::convertToPainterUnits( context.renderContext(), width, mBorderWidthUnit, mBorderWidthMapUnitScale );
|
width = QgsSymbolLayerV2Utils::convertToPainterUnits( context.renderContext(), width, mBorderWidthUnit, mBorderWidthMapUnitScale );
|
||||||
pen.setWidthF( width );
|
pen.setWidthF( width );
|
||||||
@ -109,6 +113,7 @@ void QgsSimpleFillSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderCon
|
|||||||
}
|
}
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_BORDER_STYLE ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_BORDER_STYLE ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( QgsSymbolLayerV2Utils::encodePenStyle( pen.style() ) );
|
||||||
QString style = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_BORDER_STYLE, context, QVariant(), &ok ).toString();
|
QString style = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_BORDER_STYLE, context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
{
|
{
|
||||||
@ -118,6 +123,7 @@ void QgsSimpleFillSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderCon
|
|||||||
}
|
}
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_JOIN_STYLE ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_JOIN_STYLE ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( QgsSymbolLayerV2Utils::encodePenJoinStyle( pen.joinStyle() ) );
|
||||||
QString style = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_JOIN_STYLE, context, QVariant(), &ok ).toString();
|
QString style = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_JOIN_STYLE, context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
{
|
{
|
||||||
@ -396,6 +402,7 @@ double QgsSimpleFillSymbolLayerV2::dxfWidth( const QgsDxfExport& e, QgsSymbolV2R
|
|||||||
double width = mBorderWidth;
|
double width = mBorderWidth;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH_BORDER ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH_BORDER ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mBorderWidth );
|
||||||
width = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH_BORDER, context, mBorderWidth ).toDouble();
|
width = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH_BORDER, context, mBorderWidth ).toDouble();
|
||||||
}
|
}
|
||||||
return width * e.mapUnitScaleFactor( e.symbologyScaleDenominator(), mBorderWidthUnit, e.mapUnits() );
|
return width * e.mapUnitScaleFactor( e.symbologyScaleDenominator(), mBorderWidthUnit, e.mapUnits() );
|
||||||
@ -406,6 +413,7 @@ QColor QgsSimpleFillSymbolLayerV2::dxfColor( QgsSymbolV2RenderContext &context )
|
|||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_BORDER_COLOR ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_BORDER_COLOR ) )
|
||||||
{
|
{
|
||||||
bool ok;
|
bool ok;
|
||||||
|
context.setOriginalValueVariable( QgsSymbolLayerV2Utils::encodeColor( mBorderColor ) );
|
||||||
QString color = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_BORDER_COLOR, context, QVariant(), &ok ).toString();
|
QString color = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_BORDER_COLOR, context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
return QgsSymbolLayerV2Utils::decodeColor( color );
|
return QgsSymbolLayerV2Utils::decodeColor( color );
|
||||||
@ -423,6 +431,7 @@ QColor QgsSimpleFillSymbolLayerV2::dxfBrushColor( QgsSymbolV2RenderContext& cont
|
|||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR ) )
|
||||||
{
|
{
|
||||||
bool ok;
|
bool ok;
|
||||||
|
context.setOriginalValueVariable( QgsSymbolLayerV2Utils::encodeColor( mColor ) );
|
||||||
QString color = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context, QVariant(), &ok ).toString();
|
QString color = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
return QgsSymbolLayerV2Utils::decodeColor( color );
|
return QgsSymbolLayerV2Utils::decodeColor( color );
|
||||||
@ -563,6 +572,7 @@ void QgsGradientFillSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderC
|
|||||||
QColor color = mColor;
|
QColor color = mColor;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( QgsSymbolLayerV2Utils::encodeColor( mColor ) );
|
||||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context, QVariant(), &ok ).toString();
|
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
color = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
color = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
||||||
@ -572,6 +582,7 @@ void QgsGradientFillSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderC
|
|||||||
QColor color2 = mColor2;
|
QColor color2 = mColor2;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR2 ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR2 ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( QgsSymbolLayerV2Utils::encodeColor( mColor2 ) );
|
||||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR2, context, QVariant(), &ok ).toString();
|
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR2, context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
color2 = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
color2 = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
||||||
@ -581,6 +592,7 @@ void QgsGradientFillSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderC
|
|||||||
double angle = mAngle;
|
double angle = mAngle;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mAngle );
|
||||||
angle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE, context, mAngle ).toDouble();
|
angle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE, context, mAngle ).toDouble();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -650,16 +662,19 @@ void QgsGradientFillSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderC
|
|||||||
double refPoint1X = mReferencePoint1.x();
|
double refPoint1X = mReferencePoint1.x();
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE1_X ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE1_X ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( refPoint1X );
|
||||||
refPoint1X = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE1_X, context, refPoint1X ).toDouble();
|
refPoint1X = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE1_X, context, refPoint1X ).toDouble();
|
||||||
}
|
}
|
||||||
double refPoint1Y = mReferencePoint1.y();
|
double refPoint1Y = mReferencePoint1.y();
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE1_Y ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE1_Y ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( refPoint1Y );
|
||||||
refPoint1Y = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE1_Y, context, refPoint1Y ).toDouble();
|
refPoint1Y = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE1_Y, context, refPoint1Y ).toDouble();
|
||||||
}
|
}
|
||||||
bool refPoint1IsCentroid = mReferencePoint1IsCentroid;
|
bool refPoint1IsCentroid = mReferencePoint1IsCentroid;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE1_ISCENTROID ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE1_ISCENTROID ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( refPoint1IsCentroid );
|
||||||
refPoint1IsCentroid = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE1_ISCENTROID, context, refPoint1IsCentroid ).toBool();
|
refPoint1IsCentroid = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE1_ISCENTROID, context, refPoint1IsCentroid ).toBool();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -667,16 +682,19 @@ void QgsGradientFillSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderC
|
|||||||
double refPoint2X = mReferencePoint2.x();
|
double refPoint2X = mReferencePoint2.x();
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE2_X ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE2_X ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( refPoint2X );
|
||||||
refPoint2X = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE2_X, context, refPoint2X ).toDouble();
|
refPoint2X = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE2_X, context, refPoint2X ).toDouble();
|
||||||
}
|
}
|
||||||
double refPoint2Y = mReferencePoint2.y();
|
double refPoint2Y = mReferencePoint2.y();
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE2_Y ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE2_Y ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( refPoint2Y );
|
||||||
refPoint2Y = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE2_Y, context, refPoint2Y ).toDouble();
|
refPoint2Y = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE2_Y, context, refPoint2Y ).toDouble();
|
||||||
}
|
}
|
||||||
bool refPoint2IsCentroid = mReferencePoint2IsCentroid;
|
bool refPoint2IsCentroid = mReferencePoint2IsCentroid;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE2_ISCENTROID ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE2_ISCENTROID ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( refPoint2IsCentroid );
|
||||||
refPoint2IsCentroid = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE2_ISCENTROID, context, refPoint2IsCentroid ).toBool();
|
refPoint2IsCentroid = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_REFERENCE2_ISCENTROID, context, refPoint2IsCentroid ).toBool();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1043,6 +1061,7 @@ void QgsShapeburstFillSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2Rende
|
|||||||
color = mColor;
|
color = mColor;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( QgsSymbolLayerV2Utils::encodeColor( mColor ) );
|
||||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context, QVariant(), &ok ).toString();
|
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
color = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
color = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
||||||
@ -1052,6 +1071,7 @@ void QgsShapeburstFillSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2Rende
|
|||||||
color2 = mColor2;
|
color2 = mColor2;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR2 ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR2 ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( QgsSymbolLayerV2Utils::encodeColor( mColor2 ) );
|
||||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR2, context, QVariant(), &ok ).toString();
|
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR2, context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
color2 = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
color2 = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
||||||
@ -1061,6 +1081,7 @@ void QgsShapeburstFillSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2Rende
|
|||||||
blurRadius = mBlurRadius;
|
blurRadius = mBlurRadius;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_BLUR_RADIUS ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_BLUR_RADIUS ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mBlurRadius );
|
||||||
blurRadius = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_BLUR_RADIUS, context, mBlurRadius ).toInt();
|
blurRadius = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_BLUR_RADIUS, context, mBlurRadius ).toInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1068,6 +1089,7 @@ void QgsShapeburstFillSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2Rende
|
|||||||
useWholeShape = mUseWholeShape;
|
useWholeShape = mUseWholeShape;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_USE_WHOLE_SHAPE ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_USE_WHOLE_SHAPE ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mUseWholeShape );
|
||||||
useWholeShape = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_USE_WHOLE_SHAPE, context, mUseWholeShape ).toBool();
|
useWholeShape = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_USE_WHOLE_SHAPE, context, mUseWholeShape ).toBool();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1075,6 +1097,7 @@ void QgsShapeburstFillSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2Rende
|
|||||||
maxDistance = mMaxDistance;
|
maxDistance = mMaxDistance;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_MAX_DISTANCE ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_MAX_DISTANCE ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mMaxDistance );
|
||||||
maxDistance = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_MAX_DISTANCE, context, mMaxDistance ).toDouble();
|
maxDistance = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_MAX_DISTANCE, context, mMaxDistance ).toDouble();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1082,6 +1105,7 @@ void QgsShapeburstFillSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2Rende
|
|||||||
ignoreRings = mIgnoreRings;
|
ignoreRings = mIgnoreRings;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_IGNORE_RINGS ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_IGNORE_RINGS ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mIgnoreRings );
|
||||||
ignoreRings = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_IGNORE_RINGS, context, mIgnoreRings ).toBool();
|
ignoreRings = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_IGNORE_RINGS, context, mIgnoreRings ).toBool();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1646,6 +1670,7 @@ double QgsImageFillSymbolLayer::dxfWidth( const QgsDxfExport& e, QgsSymbolV2Rend
|
|||||||
double width = mOutlineWidth;
|
double width = mOutlineWidth;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mOutlineWidth );
|
||||||
width = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH, context, mOutlineWidth ).toDouble();
|
width = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH, context, mOutlineWidth ).toDouble();
|
||||||
}
|
}
|
||||||
return width * e.mapUnitScaleFactor( e.symbologyScaleDenominator(), mOutlineWidthUnit, e.mapUnits() );
|
return width * e.mapUnitScaleFactor( e.symbologyScaleDenominator(), mOutlineWidthUnit, e.mapUnits() );
|
||||||
@ -2136,6 +2161,7 @@ void QgsSVGFillSymbolLayer::applyDataDefinedSettings( QgsSymbolV2RenderContext &
|
|||||||
|
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mAngle );
|
||||||
double nextAngle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE, context, QVariant(), &ok ).toDouble();
|
double nextAngle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE, context, QVariant(), &ok ).toDouble();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
mNextAngle = nextAngle;
|
mNextAngle = nextAngle;
|
||||||
@ -2144,16 +2170,19 @@ void QgsSVGFillSymbolLayer::applyDataDefinedSettings( QgsSymbolV2RenderContext &
|
|||||||
double width = mPatternWidth;
|
double width = mPatternWidth;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mPatternWidth );
|
||||||
width = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH, context, mPatternWidth ).toDouble();
|
width = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH, context, mPatternWidth ).toDouble();
|
||||||
}
|
}
|
||||||
QString svgFile = mSvgFilePath;
|
QString svgFile = mSvgFilePath;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_SVG_FILE ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_SVG_FILE ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mSvgFilePath );
|
||||||
svgFile = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SVG_FILE, context, mSvgFilePath ).toString();
|
svgFile = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SVG_FILE, context, mSvgFilePath ).toString();
|
||||||
}
|
}
|
||||||
QColor svgFillColor = mSvgFillColor;
|
QColor svgFillColor = mSvgFillColor;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_SVG_FILL_COLOR ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_SVG_FILL_COLOR ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( QgsSymbolLayerV2Utils::encodeColor( mSvgFillColor ) );
|
||||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SVG_FILL_COLOR, context, QVariant(), &ok ).toString();
|
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SVG_FILL_COLOR, context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
svgFillColor = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
svgFillColor = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
||||||
@ -2161,6 +2190,7 @@ void QgsSVGFillSymbolLayer::applyDataDefinedSettings( QgsSymbolV2RenderContext &
|
|||||||
QColor svgOutlineColor = mSvgOutlineColor;
|
QColor svgOutlineColor = mSvgOutlineColor;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_SVG_OUTLINE_COLOR ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_SVG_OUTLINE_COLOR ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( QgsSymbolLayerV2Utils::encodeColor( mSvgOutlineColor ) );
|
||||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SVG_OUTLINE_COLOR, context, QVariant(), &ok ).toString();
|
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SVG_OUTLINE_COLOR, context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
svgOutlineColor = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
svgOutlineColor = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
||||||
@ -2168,6 +2198,7 @@ void QgsSVGFillSymbolLayer::applyDataDefinedSettings( QgsSymbolV2RenderContext &
|
|||||||
double outlineWidth = mSvgOutlineWidth;
|
double outlineWidth = mSvgOutlineWidth;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_SVG_OUTLINE_WIDTH ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_SVG_OUTLINE_WIDTH ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mSvgOutlineWidth );
|
||||||
outlineWidth = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SVG_OUTLINE_WIDTH, context, mSvgOutlineWidth ).toDouble();
|
outlineWidth = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SVG_OUTLINE_WIDTH, context, mSvgOutlineWidth ).toDouble();
|
||||||
}
|
}
|
||||||
applyPattern( mBrush, svgFile, width, mPatternWidthUnit, svgFillColor, svgOutlineColor, outlineWidth,
|
applyPattern( mBrush, svgFile, width, mPatternWidthUnit, svgFillColor, svgOutlineColor, outlineWidth,
|
||||||
@ -2849,21 +2880,25 @@ void QgsLinePatternFillSymbolLayer::applyDataDefinedSettings( QgsSymbolV2RenderC
|
|||||||
double lineAngle = mLineAngle;
|
double lineAngle = mLineAngle;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_LINEANGLE ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_LINEANGLE ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mLineAngle );
|
||||||
lineAngle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_LINEANGLE, context, mLineAngle ).toDouble();
|
lineAngle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_LINEANGLE, context, mLineAngle ).toDouble();
|
||||||
}
|
}
|
||||||
double distance = mDistance;
|
double distance = mDistance;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISTANCE ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISTANCE ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mDistance );
|
||||||
distance = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISTANCE, context, mDistance ).toDouble();
|
distance = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISTANCE, context, mDistance ).toDouble();
|
||||||
}
|
}
|
||||||
double lineWidth = mLineWidth;
|
double lineWidth = mLineWidth;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_LINEWIDTH ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_LINEWIDTH ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mLineWidth );
|
||||||
lineWidth = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_LINEWIDTH, context, mLineWidth ).toDouble();
|
lineWidth = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_LINEWIDTH, context, mLineWidth ).toDouble();
|
||||||
}
|
}
|
||||||
QColor color = mColor;
|
QColor color = mColor;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( QgsSymbolLayerV2Utils::encodeColor( mColor ) );
|
||||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context, QVariant(), &ok ).toString();
|
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
color = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
color = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
||||||
@ -3260,21 +3295,25 @@ void QgsPointPatternFillSymbolLayer::applyDataDefinedSettings( QgsSymbolV2Render
|
|||||||
double distanceX = mDistanceX;
|
double distanceX = mDistanceX;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISTANCE_X ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISTANCE_X ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mDistanceX );
|
||||||
distanceX = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISTANCE_X, context, mDistanceX ).toDouble();
|
distanceX = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISTANCE_X, context, mDistanceX ).toDouble();
|
||||||
}
|
}
|
||||||
double distanceY = mDistanceY;
|
double distanceY = mDistanceY;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISTANCE_Y ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISTANCE_Y ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mDistanceY );
|
||||||
distanceY = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISTANCE_Y, context, mDistanceY ).toDouble();
|
distanceY = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISTANCE_Y, context, mDistanceY ).toDouble();
|
||||||
}
|
}
|
||||||
double displacementX = mDisplacementX;
|
double displacementX = mDisplacementX;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISPLACEMENT_X ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISPLACEMENT_X ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mDisplacementX );
|
||||||
displacementX = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISPLACEMENT_X, context, mDisplacementX ).toDouble();
|
displacementX = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISPLACEMENT_X, context, mDisplacementX ).toDouble();
|
||||||
}
|
}
|
||||||
double displacementY = mDisplacementY;
|
double displacementY = mDisplacementY;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISPLACEMENT_Y ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISPLACEMENT_Y ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mDisplacementY );
|
||||||
displacementY = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISPLACEMENT_Y, context, mDisplacementY ).toDouble();
|
displacementY = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_DISPLACEMENT_Y, context, mDisplacementY ).toDouble();
|
||||||
}
|
}
|
||||||
applyPattern( context, mBrush, distanceX, distanceY, displacementX, displacementY );
|
applyPattern( context, mBrush, distanceX, distanceY, displacementX, displacementY );
|
||||||
@ -3662,6 +3701,7 @@ void QgsRasterFillSymbolLayer::applyDataDefinedSettings( QgsSymbolV2RenderContex
|
|||||||
bool ok;
|
bool ok;
|
||||||
if ( hasAngleExpression )
|
if ( hasAngleExpression )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mAngle );
|
||||||
double nextAngle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE, context, QVariant(), &ok ).toDouble();
|
double nextAngle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE, context, QVariant(), &ok ).toDouble();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
mNextAngle = nextAngle;
|
mNextAngle = nextAngle;
|
||||||
@ -3675,16 +3715,19 @@ void QgsRasterFillSymbolLayer::applyDataDefinedSettings( QgsSymbolV2RenderContex
|
|||||||
double width = mWidth;
|
double width = mWidth;
|
||||||
if ( hasWidthExpression )
|
if ( hasWidthExpression )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mWidth );
|
||||||
width = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH, context, mWidth ).toDouble();
|
width = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH, context, mWidth ).toDouble();
|
||||||
}
|
}
|
||||||
double alpha = mAlpha;
|
double alpha = mAlpha;
|
||||||
if ( hasAlphaExpression )
|
if ( hasAlphaExpression )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mAlpha );
|
||||||
alpha = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ALPHA, context, mAlpha ).toDouble();
|
alpha = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ALPHA, context, mAlpha ).toDouble();
|
||||||
}
|
}
|
||||||
QString file = mImageFilePath;
|
QString file = mImageFilePath;
|
||||||
if ( hasFileExpression )
|
if ( hasFileExpression )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mImageFilePath );
|
||||||
file = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILE, context, mImageFilePath ).toString();
|
file = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILE, context, mImageFilePath ).toString();
|
||||||
}
|
}
|
||||||
applyPattern( mBrush, file, width, alpha, context );
|
applyPattern( mBrush, file, width, alpha, context );
|
||||||
|
@ -471,6 +471,7 @@ void QgsSimpleLineSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderCon
|
|||||||
bool hasStrokeWidthExpression = false;
|
bool hasStrokeWidthExpression = false;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mWidth );
|
||||||
double scaledWidth = QgsSymbolLayerV2Utils::convertToPainterUnits( context.renderContext(),
|
double scaledWidth = QgsSymbolLayerV2Utils::convertToPainterUnits( context.renderContext(),
|
||||||
evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH, context, mWidth ).toDouble(),
|
evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH, context, mWidth ).toDouble(),
|
||||||
mWidthUnit, mWidthMapUnitScale );
|
mWidthUnit, mWidthMapUnitScale );
|
||||||
@ -483,6 +484,7 @@ void QgsSimpleLineSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderCon
|
|||||||
bool ok;
|
bool ok;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( QgsSymbolLayerV2Utils::encodeColor( pen.color() ) );
|
||||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context, QVariant(), &ok ).toString();
|
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
pen.setColor( QgsSymbolLayerV2Utils::decodeColor( colorString ) );
|
pen.setColor( QgsSymbolLayerV2Utils::decodeColor( colorString ) );
|
||||||
@ -491,6 +493,7 @@ void QgsSimpleLineSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderCon
|
|||||||
//offset
|
//offset
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mOffset );
|
||||||
offset = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET, context, offset ).toDouble();
|
offset = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET, context, offset ).toDouble();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -531,6 +534,7 @@ void QgsSimpleLineSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderCon
|
|||||||
//line style
|
//line style
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_LINE_STYLE ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_LINE_STYLE ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( QgsSymbolLayerV2Utils::encodePenStyle( pen.style() ) );
|
||||||
QString lineStyleString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_LINE_STYLE, context, QVariant(), &ok ).toString();
|
QString lineStyleString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_LINE_STYLE, context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
pen.setStyle( QgsSymbolLayerV2Utils::decodePenStyle( lineStyleString ) );
|
pen.setStyle( QgsSymbolLayerV2Utils::decodePenStyle( lineStyleString ) );
|
||||||
@ -539,6 +543,7 @@ void QgsSimpleLineSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderCon
|
|||||||
//join style
|
//join style
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_JOINSTYLE ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_JOINSTYLE ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( QgsSymbolLayerV2Utils::encodePenJoinStyle( pen.joinStyle() ) );
|
||||||
QString joinStyleString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_JOINSTYLE, context, QVariant(), &ok ).toString();
|
QString joinStyleString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_JOINSTYLE, context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
pen.setJoinStyle( QgsSymbolLayerV2Utils::decodePenJoinStyle( joinStyleString ) );
|
pen.setJoinStyle( QgsSymbolLayerV2Utils::decodePenJoinStyle( joinStyleString ) );
|
||||||
@ -547,6 +552,7 @@ void QgsSimpleLineSymbolLayerV2::applyDataDefinedSymbology( QgsSymbolV2RenderCon
|
|||||||
//cap style
|
//cap style
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_CAPSTYLE ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_CAPSTYLE ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( QgsSymbolLayerV2Utils::encodePenCapStyle( pen.capStyle() ) );
|
||||||
QString capStyleString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_CAPSTYLE, context, QVariant(), &ok ).toString();
|
QString capStyleString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_CAPSTYLE, context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
pen.setCapStyle( QgsSymbolLayerV2Utils::decodePenCapStyle( capStyleString ) );
|
pen.setCapStyle( QgsSymbolLayerV2Utils::decodePenCapStyle( capStyleString ) );
|
||||||
@ -583,6 +589,7 @@ double QgsSimpleLineSymbolLayerV2::dxfWidth( const QgsDxfExport& e, QgsSymbolV2R
|
|||||||
|
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mWidth );
|
||||||
width = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_WIDTH, context, 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 )
|
else if ( context.renderHints() & QgsSymbolV2::DataDefinedSizeScale )
|
||||||
@ -598,6 +605,7 @@ QColor QgsSimpleLineSymbolLayerV2::dxfColor( QgsSymbolV2RenderContext& context )
|
|||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR ) )
|
||||||
{
|
{
|
||||||
bool ok;
|
bool ok;
|
||||||
|
context.setOriginalValueVariable( QgsSymbolLayerV2Utils::encodeColor( mColor ) );
|
||||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context, QVariant(), &ok ).toString();
|
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
return ( QgsSymbolLayerV2Utils::decodeColor( colorString ) );
|
return ( QgsSymbolLayerV2Utils::decodeColor( colorString ) );
|
||||||
@ -612,6 +620,7 @@ double QgsSimpleLineSymbolLayerV2::dxfOffset( const QgsDxfExport& e, QgsSymbolV2
|
|||||||
|
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mOffset );
|
||||||
offset = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET, context, mOffset ).toDouble();
|
offset = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET, context, mOffset ).toDouble();
|
||||||
}
|
}
|
||||||
return offset;
|
return offset;
|
||||||
@ -805,6 +814,7 @@ void QgsMarkerLineSymbolLayerV2::renderPolyline( const QPolygonF& points, QgsSym
|
|||||||
|
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mOffset );
|
||||||
offset = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET, context, mOffset ).toDouble();
|
offset = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET, context, mOffset ).toDouble();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -909,6 +919,7 @@ void QgsMarkerLineSymbolLayerV2::renderPolylineInterval( const QPolygonF& points
|
|||||||
|
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_INTERVAL ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_INTERVAL ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mInterval );
|
||||||
interval = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_INTERVAL, context, mInterval ).toDouble();
|
interval = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_INTERVAL, context, mInterval ).toDouble();
|
||||||
}
|
}
|
||||||
if ( interval <= 0 )
|
if ( interval <= 0 )
|
||||||
@ -918,6 +929,7 @@ void QgsMarkerLineSymbolLayerV2::renderPolylineInterval( const QPolygonF& points
|
|||||||
double offsetAlongLine = mOffsetAlongLine;
|
double offsetAlongLine = mOffsetAlongLine;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET_ALONG_LINE ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET_ALONG_LINE ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mOffsetAlongLine );
|
||||||
offsetAlongLine = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET_ALONG_LINE, context, mOffsetAlongLine ).toDouble();
|
offsetAlongLine = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET_ALONG_LINE, context, mOffsetAlongLine ).toDouble();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -992,6 +1004,7 @@ void QgsMarkerLineSymbolLayerV2::renderPolylineVertex( const QPolygonF& points,
|
|||||||
double offsetAlongLine = mOffsetAlongLine;
|
double offsetAlongLine = mOffsetAlongLine;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET_ALONG_LINE ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET_ALONG_LINE ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mOffsetAlongLine );
|
||||||
offsetAlongLine = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET_ALONG_LINE, context, mOffsetAlongLine ).toDouble();
|
offsetAlongLine = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET_ALONG_LINE, context, mOffsetAlongLine ).toDouble();
|
||||||
}
|
}
|
||||||
if ( offsetAlongLine != 0 )
|
if ( offsetAlongLine != 0 )
|
||||||
|
@ -473,6 +473,7 @@ void QgsSimpleMarkerSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV
|
|||||||
bool ok = true;
|
bool ok = true;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mSize );
|
||||||
scaledSize = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE, context, mSize, &ok ).toDouble();
|
scaledSize = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE, context, mSize, &ok ).toDouble();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -499,6 +500,7 @@ void QgsSimpleMarkerSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV
|
|||||||
bool usingDataDefinedRotation = false;
|
bool usingDataDefinedRotation = false;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( angle );
|
||||||
angle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE, context, mAngle, &ok ).toDouble() + mLineAngle;
|
angle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE, context, mAngle, &ok ).toDouble() + mLineAngle;
|
||||||
usingDataDefinedRotation = ok;
|
usingDataDefinedRotation = ok;
|
||||||
}
|
}
|
||||||
@ -530,6 +532,7 @@ void QgsSimpleMarkerSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV
|
|||||||
bool createdNewPath = false;
|
bool createdNewPath = false;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_NAME ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_NAME ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mName );
|
||||||
QString name = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_NAME, context, QVariant(), &ok ).toString();
|
QString name = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_NAME, context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
{
|
{
|
||||||
@ -571,12 +574,14 @@ void QgsSimpleMarkerSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV
|
|||||||
|
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( QgsSymbolLayerV2Utils::encodeColor( mBrush.color() ) );
|
||||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context, QVariant(), &ok ).toString();
|
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
mBrush.setColor( QgsSymbolLayerV2Utils::decodeColor( colorString ) );
|
mBrush.setColor( QgsSymbolLayerV2Utils::decodeColor( colorString ) );
|
||||||
}
|
}
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR_BORDER ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR_BORDER ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( QgsSymbolLayerV2Utils::encodeColor( mPen.color() ) );
|
||||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR_BORDER, context, QVariant(), &ok ).toString();
|
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR_BORDER, context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
{
|
{
|
||||||
@ -586,6 +591,7 @@ void QgsSimpleMarkerSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV
|
|||||||
}
|
}
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mOutlineWidth );
|
||||||
double outlineWidth = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH, context, QVariant(), &ok ).toDouble();
|
double outlineWidth = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH, context, QVariant(), &ok ).toDouble();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
{
|
{
|
||||||
@ -595,6 +601,7 @@ void QgsSimpleMarkerSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV
|
|||||||
}
|
}
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_STYLE ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_STYLE ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( QgsSymbolLayerV2Utils::encodePenStyle( mOutlineStyle ) );
|
||||||
QString outlineStyle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_STYLE, context, QVariant(), &ok ).toString();
|
QString outlineStyle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_STYLE, context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
{
|
{
|
||||||
@ -815,6 +822,7 @@ bool QgsSimpleMarkerSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitSc
|
|||||||
{
|
{
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE ) )
|
||||||
{
|
{
|
||||||
|
context->setOriginalValueVariable( mSize );
|
||||||
size = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE, *context, mSize, &ok ).toDouble();
|
size = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE, *context, mSize, &ok ).toDouble();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -843,6 +851,7 @@ bool QgsSimpleMarkerSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitSc
|
|||||||
|
|
||||||
if ( context && hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH ) )
|
if ( context && hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH ) )
|
||||||
{
|
{
|
||||||
|
context->setOriginalValueVariable( mOutlineWidth );
|
||||||
outlineWidth = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH, *context, mOutlineWidth ).toDouble();
|
outlineWidth = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH, *context, mOutlineWidth ).toDouble();
|
||||||
}
|
}
|
||||||
if ( mSizeUnit == QgsSymbolV2::MM )
|
if ( mSizeUnit == QgsSymbolV2::MM )
|
||||||
@ -855,12 +864,14 @@ bool QgsSimpleMarkerSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitSc
|
|||||||
QColor bc = mBrush.color();
|
QColor bc = mBrush.color();
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR ) )
|
||||||
{
|
{
|
||||||
|
context->setOriginalValueVariable( QgsSymbolLayerV2Utils::encodeColor( bc ) );
|
||||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, *context, QVariant(), &ok ).toString();
|
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, *context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
bc = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
bc = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
||||||
}
|
}
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR_BORDER ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR_BORDER ) )
|
||||||
{
|
{
|
||||||
|
context->setOriginalValueVariable( QgsSymbolLayerV2Utils::encodeColor( pc ) );
|
||||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR_BORDER, *context, QVariant(), &ok ).toString();
|
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR_BORDER, *context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
pc = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
pc = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
||||||
@ -879,12 +890,14 @@ bool QgsSimpleMarkerSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitSc
|
|||||||
double angle = mAngle + mLineAngle;
|
double angle = mAngle + mLineAngle;
|
||||||
if ( context && hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE ) )
|
if ( context && hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE ) )
|
||||||
{
|
{
|
||||||
|
context->setOriginalValueVariable( mAngle );
|
||||||
angle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE, *context, mAngle ).toDouble() + mLineAngle;
|
angle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE, *context, mAngle ).toDouble() + mLineAngle;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString name( mName );
|
QString name( mName );
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_NAME ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_NAME ) )
|
||||||
{
|
{
|
||||||
|
context->setOriginalValueVariable( mName );
|
||||||
name = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_NAME, *context, QVariant(), &ok ).toString();
|
name = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_NAME, *context, QVariant(), &ok ).toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1197,6 +1210,7 @@ void QgsSvgMarkerSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV2Re
|
|||||||
bool ok = true;
|
bool ok = true;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mSize );
|
||||||
scaledSize = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE, context, mSize, &ok ).toDouble();
|
scaledSize = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE, context, mSize, &ok ).toDouble();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1231,6 +1245,7 @@ void QgsSvgMarkerSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV2Re
|
|||||||
double angle = mAngle + mLineAngle;
|
double angle = mAngle + mLineAngle;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mAngle );
|
||||||
angle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE, context, mAngle ).toDouble() + mLineAngle;
|
angle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE, context, mAngle ).toDouble() + mLineAngle;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1265,18 +1280,21 @@ void QgsSvgMarkerSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV2Re
|
|||||||
QString path = mPath;
|
QString path = mPath;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_NAME ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_NAME ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mPath );
|
||||||
path = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_NAME, context, mPath ).toString();
|
path = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_NAME, context, mPath ).toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
double outlineWidth = mOutlineWidth;
|
double outlineWidth = mOutlineWidth;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mOutlineWidth );
|
||||||
outlineWidth = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH, context, mOutlineWidth ).toDouble();
|
outlineWidth = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH, context, mOutlineWidth ).toDouble();
|
||||||
}
|
}
|
||||||
|
|
||||||
QColor fillColor = mFillColor;
|
QColor fillColor = mFillColor;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( QgsSymbolLayerV2Utils::encodeColor( mFillColor ) );
|
||||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL, context, QVariant(), &ok ).toString();
|
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL, context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
fillColor = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
fillColor = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
||||||
@ -1285,6 +1303,7 @@ void QgsSvgMarkerSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV2Re
|
|||||||
QColor outlineColor = mOutlineColor;
|
QColor outlineColor = mOutlineColor;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( QgsSymbolLayerV2Utils::encodeColor( mOutlineColor ) );
|
||||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE, context, QVariant(), &ok ).toString();
|
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE, context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
outlineColor = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
outlineColor = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
||||||
@ -1510,6 +1529,7 @@ bool QgsSvgMarkerSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitScale
|
|||||||
bool ok = true;
|
bool ok = true;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE ) )
|
||||||
{
|
{
|
||||||
|
context->setOriginalValueVariable( mSize );
|
||||||
size = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE, *context, mSize, &ok ).toDouble();
|
size = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE, *context, mSize, &ok ).toDouble();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1537,6 +1557,7 @@ bool QgsSvgMarkerSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitScale
|
|||||||
|
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET ) )
|
||||||
{
|
{
|
||||||
|
context->setOriginalValueVariable( QgsSymbolLayerV2Utils::encodePoint( mOffset ) );
|
||||||
QString offsetString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET, *context, QVariant(), &ok ).toString();
|
QString offsetString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET, *context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
offset = QgsSymbolLayerV2Utils::decodePoint( offsetString );
|
offset = QgsSymbolLayerV2Utils::decodePoint( offsetString );
|
||||||
@ -1554,6 +1575,7 @@ bool QgsSvgMarkerSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitScale
|
|||||||
double angle = mAngle + mLineAngle;
|
double angle = mAngle + mLineAngle;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE ) )
|
||||||
{
|
{
|
||||||
|
context->setOriginalValueVariable( mAngle );
|
||||||
angle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE, *context, mAngle ).toDouble() + mLineAngle;
|
angle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE, *context, mAngle ).toDouble() + mLineAngle;
|
||||||
}
|
}
|
||||||
//angle = -angle; //rotation in Qt is counterclockwise
|
//angle = -angle; //rotation in Qt is counterclockwise
|
||||||
@ -1563,18 +1585,21 @@ bool QgsSvgMarkerSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitScale
|
|||||||
QString path = mPath;
|
QString path = mPath;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_NAME ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_NAME ) )
|
||||||
{
|
{
|
||||||
|
context->setOriginalValueVariable( mPath );
|
||||||
path = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_NAME, *context, mPath ).toString();
|
path = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_NAME, *context, mPath ).toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
double outlineWidth = mOutlineWidth;
|
double outlineWidth = mOutlineWidth;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH ) )
|
||||||
{
|
{
|
||||||
|
context->setOriginalValueVariable( mOutlineWidth );
|
||||||
outlineWidth = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH, *context, mOutlineWidth ).toDouble();
|
outlineWidth = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE_WIDTH, *context, mOutlineWidth ).toDouble();
|
||||||
}
|
}
|
||||||
|
|
||||||
QColor fillColor = mFillColor;
|
QColor fillColor = mFillColor;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL ) )
|
||||||
{
|
{
|
||||||
|
context->setOriginalValueVariable( QgsSymbolLayerV2Utils::encodeColor( mFillColor ) );
|
||||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL, *context, QVariant(), &ok ).toString();
|
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_FILL, *context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
fillColor = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
fillColor = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
||||||
@ -1583,6 +1608,7 @@ bool QgsSvgMarkerSymbolLayerV2::writeDxf( QgsDxfExport& e, double mmMapUnitScale
|
|||||||
QColor outlineColor = mOutlineColor;
|
QColor outlineColor = mOutlineColor;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE ) )
|
||||||
{
|
{
|
||||||
|
context->setOriginalValueVariable( QgsSymbolLayerV2Utils::encodeColor( mOutlineColor ) );
|
||||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE, *context, QVariant(), &ok ).toString();
|
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OUTLINE, *context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
outlineColor = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
outlineColor = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
||||||
@ -1716,6 +1742,7 @@ void QgsFontMarkerSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV2R
|
|||||||
bool ok;
|
bool ok;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( QgsSymbolLayerV2Utils::encodeColor( mColor ) );
|
||||||
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context, QVariant(), &ok ).toString();
|
QString colorString = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_COLOR, context, QVariant(), &ok ).toString();
|
||||||
if ( ok )
|
if ( ok )
|
||||||
penColor = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
penColor = QgsSymbolLayerV2Utils::decodeColor( colorString );
|
||||||
@ -1732,6 +1759,7 @@ void QgsFontMarkerSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV2R
|
|||||||
QString charToRender = mChr;
|
QString charToRender = mChr;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_CHAR ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_CHAR ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mChr );
|
||||||
charToRender = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_CHAR, context, mChr ).toString();
|
charToRender = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_CHAR, context, mChr ).toString();
|
||||||
if ( charToRender != mChr )
|
if ( charToRender != mChr )
|
||||||
{
|
{
|
||||||
@ -1746,6 +1774,7 @@ void QgsFontMarkerSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV2R
|
|||||||
ok = true;
|
ok = true;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mSize );
|
||||||
scaledSize = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE, context, mSize, &ok ).toDouble();
|
scaledSize = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_SIZE, context, mSize, &ok ).toDouble();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1770,6 +1799,7 @@ void QgsFontMarkerSymbolLayerV2::renderPoint( const QPointF& point, QgsSymbolV2R
|
|||||||
double angle = mAngle + mLineAngle;
|
double angle = mAngle + mLineAngle;
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( mAngle );
|
||||||
angle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE, context, mAngle ).toDouble() + mLineAngle;
|
angle = evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_ANGLE, context, mAngle ).toDouble() + mLineAngle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -542,6 +542,7 @@ void QgsMarkerSymbolLayerV2::markerOffset( QgsSymbolV2RenderContext& context, do
|
|||||||
|
|
||||||
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET ) )
|
if ( hasDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET ) )
|
||||||
{
|
{
|
||||||
|
context.setOriginalValueVariable( QgsSymbolLayerV2Utils::encodePoint( mOffset ) );
|
||||||
QPointF offset = QgsSymbolLayerV2Utils::decodePoint( evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET, context ).toString() );
|
QPointF offset = QgsSymbolLayerV2Utils::decodePoint( evaluateDataDefinedProperty( QgsSymbolLayerV2::EXPR_OFFSET, context ).toString() );
|
||||||
offsetX = offset.x();
|
offsetX = offset.x();
|
||||||
offsetY = offset.y();
|
offsetY = offset.y();
|
||||||
|
@ -504,6 +504,10 @@ QgsSymbolV2RenderContext::~QgsSymbolV2RenderContext()
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void QgsSymbolV2RenderContext::setOriginalValueVariable( const QVariant& value )
|
||||||
|
{
|
||||||
|
mRenderContext.expressionContext().setOriginalValueVariable( value );
|
||||||
|
}
|
||||||
|
|
||||||
double QgsSymbolV2RenderContext::outputLineWidth( double width ) const
|
double QgsSymbolV2RenderContext::outputLineWidth( double width ) const
|
||||||
{
|
{
|
||||||
|
@ -254,6 +254,13 @@ class CORE_EXPORT QgsSymbolV2RenderContext
|
|||||||
QgsRenderContext& renderContext() { return mRenderContext; }
|
QgsRenderContext& renderContext() { return mRenderContext; }
|
||||||
const QgsRenderContext& renderContext() const { return mRenderContext; }
|
const QgsRenderContext& renderContext() const { return mRenderContext; }
|
||||||
|
|
||||||
|
/** Sets the original value variable value for data defined symbology
|
||||||
|
* @param value value for original value variable. This usually represents the symbol property value
|
||||||
|
* before any data defined overrides have been applied.
|
||||||
|
* @note added in QGIS 2.12
|
||||||
|
*/
|
||||||
|
void setOriginalValueVariable( const QVariant& value );
|
||||||
|
|
||||||
QgsSymbolV2::OutputUnit outputUnit() const { return mOutputUnit; }
|
QgsSymbolV2::OutputUnit outputUnit() const { return mOutputUnit; }
|
||||||
void setOutputUnit( QgsSymbolV2::OutputUnit u ) { mOutputUnit = u; }
|
void setOutputUnit( QgsSymbolV2::OutputUnit u ) { mOutputUnit = u; }
|
||||||
|
|
||||||
|
@ -73,6 +73,10 @@ static QgsExpressionContext _getExpressionContext( const void* context )
|
|||||||
if ( layer )
|
if ( layer )
|
||||||
expContext << QgsExpressionContextUtils::layerScope( layer );
|
expContext << QgsExpressionContextUtils::layerScope( layer );
|
||||||
|
|
||||||
|
//TODO - show actual value
|
||||||
|
expContext.setOriginalValueVariable( QVariant() );
|
||||||
|
expContext.setHighlightedVariables( QStringList() << QgsExpressionContext::EXPR_ORIGINAL_VALUE );
|
||||||
|
|
||||||
return expContext;
|
return expContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user