Fix User Pie Chart Labels and Colors

.. bug not clearing labels before setting and now uses a gradient
   based upon the color selected by the user.
This commit is contained in:
Mark Liversedge
2020-07-13 14:43:06 +01:00
parent 1a5b7e1464
commit e885966195

View File

@@ -163,9 +163,22 @@ UserChart::setRide(RideItem *item)
series.yseries = ucd->y.asNumeric();
// pie charts need labels
if (chartinfo.type == GC_CHART_PIE || GC_CHART_BAR)
if (chartinfo.type == GC_CHART_PIE || chartinfo.type == GC_CHART_BAR) {
series.labels.clear();
for(int i=0; i<ucd->x.asString().count(); i++) series.labels << ucd->x.asString()[i];
series.colors.clear();
QColor min=QColor(series.color);
QColor max=GCColor::invertColor(GColor(CPLOTBACKGROUND));
for(int i=0; i<series.labels.count(); i++) {
QColor color = QColor(min.red() + (double(max.red()-min.red()) * (i/double(series.labels.count()))),
min.green() + (double(max.green()-min.green()) * (i/double(series.labels.count()))),
min.blue() + (double(max.blue()-min.blue()) * (i/double(series.labels.count()))));
series.colors << color.name();
}
}
// data now generated so can add curve
chart->addCurve(series.name, series.xseries, series.yseries, series.xname, series.yname,
series.labels, series.colors,