##// END OF EJS Templates
Revert "Enabled building of qml auto test module on OSX"...
Revert "Enabled building of qml auto test module on OSX" This reverts commit 7a0ee9611522981553ccedcfc48f4d3e81974892.

File last commit:

r2153:cd956b4e0b4d
r2212:85a13d18e131
Show More
chartaxis.cpp
474 lines | 12.7 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"
Michal Klocek
Refactors QAxis to QAbstractAxis...
r1541 #include "qabstractaxis.h"
#include "qabstractaxis_p.h"
Michal Klocek
Adds ZOrder enum to presenter
r262 #include "chartpresenter_p.h"
Michal Klocek
Refactors layout:...
r2105 #include "chartlayout_p.h"
Michal Klocek
Refactors Domain and Axis...
r1698 #include "domain_p.h"
Michal Klocek
Refactor QChart API...
r1577 #include <qmath.h>
Marek Rosa
Added QDateTimeAxis
r1717 #include <QDateTime>
Marek Rosa
QValueAxis: added posibility to specify label format
r1854 #include <QValueAxis>
Michal Klocek
Adds checkLayout call, when geometry of axis updated
r1890 #include <QGraphicsLayout>
Michal Klocek
Refactors layout...
r1965 #include <QFontMetrics>
Michal Klocek
Add zoom support...
r67
QTCOMMERCIALCHART_BEGIN_NAMESPACE
Jani Honkonen
src folder: another massive victory for coding style police
r2131 ChartAxis::ChartAxis(QAbstractAxis *axis, ChartPresenter *presenter, bool intervalAxis)
: ChartElement(presenter),
m_chartAxis(axis),
m_labelsAngle(0),
m_grid(new QGraphicsItemGroup(presenter->rootItem())),
m_shades(new QGraphicsItemGroup(presenter->rootItem())),
m_labels(new QGraphicsItemGroup(presenter->rootItem())),
m_arrow(new QGraphicsItemGroup(presenter->rootItem())),
m_title(new QGraphicsSimpleTextItem(presenter->rootItem())),
m_min(0),
m_max(0),
m_animation(0),
m_labelPadding(5),
m_intervalAxis(intervalAxis)
Michal Klocek
Add zoom support...
r67 {
Michal Klocek
Fix previous broken commit
r145 //initial initialization
Michal Klocek
Refactor Visibly methods of axis...
r1729 m_arrow->setZValue(ChartPresenter::AxisZValue);
m_arrow->setHandlesChildEvents(false);
Michal Klocek
Add missing zvalue setting in axis
r1745 m_labels->setZValue(ChartPresenter::AxisZValue);
Jani Honkonen
make QGraphicsItemGroup a pointer in axis
r784 m_shades->setZValue(ChartPresenter::ShadesZValue);
m_grid->setZValue(ChartPresenter::GridZValue);
Michal Klocek
Bug fix axis artefacts when title set
r2142 m_title->setZValue(ChartPresenter::GridZValue);
Michal Klocek
Refactor domain model...
r439
Jani Honkonen
src folder: another massive victory for coding style police
r2131 QObject::connect(m_chartAxis->d_ptr.data(), SIGNAL(updated()), this, SLOT(handleAxisUpdated()));
Michal Klocek
Axis refactoring to support better barcharts
r502
Michal Klocek
Refactors layout managment...
r1534 QGraphicsSimpleTextItem item;
m_font = item.font();
Michal Klocek
Bugfixes for layout...
r1837
Michal Klocek
Add zoom support...
r67 }
Michal Klocek
Changes QChartAxis -> QAxis
r1006 ChartAxis::~ChartAxis()
Michal Klocek
Add zoom support...
r67 {
}
Jani Honkonen
src folder: another massive victory for coding style police
r2131 void ChartAxis::setAnimation(AxisAnimation *animation)
Michal Klocek
Adds more axis handling...
r176 {
Jani Honkonen
src folder: another massive victory for coding style police
r2131 m_animation = animation;
Michal Klocek
Refactors axis animation, line animations
r1241 }
Michal Klocek
Animation refactor...
r530
Michal Klocek
Refactors axis animation, line animations
r1241 void ChartAxis::setLayout(QVector<qreal> &layout)
{
Jani Honkonen
src folder: another massive victory for coding style police
r2131 m_layoutVector = layout;
Michal Klocek
Refactors axis animation, line animations
r1241 }
void ChartAxis::createItems(int count)
{
Michal Klocek
Refactor Visibly methods of axis...
r1729 if (m_arrow->children().size() == 0)
Jani Honkonen
src folder: another massive victory for coding style police
r2131 m_arrow->addToGroup(new AxisItem(this, presenter()->rootItem()));
if (m_intervalAxis && m_grid->children().size() == 0) {
for (int i = 0 ; i < 2 ; i ++)
Michal Klocek
Refactors axis updateGeometry handling...
r2111 m_grid->addToGroup(new QGraphicsLineItem(presenter()->rootItem()));
}
Jani Honkonen
src folder: another massive victory for coding style police
r2131
Michal Klocek
Refactors axis handling...
r223 for (int i = 0; i < count; ++i) {
Michal Klocek
Serious bugfix of wrong parenting of axis grid, shades, and arrow
r1744 m_grid->addToGroup(new QGraphicsLineItem(presenter()->rootItem()));
m_labels->addToGroup(new QGraphicsSimpleTextItem(presenter()->rootItem()));
m_arrow->addToGroup(new QGraphicsLineItem(presenter()->rootItem()));
Jani Honkonen
src folder: another massive victory for coding style police
r2131 if ((m_grid->childItems().size()) % 2 && m_grid->childItems().size() > 2)
Michal Klocek
Refactors axis updateGeometry handling...
r2111 m_shades->addToGroup(new QGraphicsRectItem(presenter()->rootItem()));
Michal Klocek
Refactors axis animation, line animations
r1241 }
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();
Michal Klocek
Refactor Visibly methods of axis...
r1729 QList<QGraphicsItem *> axis = m_arrow->childItems();
Michal Klocek
Adds more axis handling...
r176
Michal Klocek
Refactors axis layout managment...
r291 for (int i = 0; i < count; ++i) {
Jani Honkonen
src folder: another massive victory for coding style police
r2131 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 {
Michal Klocek
Refactors axis animation, line animations
r1241 int diff = m_layoutVector.size() - layout.size();
Jani Honkonen
src folder: another massive victory for coding style police
r2131 if (diff > 0)
Michal Klocek
Refactors axis animation, line animations
r1241 deleteItems(diff);
Jani Honkonen
src folder: another massive victory for coding style police
r2131 else if (diff < 0)
Michal Klocek
Refactors axis animation, line animations
r1241 createItems(-diff);
Jani Honkonen
src folder: another massive victory for coding style police
r2131 if (diff < 0) handleAxisUpdated();
Michal Klocek
Refactors axis animation, line animations
r1241
if (m_animation) {
Jani Honkonen
src folder: another massive victory for coding style police
r2131 switch (presenter()->state()) {
case ChartPresenter::ZoomInState:
m_animation->setAnimationType(AxisAnimation::ZoomInAnimation);
m_animation->setAnimationPoint(presenter()->statePoint());
break;
case ChartPresenter::ZoomOutState:
m_animation->setAnimationType(AxisAnimation::ZoomOutAnimation);
m_animation->setAnimationPoint(presenter()->statePoint());
break;
case ChartPresenter::ScrollUpState:
case ChartPresenter::ScrollLeftState:
m_animation->setAnimationType(AxisAnimation::MoveBackwordAnimation);
break;
case ChartPresenter::ScrollDownState:
case ChartPresenter::ScrollRightState:
m_animation->setAnimationType(AxisAnimation::MoveForwardAnimation);
break;
case ChartPresenter::ShowState:
m_animation->setAnimationType(AxisAnimation::DefaultAnimation);
break;
}
m_animation->setValues(m_layoutVector, layout);
presenter()->startAnimation(m_animation);
} else {
sauimone
more minor code review fixes
r745 setLayout(layout);
Michal Klocek
Refactors axis animation, line animations
r1241 updateGeometry();
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
Refactor Visibly methods of axis...
r1729 void ChartAxis::setArrowOpacity(qreal opacity)
Michal Klocek
Fixes wrong shades zvalues
r184 {
Michal Klocek
Refactor Visibly methods of axis...
r1729 m_arrow->setOpacity(opacity);
Michal Klocek
Fixes wrong shades zvalues
r184 }
Michal Klocek
Refactor Visibly methods of axis...
r1729 qreal ChartAxis::arrowOpacity() const
Michal Klocek
Fixes wrong shades zvalues
r184 {
Michal Klocek
Refactor Visibly methods of axis...
r1729 return m_arrow->opacity();
}
void ChartAxis::setArrowVisibility(bool visible)
{
m_arrow->setOpacity(visible);
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
Refactor Visibly methods of axis...
r1729 void ChartAxis::setGridVisibility(bool visible)
{
m_grid->setOpacity(visible);
}
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
Refactor Visibly methods of axis...
r1729 void ChartAxis::setLabelsVisibility(bool visible)
{
m_labels->setOpacity(visible);
}
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
Refactor Visibly methods of axis...
r1729 void ChartAxis::setShadesVisibility(bool visible)
{
m_shades->setVisible(visible);
}
Michal Klocek
Changes QChartAxis -> QAxis
r1006 void ChartAxis::setLabelsAngle(int angle)
Michal Klocek
Adds more axis handling...
r176 {
Jani Honkonen
src folder: another massive victory for coding style police
r2131 foreach (QGraphicsItem *item, m_labels->childItems())
item->setRotation(angle);
Michal Klocek
Adds more axis handling...
r176
Jani Honkonen
src folder: another massive victory for coding style police
r2131 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
src folder: another massive victory for coding style police
r2131 foreach (QGraphicsItem *item , m_labels->childItems())
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
src folder: another massive victory for coding style police
r2131 foreach (QGraphicsItem *item , m_labels->childItems())
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
src folder: another massive victory for coding style police
r2131 if (m_font != font) {
Michal Klocek
Refactors layout...
r1965 m_font = font;
Jani Honkonen
src folder: another massive victory for coding style police
r2131 foreach (QGraphicsItem *item , m_labels->childItems())
static_cast<QGraphicsSimpleTextItem *>(item)->setFont(font);
Michal Klocek
Refactors layout...
r1965 QGraphicsLayoutItem::updateGeometry();
presenter()->layout()->invalidate();
}
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
src folder: another massive victory for coding style police
r2131 foreach (QGraphicsItem *item , m_shades->childItems())
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
src folder: another massive victory for coding style police
r2131 foreach (QGraphicsItem *item , m_shades->childItems())
static_cast<QGraphicsRectItem *>(item)->setPen(pen);
Michal Klocek
Adds more axis handling...
r176 }
Michal Klocek
Refactor Visibly methods of axis...
r1729 void ChartAxis::setArrowPen(const QPen &pen)
Michal Klocek
Fixes wrong shades zvalues
r184 {
Jani Honkonen
src folder: another massive victory for coding style police
r2131 foreach (QGraphicsItem *item , m_arrow->childItems())
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
src folder: another massive victory for coding style police
r2131 foreach (QGraphicsItem *item , m_grid->childItems())
static_cast<QGraphicsLineItem *>(item)->setPen(pen);
Michal Klocek
Refactors layout:...
r2105 }
void ChartAxis::setLabelPadding(int padding)
{
Jani Honkonen
src folder: another massive victory for coding style police
r2131 m_labelPadding = padding;
Michal Klocek
Adds more axis handling...
r176 }
Michal Klocek
Changes QChartAxis -> QAxis
r1006 bool ChartAxis::isEmpty()
Michal Klocek
Axis refactoring to support better barcharts
r502 {
Michal Klocek
Bug fix axis artefacts when title set
r2142 return m_axisRect.isEmpty() || m_gridRect.isEmpty() || qFuzzyIsNull(m_min - m_max);
Michal Klocek
Refactors axis layout managment...
r291 }
Michal Klocek
Adds refactored axis to presenter
r140
Michal Klocek
Refactors Domain and Axis...
r1698 void ChartAxis::handleDomainUpdated()
Michal Klocek
Adds draft of axis bar label support
r497 {
Jani Honkonen
src folder: another massive victory for coding style police
r2131 Domain *domain = qobject_cast<Domain *>(sender());
Michal Klocek
Refactors Domain and Axis...
r1698 qreal min(0);
qreal max(0);
Jani Honkonen
src folder: another massive victory for coding style police
r2131 if (m_chartAxis->orientation() == Qt::Horizontal) {
Michal Klocek
Refactors Domain and Axis...
r1698 min = domain->minX();
max = domain->maxX();
Jani Honkonen
src folder: another massive victory for coding style police
r2131 } else if (m_chartAxis->orientation() == Qt::Vertical) {
Michal Klocek
Refactors Domain and Axis...
r1698 min = domain->minY();
max = domain->maxY();
}
Jani Honkonen
src folder: another massive victory for coding style police
r2131 if (!qFuzzyIsNull(m_min - min) || !qFuzzyIsNull(m_max - max)) {
Michal Klocek
Refactors Domain and Axis...
r1698 m_min = min;
m_max = max;
if (!isEmpty()) {
Michal Klocek
Refactors layout...
r1965
Michal Klocek
Refactors Domain and Axis...
r1698 QVector<qreal> layout = calculateLayout();
updateLayout(layout);
Michal Klocek
Updates axis drawing code...
r2133 QSizeF before = effectiveSizeHint(Qt::PreferredSize);
QSizeF after = sizeHint(Qt::PreferredSize);
Michal Klocek
Refactors layout...
r1965
Jani Honkonen
src folder: another massive victory for coding style police
r2131 if (before != after) {
Michal Klocek
Refactors layout...
r1965 QGraphicsLayoutItem::updateGeometry();
//we don't want to call invalidate on layout, since it will change minimum size of component,
//which we would like to avoid since it causes nasty flips when scrolling or zooming,
//instead recalculate layout and use plotArea for extra space.
presenter()->layout()->setGeometry(presenter()->layout()->geometry());
}
Michal Klocek
Refactors Domain and Axis...
r1698 }
}
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 {
Jani Honkonen
src folder: another massive victory for coding style police
r2131 if (isEmpty())
return;
Michal Klocek
Adds visibity paramter to axis
r1617
Michal Klocek
Refactor Visibly methods of axis...
r1729 bool visible = m_chartAxis->isVisible();
Michal Klocek
Adds visibity paramter to axis
r1617
Michal Klocek
Makes theming axis title aware
r2153 //TODO: split this into separate signal/slots ?
Marek Rosa
QAbstractAxis: renamed Arrow and Axis to line in methods names
r1844 setArrowVisibility(visible && m_chartAxis->isLineVisible());
Michal Klocek
Refactor Visibly methods of axis...
r1729 setGridVisibility(visible && m_chartAxis->isGridLineVisible());
setLabelsVisibility(visible && m_chartAxis->labelsVisible());
setShadesVisibility(visible && m_chartAxis->shadesVisible());
Michal Klocek
Refactor domain model...
r439 setLabelsAngle(m_chartAxis->labelsAngle());
Marek Rosa
QAbstractAxis: renamed Arrow and Axis to line in methods names
r1844 setArrowPen(m_chartAxis->linePen());
Michal Klocek
Refactor domain model...
r439 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
Refactors layout...
r1965 setTitleText(m_chartAxis->title());
Michal Klocek
Makes theming axis title aware
r2153 setTitleFont(m_chartAxis->titleFont());
setTitlePen(m_chartAxis->titlePen());
setTitleBrush(m_chartAxis->titleBrush());
Michal Klocek
Refactors layout...
r1965 }
Michal Klocek
Refacotr axisitem to handle ticks changes
r452
Jani Honkonen
src folder: another massive victory for coding style police
r2131 void ChartAxis::setTitleText(const QString &title)
Michal Klocek
Refactors layout...
r1965 {
Jani Honkonen
src folder: another massive victory for coding style police
r2131 if (m_titleText != title) {
Michal Klocek
Refactors layout...
r1965 m_titleText = title;
QGraphicsLayoutItem::updateGeometry();
presenter()->layout()->invalidate();
}
Michal Klocek
Refactor domain model...
r439 }
Michal Klocek
Makes theming axis title aware
r2153 void ChartAxis::setTitlePen(const QPen &pen)
{
m_title->setPen(pen);
}
void ChartAxis::setTitleBrush(const QBrush &brush)
{
m_title->setBrush(brush);
}
void ChartAxis::setTitleFont(const QFont &font)
{
if(m_title->font() != font){
m_title->setFont(font);
QGraphicsLayoutItem::updateGeometry();
presenter()->layout()->invalidate();
}
}
QFont ChartAxis::titleFont() const
{
return m_title->font();
}
Michal Klocek
Refactor Visibly methods of axis...
r1729 void ChartAxis::hide()
{
setArrowVisibility(false);
setGridVisibility(false);
setLabelsVisibility(false);
setShadesVisibility(false);
}
Michal Klocek
Refactors layout:...
r2105 void ChartAxis::setGeometry(const QRectF &axis, const QRectF &grid)
Michal Klocek
Refactor domain model...
r439 {
Jani Honkonen
src folder: another massive victory for coding style police
r2131 m_gridRect = grid;
m_axisRect = axis;
Michal Klocek
Refactors layout...
r1965
Jani Honkonen
src folder: another massive victory for coding style police
r2131 if (isEmpty())
return;
Michal Klocek
Refactors layout...
r1965
Jani Honkonen
src folder: another massive victory for coding style police
r2131 QVector<qreal> layout = calculateLayout();
updateLayout(layout);
Michal Klocek
Refactors layout managment...
r1534
Marek Rosa
Multiaxis support...
r2093 }
Michal Klocek
Changes QChartAxis -> QAxis
r1006 void ChartAxis::axisSelected()
Michal Klocek
Refacotr axisitem to handle ticks changes
r452 {
Michal Klocek
Refactors layout...
r1965 //TODO: axis clicked;
Michal Klocek
Refactor domain model...
r439 }
Michal Klocek
Refactors layout...
r1965 Qt::Orientation ChartAxis::orientation() const
Michal Klocek
Adds checkLayout call, when geometry of axis updated
r1890 {
Michal Klocek
Refactors layout...
r1965 return m_chartAxis->orientation();
}
Michal Klocek
Adds checkLayout call, when geometry of axis updated
r1890
Michal Klocek
Refactors layout:...
r2105 Qt::Alignment ChartAxis::alignment() const
Marek Rosa
Multiaxis support...
r2093 {
Michal Klocek
Refactors layout:...
r2105 return m_chartAxis->alignment();
Marek Rosa
Multiaxis support...
r2093 }
Michal Klocek
Refactors layout...
r1965 bool ChartAxis::isVisible()
{
return m_chartAxis->isVisible();
}
Jani Honkonen
src folder: another massive victory for coding style police
r2131 void ChartAxis::setLabels(const QStringList &labels)
Michal Klocek
Refactors axis updateGeometry handling...
r2111 {
Jani Honkonen
src folder: another massive victory for coding style police
r2131 m_labelsList = labels;
Michal Klocek
Refactors axis updateGeometry handling...
r2111 }
QStringList ChartAxis::createValueLabels(int ticks) const
{
Jani Honkonen
src folder: another massive victory for coding style police
r2131 Q_ASSERT(m_max > m_min);
Q_ASSERT(ticks > 1);
Michal Klocek
Refactors axis updateGeometry handling...
r2111
QStringList labels;
Jani Honkonen
src folder: another massive victory for coding style police
r2131 int n = qMax(int(-qFloor(log10((m_max - m_min) / (ticks - 1)))), 0);
Michal Klocek
Refactors axis updateGeometry handling...
r2111 n++;
QValueAxis *axis = qobject_cast<QValueAxis *>(m_chartAxis);
QString format = axis->labelFormat();
Jani Honkonen
src folder: another massive victory for coding style police
r2131 if (format.isNull()) {
for (int i = 0; i < ticks; i++) {
qreal value = m_min + (i * (m_max - m_min) / (ticks - 1));
labels << QString::number(value, 'f', n);
Michal Klocek
Refactors axis updateGeometry handling...
r2111 }
Jani Honkonen
src folder: another massive victory for coding style police
r2131 } else {
Michal Klocek
Refactors axis updateGeometry handling...
r2111 QByteArray array = format.toAscii();
Jani Honkonen
src folder: another massive victory for coding style police
r2131 for (int i = 0; i < ticks; i++) {
qreal value = m_min + (i * (m_max - m_min) / (ticks - 1));
Michal Klocek
Refactors axis updateGeometry handling...
r2111 labels << QString().sprintf(array, value);
}
}
return labels;
}
Jani Honkonen
src folder: another massive victory for coding style police
r2131 QStringList ChartAxis::createDateTimeLabels(const QString &format, int ticks) const
Michal Klocek
Refactors axis updateGeometry handling...
r2111 {
Jani Honkonen
src folder: another massive victory for coding style police
r2131 Q_ASSERT(m_max > m_min);
Q_ASSERT(ticks > 1);
Michal Klocek
Refactors axis updateGeometry handling...
r2111 QStringList labels;
Jani Honkonen
src folder: another massive victory for coding style police
r2131 int n = qMax(int(-floor(log10((m_max - m_min) / (ticks - 1)))), 0);
Michal Klocek
Refactors axis updateGeometry handling...
r2111 n++;
Jani Honkonen
src folder: another massive victory for coding style police
r2131 for (int i = 0; i < ticks; i++) {
qreal value = m_min + (i * (m_max - m_min) / (ticks - 1));
Michal Klocek
Refactors axis updateGeometry handling...
r2111 labels << QDateTime::fromMSecsSinceEpoch(value).toString(format);
}
return labels;
}
Michal Klocek
Refactors ChartAxis...
r2138 QSizeF ChartAxis::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const
{
Q_UNUSED(which);
Q_UNUSED(constraint);
return QSizeF();
}
Michal Klocek
Changes QChartAxis -> QAxis
r1006 #include "moc_chartaxis_p.cpp"
Michal Klocek
Add zoom support...
r67
QTCOMMERCIALCHART_END_NAMESPACE