mirror of
https://github.com/fralx/LimeReport.git
synced 2025-10-04 20:07:54 +03:00
Refactor axis data. Remove duplicate paint code
This commit is contained in:
@@ -54,8 +54,8 @@ void VerticalBarChart::paintVerticalBars(QPainter *painter, QRectF barsRect)
|
||||
|
||||
if (valuesCount() == 0) return;
|
||||
|
||||
int delta = int(maxValue() - minValue());
|
||||
delta = genNextValue(delta);
|
||||
const AxisData &yAxisData = this->yAxisData();
|
||||
const qreal delta = yAxisData.delta();
|
||||
|
||||
int barSeriesCount = 0;
|
||||
foreach(SeriesItem* series, m_chartItem->series()){
|
||||
@@ -102,30 +102,14 @@ void VerticalBarChart::paintVerticalBars(QPainter *painter, QRectF barsRect)
|
||||
|
||||
void VerticalBarChart::paintSerialLines(QPainter* painter, QRectF barsRect)
|
||||
{
|
||||
if (valuesCount() == 0 ) return;
|
||||
if (valuesCount() == 0 || m_chartItem->series().isEmpty() ) return;
|
||||
|
||||
painter->save();
|
||||
painter->setRenderHint(QPainter::Antialiasing,true);
|
||||
int delta = int(maxValue() - minValue());
|
||||
delta = genNextValue(delta);
|
||||
|
||||
qreal vStep = barsRect.height() / delta;
|
||||
qreal hStep = (barsRect.width() / valuesCount());
|
||||
qreal topShift = (delta - (maxValue()-minValue())) * vStep + barsRect.top();
|
||||
|
||||
if (!m_chartItem->series().isEmpty()){
|
||||
foreach (SeriesItem* series, m_chartItem->series()) {
|
||||
if (series->preferredType() == SeriesItem::Line){
|
||||
for (int i = 0; i < series->data()->values().count()-1; ++i ){
|
||||
QPoint startPoint = QPoint((i+1)*hStep + barsRect.left()-hStep/2,
|
||||
(maxValue() * vStep+topShift) - series->data()->values().at(i) * vStep
|
||||
);
|
||||
QPoint endPoint = QPoint((i+2)*hStep + barsRect.left()-hStep/2,
|
||||
(maxValue() * vStep+topShift) - series->data()->values().at(i+1) * vStep
|
||||
);
|
||||
drawSegment(painter, startPoint, endPoint, series->color());
|
||||
}
|
||||
}
|
||||
for (SeriesItem *series : m_chartItem->series()) {
|
||||
if (series->preferredType() == SeriesItem::Line){
|
||||
paintSeries(painter, series, barsRect);
|
||||
}
|
||||
}
|
||||
painter->restore();
|
||||
|
Reference in New Issue
Block a user