@@ -114,14 +114,24 @@ void QgsPieDiagram::renderDiagram( const QgsAttributeMap& att, QgsRenderContext&
114
114
setPenWidth ( mPen , s, c );
115
115
p->setPen ( mPen );
116
116
117
- QList<double >::const_iterator valIt = values.constBegin ();
118
- QList< QColor >::const_iterator colIt = s.categoryColors .constBegin ();
119
- for ( ; valIt != values.constEnd (); ++valIt, ++colIt )
117
+ // draw empty circle if no values are defined at all
118
+ if ( valSum > 0 )
120
119
{
121
- currentAngle = *valIt / valSum * 360 * 16 ;
122
- mCategoryBrush .setColor ( *colIt );
120
+ QList<double >::const_iterator valIt = values.constBegin ();
121
+ QList< QColor >::const_iterator colIt = s.categoryColors .constBegin ();
122
+ for ( ; valIt != values.constEnd (); ++valIt, ++colIt )
123
+ {
124
+ currentAngle = *valIt / valSum * 360 * 16 ;
125
+ mCategoryBrush .setColor ( *colIt );
126
+ p->setBrush ( mCategoryBrush );
127
+ p->drawPie ( baseX, baseY, w, h, totalAngle, currentAngle );
128
+ totalAngle += currentAngle;
129
+ }
130
+ }
131
+ else // valSum > 0
132
+ {
133
+ mCategoryBrush .setColor ( Qt::transparent );
123
134
p->setBrush ( mCategoryBrush );
124
- p->drawPie ( baseX, baseY, w, h, totalAngle, currentAngle );
125
- totalAngle += currentAngle;
135
+ p->drawEllipse ( baseX, baseY, w, h );
126
136
}
127
137
}
0 commit comments