56 double valueRange = 0;
66 tempValue = expression->
evaluate( &expressionContext ).toDouble();
67 maxValue = std::max( tempValue, maxValue );
68 minValue = std::min( tempValue, minValue );
72 valueRange = maxValue + ( minValue * -1 );
83 double painterUnitConversionScale =
c.convertToPainterUnits( 1, s.
sizeType );
94 size.scale( scaleWidth, valueRange * mScaleFactor, Qt::IgnoreAspectRatio );
103 size.scale( valueRange * mScaleFactor, scaleHeight, Qt::IgnoreAspectRatio );
111 size.setWidth( size.width() + 2 * maxBleed );
112 size.setHeight( size.height() + 2 * maxBleed );
147 QPainter *p =
c.painter();
153 QList<double> values;
166 double currentVal = expression->
evaluate( &expressionContext ).toDouble();
167 values.push_back( currentVal );
168 maxValue = std::max( currentVal, maxValue );
169 minValue = std::min( currentVal, minValue );
175 double currentOffset = 0;
180 double baseX = position.x();
181 double baseY = position.y();
193 double baseYTop = baseY - scaledMinVal;
194 double baseYDown = baseY - scaledMaxVal;
195 double baseXRight = baseX + scaledMinVal;
196 double baseXLeft = baseX + scaledMaxVal;
202 QList<double>::const_iterator valIt = values.constBegin();
203 QList< QColor >::const_iterator colIt = s.
categoryColors.constBegin();
204 for ( ; valIt != values.constEnd(); ++valIt, ++colIt )
208 QColor brushColor( *colIt );
209 brushColor.setAlphaF( brushColor.alphaF() *
static_cast<float>( s.
opacity ) );
210 mCategoryBrush.setColor( brushColor );
211 p->setBrush( mCategoryBrush );
216 p->drawRect( QRectF( baseX + currentOffset, baseYTop, scaledWidth, length * -1 ) );
220 p->drawRect( QRectF( baseX + currentOffset, baseYDown, scaledWidth, length ) );
225 QRectF( baseXRight, baseY - scaledWidth *
static_cast<double>( values.size() ) - spacing * std::max( 0,
static_cast<int>( values.size() ) - 1 ) + currentOffset, length, scaledWidth )
231 QRectF( baseXLeft, baseY - scaledWidth *
static_cast<double>( values.size() ) - spacing * std::max( 0,
static_cast<int>( values.size() ) - 1 ) + currentOffset, 0 - length, scaledWidth )
236 currentOffset += scaledWidth + spacing;
242 QPolygonF axisPoints;
247 << QPointF( baseX, baseYTop - scaledMaxVal )
248 << QPointF( baseX, baseYTop )
249 << QPointF( baseX + scaledWidth *
static_cast<double>( values.size() ) + spacing * std::max( 0,
static_cast<int>( values.size() ) - 1 ), baseYTop );
254 << QPointF( baseX, baseYDown + scaledMaxVal )
255 << QPointF( baseX, baseYDown )
256 << QPointF( baseX + scaledWidth *
static_cast<double>( values.size() ) + spacing * std::max( 0,
static_cast<int>( values.size() ) - 1 ), baseYDown );
261 << QPointF( baseXRight + scaledMaxVal, baseY - scaledWidth *
static_cast<double>( values.size() ) - spacing * std::max( 0,
static_cast<int>( values.size() ) - 1 ) )
262 << QPointF( baseXRight, baseY - scaledWidth *
static_cast<double>( values.size() ) - spacing * std::max( 0,
static_cast<int>( values.size() ) - 1 ) )
263 << QPointF( baseXRight, baseY );
268 << QPointF( baseXLeft - scaledMaxVal, baseY - scaledWidth *
static_cast<double>( values.size() ) - spacing * std::max( 0,
static_cast<int>( values.size() ) - 1 ) )
269 << QPointF( baseXLeft, baseY - scaledWidth *
static_cast<double>( values.size() ) - spacing * std::max( 0,
static_cast<int>( values.size() ) - 1 ) )
270 << QPointF( baseXLeft, baseY );
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
void setFeature(const QgsFeature &feature)
Convenience function for setting a feature for the context.
void setFields(const QgsFields &fields)
Convenience function for setting a fields for the context.
Contains information about the context of a rendering operation.