0
0
mirror of https://github.com/fralx/LimeReport.git synced 2025-11-25 00:18:06 +03:00

Refactor axis data. Remove duplicate paint code

This commit is contained in:
Emil Sawicki
2022-01-18 10:56:05 +01:00
parent 95a11bdc14
commit dfa378970f
11 changed files with 295 additions and 92 deletions

View File

@@ -2,6 +2,7 @@
#define LRCHARTITEM_H
#include "lritemdesignintf.h"
#include "lrglobal.h"
#include "lraxisdata.h"
#include <QtGlobal>
namespace LimeReport{
@@ -85,6 +86,7 @@ public:
protected:
qreal maxValue();
qreal minValue();
AxisData yAxisData();
void updateMinAndMaxValues();
int valuesCount();
int seriesCount();
@@ -102,14 +104,13 @@ protected:
virtual qreal valuesVMargin(QPainter *painter);
virtual QFont adaptLabelsFont(QRectF rect, QFont font);
virtual QFont adaptValuesFont(qreal width, QFont font);
virtual QString verticalLabel(int i, qreal step, qreal min);
private:
qreal m_minValue = 0, m_maxValue = 0;
AxisData m_yAxisData;
qreal m_designValues [9];
};
int genNextValue(int value);
class AbstractBarChart: public AbstractSeriesChart{
public:
AbstractBarChart(ChartItem* chartItem):AbstractSeriesChart(chartItem){}
@@ -131,6 +132,10 @@ class ChartItem : public LimeReport::ItemDesignIntf
Q_PROPERTY(ChartType chartType READ chartType WRITE setChartType)
Q_PROPERTY(QString labelsField READ labelsField WRITE setLabelsField)
Q_PROPERTY(bool showLegend READ showLegend WRITE setShowLegend)
//linesChart
Q_PROPERTY(bool drawPoints READ drawPoints WRITE setDrawPoints)
Q_PROPERTY(int seriesLineWidth READ seriesLineWidth WRITE setSeriesLineWidth)
friend class AbstractChart;
public:
@@ -183,6 +188,12 @@ public:
bool showLegend() const;
void setShowLegend(bool showLegend);
bool drawPoints() const;
void setDrawPoints(bool drawPoints);
int seriesLineWidth() const;
void setSeriesLineWidth(int newSeriesLineWidth);
protected:
void paintChartTitle(QPainter* painter, QRectF titleRect);
virtual BaseDesignIntf* createSameTypeItem(QObject *owner, QGraphicsItem *parent);
@@ -209,7 +220,8 @@ private:
QList<QString> m_labels;
bool m_isEmpty;
bool m_showLegend;
bool m_drawPoints;
int m_seriesLineWidth;
};
} //namespace LimeReport
#endif // LRCHARTITEM_H