statistics: render bar and pie labels onto fill color

The labels in bar an pie charts are realized as individual
QSG pixmap nodes with an alpha channel. Sadly, rendering
bright labels onto a transparent background gives very
ugly artifacts.

As a stop gap measure, until the problem is understood,
render on a background with the color of the pie slice
or bar.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2021-01-19 16:09:56 +01:00 committed by bstoeger
parent 2e2019dea7
commit 4f58e9aa62
5 changed files with 29 additions and 19 deletions

View file

@ -11,6 +11,7 @@
#include <memory>
#include <vector>
#include <QColor>
#include <QRectF>
class ChartBarItem;
@ -86,8 +87,8 @@ private:
bool isOutside; // Is shown outside of bar
BarLabel(StatsView &view, const std::vector<QString> &labels, int bin_nr, int binCount);
void setVisible(bool visible);
void updatePosition(bool horizontal, bool center, const QRectF &rect, int bin_nr, int binCount);
void highlight(bool highlight, int bin_nr, int binCount);
void updatePosition(bool horizontal, bool center, const QRectF &rect, int bin_nr, int binCount, const QColor &background);
void highlight(bool highlight, int bin_nr, int binCount, const QColor &background);
};
struct SubItem {
@ -96,6 +97,7 @@ private:
double value_from;
double value_to;
int bin_nr;
QColor fill;
void updatePosition(BarSeries *series, bool horizontal, bool stacked,
double from, double to, int binCount);
void highlight(bool highlight, int binCount);