##// END OF EJS Templates
For BarChart labels for legend are now taken from model's headerData (row or column)
For BarChart labels for legend are now taken from model's headerData (row or column)

File last commit:

r1006:a8ef6d6db8bf
r1012:63ded67c2d2b
Show More
chartaxis.cpp
466 lines | 12.9 KiB | text/x-c | CppLexer
Jani Honkonen
Add license headers
r794 /****************************************************************************
**
** Copyright (C) 2012 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
** This file is part of the Qt Commercial Charts Add-on.
**
** $QT_BEGIN_LICENSE$
** Licensees holding valid Qt Commercial licenses may use this file in
** accordance with the Qt Commercial License Agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Digia.
**
** If you have questions regarding the use of this file, please use
** contact form at http://qt.digia.com
** $QT_END_LICENSE$
**
****************************************************************************/
Michal Klocek
Changes QChartAxis -> QAxis
r1006 #include "chartaxis_p.h"
#include "qaxis.h"
#include "qaxis_p.h"
Michal Klocek
Adds pimpl for qchartaxis and qchartaxiscategories
r963 #include "qchartaxiscategories_p.h"
Michal Klocek
Adds ZOrder enum to presenter
r262 #include "chartpresenter_p.h"
Michal Klocek
Animation refactor...
r530 #include "chartanimator_p.h"
Michal Klocek
Add zoom support...
r67 #include <QPainter>
Michal Klocek
Improves build configuration...
r996 #include <QDebug>
Michal Klocek
Adds loosenumber algorithm...
r678 #include <cmath>
Michal Klocek
Add zoom support...
r67
Michal Klocek
Adds more axis handling...
r176 static int label_padding = 5;
Michal Klocek
Refactora axis and line chart to use graphics items insted of painter.
r85
Michal Klocek
Add zoom support...
r67 QTCOMMERCIALCHART_BEGIN_NAMESPACE
Michal Klocek
Changes QChartAxis -> QAxis
r1006 ChartAxis::ChartAxis(QAxis *axis,ChartPresenter *presenter,AxisType type) : Chart(presenter),
sauimone
more minor code review fixes
r745 m_chartAxis(axis),
m_type(type),
m_labelsAngle(0),
Jani Honkonen
make QGraphicsItemGroup a pointer in axis
r784 m_grid(new QGraphicsItemGroup(presenter->rootItem())),
m_shades(new QGraphicsItemGroup(presenter->rootItem())),
m_labels(new QGraphicsItemGroup(presenter->rootItem())),
m_axis(new QGraphicsItemGroup(presenter->rootItem())),
sauimone
more minor code review fixes
r745 m_min(0),
m_max(0),
m_ticksCount(0)
Michal Klocek
Add zoom support...
r67 {
Michal Klocek
Fix previous broken commit
r145 //initial initialization
Jani Honkonen
make QGraphicsItemGroup a pointer in axis
r784 m_axis->setZValue(ChartPresenter::AxisZValue);
m_axis->setHandlesChildEvents(false);
Michal Klocek
Refactors chartitem...
r677
Jani Honkonen
make QGraphicsItemGroup a pointer in axis
r784 m_shades->setZValue(ChartPresenter::ShadesZValue);
m_grid->setZValue(ChartPresenter::GridZValue);
Michal Klocek
Refactor domain model...
r439
Michal Klocek
Adds pimpl for qchartaxis and qchartaxiscategories
r963 QObject::connect(m_chartAxis->d_ptr.data(),SIGNAL(updated()),this,SLOT(handleAxisUpdated()));
QObject::connect(m_chartAxis->categories()->d_ptr.data(),SIGNAL(updated()),this,SLOT(handleAxisCategoriesUpdated()));
Michal Klocek
Axis refactoring to support better barcharts
r502
handleAxisUpdated();
Michal Klocek
Add zoom support...
r67 }
Michal Klocek
Changes QChartAxis -> QAxis
r1006 ChartAxis::~ChartAxis()
Michal Klocek
Add zoom support...
r67 {
}
Michal Klocek
Changes QChartAxis -> QAxis
r1006 void ChartAxis::createItems(int count)
Michal Klocek
Adds more axis handling...
r176 {
Michal Klocek
Animation refactor...
r530
Jani Honkonen
make QGraphicsItemGroup a pointer in axis
r784 if (m_axis->children().size() == 0)
m_axis->addToGroup(new AxisItem(this));
Michal Klocek
Refactors axis handling...
r223 for (int i = 0; i < count; ++i) {
Jani Honkonen
make QGraphicsItemGroup a pointer in axis
r784 m_grid->addToGroup(new QGraphicsLineItem());
m_labels->addToGroup(new QGraphicsSimpleTextItem());
m_axis->addToGroup(new QGraphicsLineItem());
if ((m_grid->childItems().size())%2 && m_grid->childItems().size()>2) m_shades->addToGroup(new QGraphicsRectItem());
Michal Klocek
Adds more axis handling...
r176 }
}
Michal Klocek
Changes QChartAxis -> QAxis
r1006 void ChartAxis::deleteItems(int count)
Michal Klocek
Adds more axis handling...
r176 {
Jani Honkonen
make QGraphicsItemGroup a pointer in axis
r784 QList<QGraphicsItem *> lines = m_grid->childItems();
QList<QGraphicsItem *> labels = m_labels->childItems();
QList<QGraphicsItem *> shades = m_shades->childItems();
QList<QGraphicsItem *> axis = m_axis->childItems();
Michal Klocek
Adds more axis handling...
r176
Michal Klocek
Refactors axis layout managment...
r291 for (int i = 0; i < count; ++i) {
sauimone
more minor code review fixes
r745 if (lines.size()%2 && lines.size() > 1) delete(shades.takeLast());
Michal Klocek
Refactors axis layout managment...
r291 delete(lines.takeLast());
delete(labels.takeLast());
delete(axis.takeLast());
Michal Klocek
Fix zorder of axis, and ticks
r272 }
Michal Klocek
Adds more axis handling...
r176 }
Michal Klocek
Changes QChartAxis -> QAxis
r1006 void ChartAxis::updateLayout(QVector<qreal> &layout)
Michal Klocek
Adds more axis handling...
r176 {
sauimone
more minor code review fixes
r745 if (animator()) {
animator()->updateLayout(this,layout);
} else {
setLayout(layout);
Michal Klocek
Animation refactor...
r530 }
Michal Klocek
Refactora axis and line chart to use graphics items insted of painter.
r85 }
Michal Klocek
Adds more axis handling...
r176
Michal Klocek
Changes QChartAxis -> QAxis
r1006 bool ChartAxis::createLabels(QStringList &labels,qreal min, qreal max,int ticks) const
Michal Klocek
Refactora axis and line chart to use graphics items insted of painter.
r85 {
Michal Klocek
Refactor domain model...
r439 Q_ASSERT(max>=min);
Michal Klocek
Adds loosenumber algorithm...
r678 Q_ASSERT(ticks>1);
Michal Klocek
Refactora axis and line chart to use graphics items insted of painter.
r85
Michal Klocek
Adds draft of axis bar label support
r497 QChartAxisCategories* categories = m_chartAxis->categories();
Michal Klocek
Refactors axis layout managment...
r291
Michal Klocek
Adds back reimplemnted categories handling
r701 bool category = categories->count()>0;
sauimone
more minor code review fixes
r745 if (!category) {
Michal Klocek
Adds back reimplemnted categories handling
r701 int n = qMax(int(-floor(log10((max-min)/(ticks-1)))),0);
Michal Klocek
Inreases decimal point in axis
r801 n++;
sauimone
minor code review fixes
r759 for (int i=0; i< ticks; i++) {
Michal Klocek
Adds back reimplemnted categories handling
r701 qreal value = min + (i * (max - min)/ (ticks-1));
Michal Klocek
Adds loosenumber algorithm...
r678 labels << QString::number(value,'f',n);
Michal Klocek
Refactor domain model...
r439 }
sauimone
more minor code review fixes
r745 } else {
Michal Klocek
Adds custom categories + example
r706 QList<qreal> values = categories->values();
sauimone
more minor code review fixes
r745 for (int i=0; i< ticks; i++) {
Michal Klocek
Adds custom categories + example
r706 qreal value = (min + (i * (max - min)/ (ticks-1)));
int j=0;
sauimone
more minor code review fixes
r745 for (; j<values.count(); j++) {
Michal Klocek
Adds custom categories + example
r706 if (values.at(j) > value) break;
}
sauimone
more minor code review fixes
r745 if (j!=0) value=values.at(j-1);
Michal Klocek
Adds custom categories + example
r706
Michal Klocek
Adds draft of axis bar label support
r497 QString label = categories->label(value);
Michal Klocek
Refactor domain model...
r439 labels << label;
}
Michal Klocek
Refactors axis handling...
r223 }
Michal Klocek
Adds back reimplemnted categories handling
r701
return category;
Michal Klocek
Adds more axis handling...
r176 }
Michal Klocek
Refactora axis and line chart to use graphics items insted of painter.
r85
Michal Klocek
Changes QChartAxis -> QAxis
r1006 void ChartAxis::setAxisOpacity(qreal opacity)
Michal Klocek
Fixes wrong shades zvalues
r184 {
Jani Honkonen
make QGraphicsItemGroup a pointer in axis
r784 m_axis->setOpacity(opacity);
Michal Klocek
Fixes wrong shades zvalues
r184 }
Michal Klocek
Changes QChartAxis -> QAxis
r1006 qreal ChartAxis::axisOpacity() const
Michal Klocek
Fixes wrong shades zvalues
r184 {
Jani Honkonen
make QGraphicsItemGroup a pointer in axis
r784 return m_axis->opacity();
Michal Klocek
Fixes wrong shades zvalues
r184 }
Michal Klocek
Changes QChartAxis -> QAxis
r1006 void ChartAxis::setGridOpacity(qreal opacity)
Michal Klocek
Adds more axis handling...
r176 {
Jani Honkonen
make QGraphicsItemGroup a pointer in axis
r784 m_grid->setOpacity(opacity);
Michal Klocek
Adds more axis handling...
r176 }
Michal Klocek
Refactora axis and line chart to use graphics items insted of painter.
r85
Michal Klocek
Changes QChartAxis -> QAxis
r1006 qreal ChartAxis::gridOpacity() const
Michal Klocek
Adds more axis handling...
r176 {
Jani Honkonen
make QGraphicsItemGroup a pointer in axis
r784 return m_grid->opacity();
Michal Klocek
Adds more axis handling...
r176 }
Michal Klocek
Refactora axis and line chart to use graphics items insted of painter.
r85
Michal Klocek
Changes QChartAxis -> QAxis
r1006 void ChartAxis::setLabelsOpacity(qreal opacity)
Michal Klocek
Adds more axis handling...
r176 {
Jani Honkonen
make QGraphicsItemGroup a pointer in axis
r784 m_labels->setOpacity(opacity);
Michal Klocek
Adds more axis handling...
r176 }
Michal Klocek
Refactora axis and line chart to use graphics items insted of painter.
r85
Michal Klocek
Changes QChartAxis -> QAxis
r1006 qreal ChartAxis::labelsOpacity() const
Michal Klocek
Adds more axis handling...
r176 {
Jani Honkonen
make QGraphicsItemGroup a pointer in axis
r784 return m_labels->opacity();
Michal Klocek
Adds more axis handling...
r176 }
Michal Klocek
Refactora axis and line chart to use graphics items insted of painter.
r85
Michal Klocek
Changes QChartAxis -> QAxis
r1006 void ChartAxis::setShadesOpacity(qreal opacity)
Michal Klocek
Adds more axis handling...
r176 {
Jani Honkonen
make QGraphicsItemGroup a pointer in axis
r784 m_shades->setOpacity(opacity);
Michal Klocek
Adds more axis handling...
r176 }
Michal Klocek
Refactora axis and line chart to use graphics items insted of painter.
r85
Michal Klocek
Changes QChartAxis -> QAxis
r1006 qreal ChartAxis::shadesOpacity() const
Michal Klocek
Adds more axis handling...
r176 {
Jani Honkonen
make QGraphicsItemGroup a pointer in axis
r784 return m_shades->opacity();
Michal Klocek
Adds more axis handling...
r176 }
Michal Klocek
Add zoom support...
r67
Michal Klocek
Changes QChartAxis -> QAxis
r1006 void ChartAxis::setLabelsAngle(int angle)
Michal Klocek
Adds more axis handling...
r176 {
Jani Honkonen
make QGraphicsItemGroup a pointer in axis
r784 foreach(QGraphicsItem* item , m_labels->childItems()) {
Michal Klocek
Adds more axis handling...
r176 item->setRotation(angle);
Michal Klocek
Fix previous broken commit
r145 }
Michal Klocek
Adds more axis handling...
r176
m_labelsAngle=angle;
Michal Klocek
Add zoom support...
r67 }
Michal Klocek
Changes QChartAxis -> QAxis
r1006 void ChartAxis::setLabelsPen(const QPen &pen)
Michal Klocek
Adds refactored axis to presenter
r140 {
Jani Honkonen
make QGraphicsItemGroup a pointer in axis
r784 foreach(QGraphicsItem* item , m_labels->childItems()) {
Michal Klocek
Adds more axis handling...
r176 static_cast<QGraphicsSimpleTextItem*>(item)->setPen(pen);
}
Michal Klocek
Adds refactored axis to presenter
r140 }
Michal Klocek
Changes QChartAxis -> QAxis
r1006 void ChartAxis::setLabelsBrush(const QBrush &brush)
Michal Klocek
Adds refactored axis to presenter
r140 {
Jani Honkonen
make QGraphicsItemGroup a pointer in axis
r784 foreach(QGraphicsItem* item , m_labels->childItems()) {
Michal Klocek
Adds more axis handling...
r176 static_cast<QGraphicsSimpleTextItem*>(item)->setBrush(brush);
}
Michal Klocek
Adds refactored axis to presenter
r140 }
Michal Klocek
Changes QChartAxis -> QAxis
r1006 void ChartAxis::setLabelsFont(const QFont &font)
Michal Klocek
Adds refactored axis to presenter
r140 {
Jani Honkonen
make QGraphicsItemGroup a pointer in axis
r784 foreach(QGraphicsItem* item , m_labels->childItems()) {
Michal Klocek
Adds more axis handling...
r176 static_cast<QGraphicsSimpleTextItem*>(item)->setFont(font);
}
Michal Klocek
Adds refactored axis to presenter
r140 }
Michal Klocek
Changes QChartAxis -> QAxis
r1006 void ChartAxis::setShadesBrush(const QBrush &brush)
Michal Klocek
Adds refactored axis to presenter
r140 {
Jani Honkonen
make QGraphicsItemGroup a pointer in axis
r784 foreach(QGraphicsItem* item , m_shades->childItems()) {
Michal Klocek
Adds more axis handling...
r176 static_cast<QGraphicsRectItem*>(item)->setBrush(brush);
}
Michal Klocek
Adds refactored axis to presenter
r140 }
Michal Klocek
Changes QChartAxis -> QAxis
r1006 void ChartAxis::setShadesPen(const QPen &pen)
Michal Klocek
Adds refactored axis to presenter
r140 {
Jani Honkonen
make QGraphicsItemGroup a pointer in axis
r784 foreach(QGraphicsItem* item , m_shades->childItems()) {
Michal Klocek
Adds more axis handling...
r176 static_cast<QGraphicsRectItem*>(item)->setPen(pen);
}
}
Michal Klocek
Changes QChartAxis -> QAxis
r1006 void ChartAxis::setAxisPen(const QPen &pen)
Michal Klocek
Fixes wrong shades zvalues
r184 {
Jani Honkonen
make QGraphicsItemGroup a pointer in axis
r784 foreach(QGraphicsItem* item , m_axis->childItems()) {
Michal Klocek
Fix zorder of axis, and ticks
r272 static_cast<QGraphicsLineItem*>(item)->setPen(pen);
}
Michal Klocek
Fixes wrong shades zvalues
r184 }
Michal Klocek
Changes QChartAxis -> QAxis
r1006 void ChartAxis::setGridPen(const QPen &pen)
Michal Klocek
Adds more axis handling...
r176 {
Jani Honkonen
make QGraphicsItemGroup a pointer in axis
r784 foreach(QGraphicsItem* item , m_grid->childItems()) {
Michal Klocek
Adds more axis handling...
r176 static_cast<QGraphicsLineItem*>(item)->setPen(pen);
}
}
Michal Klocek
Changes QChartAxis -> QAxis
r1006 QVector<qreal> ChartAxis::calculateLayout() const
Michal Klocek
Refactors axis layout managment...
r291 {
Michal Klocek
Axis refactoring to support better barcharts
r502 Q_ASSERT(m_ticksCount>=2);
Michal Klocek
Clean up axis animation code
r393 QVector<qreal> points;
Michal Klocek
Axis refactoring to support better barcharts
r502 points.resize(m_ticksCount);
Michal Klocek
Clean up axis animation code
r393
Michal Klocek
Refactors axis layout managment...
r291 switch (m_type)
{
case X_AXIS:
{
Michal Klocek
Axis refactoring to support better barcharts
r502 const qreal deltaX = m_rect.width()/(m_ticksCount-1);
for (int i = 0; i < m_ticksCount; ++i) {
Michal Klocek
Refactors axis layout managment...
r291 int x = i * deltaX + m_rect.left();
Michal Klocek
Clean up axis animation code
r393 points[i] = x;
Michal Klocek
Refactors axis layout managment...
r291 }
}
break;
case Y_AXIS:
{
Michal Klocek
Axis refactoring to support better barcharts
r502 const qreal deltaY = m_rect.height()/(m_ticksCount-1);
for (int i = 0; i < m_ticksCount; ++i) {
Michal Klocek
Refactors axis layout managment...
r291 int y = i * -deltaY + m_rect.bottom();
Michal Klocek
Clean up axis animation code
r393 points[i] = y;
Michal Klocek
Refactors axis layout managment...
r291 }
}
break;
}
Michal Klocek
Clean up axis animation code
r393 return points;
Michal Klocek
Refactors axis layout managment...
r291 }
Michal Klocek
Changes QChartAxis -> QAxis
r1006 void ChartAxis::setLayout(QVector<qreal> &layout)
Michal Klocek
Refactors axis layout managment...
r291 {
Michal Klocek
Axis refactoring to support better barcharts
r502 int diff = m_layoutVector.size() - layout.size();
sauimone
more minor code review fixes
r745 if (diff>0) {
Michal Klocek
Axis refactoring to support better barcharts
r502 deleteItems(diff);
sauimone
minor code review fixes
r759 } else if (diff<0) {
Michal Klocek
Axis refactoring to support better barcharts
r502 createItems(-diff);
}
sauimone
minor code review fixes
r759 if( diff!=0) handleAxisUpdated();
Michal Klocek
Adding zoom in out animation support
r513
Michal Klocek
Adds back reimplemnted categories handling
r701 QStringList ticksList;
bool categories = createLabels(ticksList,m_min,m_max,layout.size());
Michal Klocek
Adding zoom in out animation support
r513
Jani Honkonen
make QGraphicsItemGroup a pointer in axis
r784 QList<QGraphicsItem *> lines = m_grid->childItems();
QList<QGraphicsItem *> labels = m_labels->childItems();
QList<QGraphicsItem *> shades = m_shades->childItems();
QList<QGraphicsItem *> axis = m_axis->childItems();
Michal Klocek
Axis refactoring to support better barcharts
r502
Michal Klocek
Adding zoom in out animation support
r513 Q_ASSERT(labels.size() == ticksList.size());
Q_ASSERT(layout.size() == ticksList.size());
Michal Klocek
Axis refactoring to support better barcharts
r502
Michal Klocek
Refactor qledgend handling...
r855 qreal minWidth = 0;
qreal minHeight = 0;
Michal Klocek
Axis refactoring to support better barcharts
r502 switch (m_type)
{
case X_AXIS:
{
QGraphicsLineItem *lineItem = static_cast<QGraphicsLineItem*>(axis.at(0));
lineItem->setLine(m_rect.left(), m_rect.bottom(), m_rect.right(), m_rect.bottom());
for (int i = 0; i < layout.size(); ++i) {
QGraphicsLineItem *lineItem = static_cast<QGraphicsLineItem*>(lines.at(i));
lineItem->setLine(layout[i], m_rect.top(), layout[i], m_rect.bottom());
QGraphicsSimpleTextItem *labelItem = static_cast<QGraphicsSimpleTextItem*>(labels.at(i));
Michal Klocek
Bugfix: floating 0 in axi labels
r779 if (!categories || i<1) {
Michal Klocek
Adds back reimplemnted categories handling
r701 labelItem->setText(ticksList.at(i));
Michal Klocek
Refactor qledgend handling...
r855 const QRectF& rect = labelItem->boundingRect();
minWidth+=rect.width();
minHeight=qMax(rect.height(),minHeight);
QPointF center = rect.center();
Michal Klocek
Adds back reimplemnted categories handling
r701 labelItem->setTransformOriginPoint(center.x(), center.y());
labelItem->setPos(layout[i] - center.x(), m_rect.bottom() + label_padding);
Michal Klocek
Bugfix: floating 0 in axi labels
r779 } else {
Michal Klocek
Adds back reimplemnted categories handling
r701 labelItem->setText(ticksList.at(i));
Michal Klocek
Refactor qledgend handling...
r855 const QRectF& rect = labelItem->boundingRect();
minWidth+=rect.width();
minHeight=qMax(rect.height()+label_padding,minHeight);
QPointF center = rect.center();
Michal Klocek
Adds back reimplemnted categories handling
r701 labelItem->setTransformOriginPoint(center.x(), center.y());
labelItem->setPos(layout[i] - (layout[i] - layout[i-1])/2 - center.x(), m_rect.bottom() + label_padding);
}
sauimone
minor code review fixes
r759 if ((i+1)%2 && i>1) {
Michal Klocek
Fixes shades counter
r551 QGraphicsRectItem *rectItem = static_cast<QGraphicsRectItem*>(shades.at(i/2-1));
rectItem->setRect(layout[i-1],m_rect.top(),layout[i]-layout[i-1],m_rect.height());
Michal Klocek
Axis refactoring to support better barcharts
r502 }
lineItem = static_cast<QGraphicsLineItem*>(axis.at(i+1));
lineItem->setLine(layout[i],m_rect.bottom(),layout[i],m_rect.bottom()+5);
}
Michal Klocek
Refactor qledgend handling...
r855
Michal Klocek
Axis refactoring to support better barcharts
r502 }
break;
case Y_AXIS:
{
QGraphicsLineItem *lineItem = static_cast<QGraphicsLineItem*>(axis.at(0));
lineItem->setLine(m_rect.left() , m_rect.top(), m_rect.left(), m_rect.bottom());
for (int i = 0; i < layout.size(); ++i) {
QGraphicsLineItem *lineItem = static_cast<QGraphicsLineItem*>(lines.at(i));
lineItem->setLine(m_rect.left() , layout[i], m_rect.right(), layout[i]);
QGraphicsSimpleTextItem *labelItem = static_cast<QGraphicsSimpleTextItem*>(labels.at(i));
Michal Klocek
Adds custom categories + example
r706
Michal Klocek
Bugfix: floating 0 in axi labels
r779 if (!categories || i<1) {
Michal Klocek
Adds custom categories + example
r706 labelItem->setText(ticksList.at(i));
Michal Klocek
Refactor qledgend handling...
r855 const QRectF& rect = labelItem->boundingRect();
minWidth=qMax(rect.width()+label_padding,minWidth);
minHeight+=rect.height();
QPointF center = rect.center();
Michal Klocek
Adds custom categories + example
r706 labelItem->setTransformOriginPoint(center.x(), center.y());
Michal Klocek
Refactor qledgend handling...
r855 labelItem->setPos(m_rect.left() - rect.width() - label_padding , layout[i]-center.y());
Michal Klocek
Bugfix: floating 0 in axi labels
r779 } else {
Michal Klocek
Adds custom categories + example
r706 labelItem->setText(ticksList.at(i));
Michal Klocek
Refactor qledgend handling...
r855 const QRectF& rect = labelItem->boundingRect();
minWidth=qMax(rect.width(),minWidth);
minHeight+=rect.height();
QPointF center = rect.center();
Michal Klocek
Adds custom categories + example
r706 labelItem->setTransformOriginPoint(center.x(), center.y());
Michal Klocek
Refactor qledgend handling...
r855 labelItem->setPos(m_rect.left() - rect.width() - label_padding , layout[i] - (layout[i] - layout[i-1])/2 -center.y());
Michal Klocek
Adds custom categories + example
r706 }
sauimone
minor code review fixes
r759 if ((i+1)%2 && i>1) {
Michal Klocek
Fixes shades counter
r551 QGraphicsRectItem *rectItem = static_cast<QGraphicsRectItem*>(shades.at(i/2-1));
Michal Klocek
Bugfix y shades drawn upsidedown
r578 rectItem->setRect(m_rect.left(),layout[i],m_rect.width(),layout[i-1]-layout[i]);
Michal Klocek
Axis refactoring to support better barcharts
r502 }
lineItem = static_cast<QGraphicsLineItem*>(axis.at(i+1));
lineItem->setLine(m_rect.left()-5,layout[i],m_rect.left(),layout[i]);
}
}
break;
default:
Michal Klocek
Improves build configuration...
r996 qWarning()<<"Unknown axis type";
Michal Klocek
Axis refactoring to support better barcharts
r502 break;
}
Michal Klocek
Refactor qledgend handling...
r855 m_layoutVector=layout;
presenter()->setMinimumMarginWidth(this,minWidth);
presenter()->setMinimumMarginHeight(this,minHeight);
Michal Klocek
Axis refactoring to support better barcharts
r502 }
Michal Klocek
Refactors axis layout managment...
r291
Michal Klocek
Changes QChartAxis -> QAxis
r1006 bool ChartAxis::isEmpty()
Michal Klocek
Axis refactoring to support better barcharts
r502 {
Jani Honkonen
Use qFuzzyIsNull to compare (in)equality of real values
r768 return m_rect.isEmpty() || qFuzzyIsNull(m_min - m_max) || m_ticksCount==0;
Michal Klocek
Refactors axis layout managment...
r291 }
Michal Klocek
Adds refactored axis to presenter
r140
Michal Klocek
Refactor domain model...
r439 //handlers
Michal Klocek
Changes QChartAxis -> QAxis
r1006 void ChartAxis::handleAxisCategoriesUpdated()
Michal Klocek
Adds draft of axis bar label support
r497 {
sauimone
minor code review fixes
r759 if (isEmpty()) return;
Michal Klocek
Axis refactoring to support better barcharts
r502 updateLayout(m_layoutVector);
Michal Klocek
Adds draft of axis bar label support
r497 }
Michal Klocek
Changes QChartAxis -> QAxis
r1006 void ChartAxis::handleAxisUpdated()
Michal Klocek
Refactor domain model...
r439 {
Michal Klocek
Adds draft of axis bar label support
r497
sauimone
more minor code review fixes
r745 if (isEmpty()) return;
Michal Klocek
Refactor domain model...
r439
sauimone
more minor code review fixes
r745 if (m_chartAxis->isAxisVisible()) {
Michal Klocek
Refactor domain model...
r439 setAxisOpacity(100);
sauimone
more minor code review fixes
r745 } else {
Michal Klocek
Refactor domain model...
r439 setAxisOpacity(0);
}
sauimone
minor code review fixes
r759 if (m_chartAxis->isGridLineVisible()) {
Michal Klocek
Refactor domain model...
r439 setGridOpacity(100);
sauimone
more minor code review fixes
r745 } else {
Michal Klocek
Refactor domain model...
r439 setGridOpacity(0);
}
sauimone
minor code review fixes
r759 if (m_chartAxis->labelsVisible()) {
Michal Klocek
Refactor domain model...
r439 setLabelsOpacity(100);
sauimone
more minor code review fixes
r745 } else {
Michal Klocek
Refactor domain model...
r439 setLabelsOpacity(0);
}
sauimone
more minor code review fixes
r745 if (m_chartAxis->shadesVisible()) {
Michal Klocek
Refactor domain model...
r439 setShadesOpacity(m_chartAxis->shadesOpacity());
sauimone
more minor code review fixes
r745 } else {
Michal Klocek
Refactor domain model...
r439 setShadesOpacity(0);
}
setLabelsAngle(m_chartAxis->labelsAngle());
setAxisPen(m_chartAxis->axisPen());
setLabelsPen(m_chartAxis->labelsPen());
setLabelsBrush(m_chartAxis->labelsBrush());
setLabelsFont(m_chartAxis->labelsFont());
Michal Klocek
Renames Grid to GridLine
r535 setGridPen(m_chartAxis->gridLinePen());
Michal Klocek
Refactor domain model...
r439 setShadesPen(m_chartAxis->shadesPen());
setShadesBrush(m_chartAxis->shadesBrush());
Michal Klocek
Refacotr axisitem to handle ticks changes
r452
Michal Klocek
Refactor domain model...
r439 }
Michal Klocek
Changes QChartAxis -> QAxis
r1006 void ChartAxis::handleRangeChanged(qreal min, qreal max,int tickCount)
Michal Klocek
Refactor domain model...
r439 {
Jani Honkonen
Use qFuzzyIsNull to compare (in)equality of real values
r768 if (qFuzzyIsNull(min - max) || tickCount < 2)
return;
Michal Klocek
Adds missing ticks hadnling
r554
Michal Klocek
Refacotr axisitem to handle ticks changes
r452 m_min = min;
m_max = max;
Michal Klocek
Adds missing ticks hadnling
r554 m_ticksCount= tickCount;
Michal Klocek
Adding zoom in out animation support
r513
sauimone
more minor code review fixes
r745 if (isEmpty()) return;
Michal Klocek
Axis refactoring to support better barcharts
r502 QVector<qreal> layout = calculateLayout();
updateLayout(layout);
Michal Klocek
Refactor domain model...
r439
Michal Klocek
Refacotr axisitem to handle ticks changes
r452 }
Michal Klocek
Refactor domain model...
r439
Michal Klocek
Changes QChartAxis -> QAxis
r1006 void ChartAxis::handleGeometryChanged(const QRectF &rect)
Michal Klocek
Refactor domain model...
r439 {
Michal Klocek
Refactor qledgend handling...
r855 if(m_rect != rect)
{
m_rect = rect;
if (isEmpty()) return;
QVector<qreal> layout = calculateLayout();
updateLayout(layout);
}
Michal Klocek
Refacotr axisitem to handle ticks changes
r452 }
Michal Klocek
Refactor domain model...
r439
Michal Klocek
Changes QChartAxis -> QAxis
r1006 void ChartAxis::axisSelected()
Michal Klocek
Refacotr axisitem to handle ticks changes
r452 {
Michal Klocek
Adds pimpl for qchartaxis and qchartaxiscategories
r963 qDebug()<<"TODO: axis clicked";
Michal Klocek
Refactor domain model...
r439 }
Michal Klocek
Changes QChartAxis -> QAxis
r1006 #include "moc_chartaxis_p.cpp"
Michal Klocek
Add zoom support...
r67
QTCOMMERCIALCHART_END_NAMESPACE