##// 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:

r2104:f8a933676fbd
r2212:85a13d18e131
Show More
splinechartitem.cpp
171 lines | 4.7 KiB | text/x-c | CppLexer
Jani Honkonen
Add license headers
r794 /****************************************************************************
Michal Klocek
Refactor xychartitem -> xychart
r1218 **
** 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$
**
****************************************************************************/
Jani Honkonen
Add license headers
r794
Marek Rosa
Renamed SplinePresenter to SplineChartItem
r460 #include "splinechartitem_p.h"
Michal Klocek
Adds big fat pimpl to series classes...
r938 #include "qsplineseries_p.h"
Michal Klocek
Refactor animation to fit line,spline,scatter...
r476 #include "chartpresenter_p.h"
Michal Klocek
Refactor animator...
r1735 #include "splineanimation_p.h"
Marek Rosa
Spline working somewhat
r401 #include <QPainter>
Michal Klocek
Refactor xychartitem -> xychart
r1218 #include <QGraphicsSceneMouseEvent>
Marek Rosa
Spline initial
r295
Marek Rosa
Spline working somewhat
r401 QTCOMMERCIALCHART_BEGIN_NAMESPACE
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 SplineChartItem::SplineChartItem(QSplineSeries *series, ChartPresenter *presenter)
: XYChart(series, presenter),
QGraphicsItem(presenter ? presenter->rootItem() : 0),
m_series(series),
m_pointsVisible(false),
m_animation(0)
Marek Rosa
Spline initial
r295 {
Michal Klocek
Fixes mouse handling in base class of chartseries
r1747 setZValue(ChartPresenter::SplineChartZValue);
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 QObject::connect(m_series->d_func(), SIGNAL(updated()), this, SLOT(handleUpdated()));
Tero Ahola
Visible property to abstract series
r1342 QObject::connect(series, SIGNAL(visibleChanged()), this, SLOT(handleUpdated()));
Tero Ahola
Added opacity property to QAbstractSeries
r2067 QObject::connect(series, SIGNAL(opacityChanged()), this, SLOT(handleUpdated()));
Michal Klocek
Refactor animation to fit line,spline,scatter...
r476 handleUpdated();
Marek Rosa
Spline initial
r295 }
Michal Klocek
Refactor line spline to common xyline...
r465 QRectF SplineChartItem::boundingRect() const
{
return m_rect;
}
Marek Rosa
Spline initial
r295
Michal Klocek
Refactor line spline to common xyline...
r465 QPainterPath SplineChartItem::shape() const
{
return m_path;
}
Marek Rosa
Spline working somewhat
r401
Jani Honkonen
more coding style fixes for src-folder...
r2104 void SplineChartItem::setAnimation(SplineAnimation *animation)
Michal Klocek
Refactors animation handling for xyseries
r1217 {
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 m_animation = animation;
Michal Klocek
Refactor xychartitem -> xychart
r1218 XYChart::setAnimation(animation);
Michal Klocek
Refactors animation handling for xyseries
r1217 }
Jani Honkonen
more coding style fixes for src-folder...
r2104 ChartAnimation *SplineChartItem::animation() const
Michal Klocek
Refactor animator...
r1735 {
return m_animation;
}
Michal Klocek
Refactors animation handling for xyseries
r1217 void SplineChartItem::setControlGeometryPoints(QVector<QPointF>& points)
{
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 m_controlPoints = points;
Michal Klocek
Refactors animation handling for xyseries
r1217 }
QVector<QPointF> SplineChartItem::controlGeometryPoints() const
{
return m_controlPoints;
}
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 void SplineChartItem::updateChart(QVector<QPointF> &oldPoints, QVector<QPointF> &newPoints, int index)
Michal Klocek
Bugfixes for spline vector allocation issues
r1082 {
Michal Klocek
Improves spline interpolation...
r622 QVector<QPointF> controlPoints;
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 if (newPoints.count() >= 2)
controlPoints.resize(newPoints.count() * 2 - 2);
Michal Klocek
Improves spline interpolation...
r622
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 for (int i = 0; i < newPoints.size() - 1; i++) {
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 controlPoints[2 * i] = calculateGeometryControlPoint(2 * i);
Michal Klocek
Improves spline interpolation...
r622 controlPoints[2 * i + 1] = calculateGeometryControlPoint(2 * i + 1);
}
Tero Ahola
Minor: extra colons, commented out code
r1782 if (m_animation)
m_animation->setup(oldPoints, newPoints, m_controlPoints, controlPoints, index);
Michal Klocek
Improves spline interpolation...
r622
Tero Ahola
Minor: extra colons, commented out code
r1782 m_points = newPoints;
m_controlPoints = controlPoints;
Michal Klocek
Refactor spline animation handling...
r1770 setDirty(false);
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 if (m_animation)
Michal Klocek
Refactors axis animation, line animations
r1241 presenter()->startAnimation(m_animation);
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 else
Michal Klocek
Refactors animation handling for xyseries
r1217 updateGeometry();
Michal Klocek
Improves spline interpolation...
r622 }
Marek Rosa
Renamed SplinePresenter to SplineChartItem
r460 QPointF SplineChartItem::calculateGeometryControlPoint(int index) const
Marek Rosa
Spline working somewhat
r401 {
Michal Klocek
Refactor xychartitem -> xychart
r1218 return XYChart::calculateGeometryPoint(m_series->d_func()->controlPoint(index));
Marek Rosa
Spline with problems
r419 }
Michal Klocek
Refactors animation handling for xyseries
r1217 void SplineChartItem::updateGeometry()
Tero Ahola
Work-around for a bug in Clang compiler
r946 {
Tero Ahola
Minor: extra colons, commented out code
r1782 const QVector<QPointF> &points = m_points;
const QVector<QPointF> &controlPoints = m_controlPoints;
Tero Ahola
Work-around for a bug in Clang compiler
r946
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 if ((points.size() < 2) || (controlPoints.size() < 2)) {
prepareGeometryChange();
Marek Rosa
XYSeries model support refactored
r1085 m_path = QPainterPath();
Michal Klocek
adds QLineAnimation fixes
r1271 m_rect = QRect();
Marek Rosa
Added support for adding and removing data with model. Updated the example
r545 return;
}
Marek Rosa
Spline somewhat working
r423
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 Q_ASSERT(points.count() * 2 - 2 == controlPoints.count());
Michal Klocek
Improves spline interpolation...
r622
QPainterPath splinePath(points.at(0));
Marek Rosa
Spline somewhat working
r423
sauimone
minor code review issues. indent, spaces, brackets etc.
r743 for (int i = 0; i < points.size() - 1; i++) {
Jani Honkonen
more coding style fixes for src-folder...
r2104 const QPointF &point = points.at(i + 1);
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 splinePath.cubicTo(controlPoints[2 * i], controlPoints[2 * i + 1], point);
Marek Rosa
Spline somewhat working
r423 }
prepareGeometryChange();
m_path = splinePath;
m_rect = splinePath.boundingRect();
Michal Klocek
Refactor xychartitem -> xychart
r1218 setPos(origin());
Michal Klocek
Refactor line spline to common xyline...
r465 }
Michal Klocek
Refactor animation to fit line,spline,scatter...
r476 //handlers
void SplineChartItem::handleUpdated()
{
Tero Ahola
Fixed isVisible implementation in XY series
r1346 setVisible(m_series->isVisible());
Tero Ahola
Added opacity property to QAbstractSeries
r2067 setOpacity(m_series->opacity());
Michal Klocek
Adds visible points handling to spline
r580 m_pointsVisible = m_series->pointsVisible();
m_linePen = m_series->pen();
m_pointPen = m_series->pen();
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 m_pointPen.setWidthF(2 * m_pointPen.width());
Michal Klocek
Refactor animation to fit line,spline,scatter...
r476 update();
}
//painter
Michal Klocek
Refactor line spline to common xyline...
r465
Marek Rosa
Renamed SplinePresenter to SplineChartItem
r460 void SplineChartItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
Marek Rosa
Spline somewhat working
r423 {
Tero Ahola
Squashed bunch of warnings
r611 Q_UNUSED(widget)
Q_UNUSED(option)
Tero Ahola
Fixed isVisible implementation in XY series
r1346
painter->save();
painter->setClipRect(clipRect());
painter->setPen(m_linePen);
painter->drawPath(m_path);
if (m_pointsVisible) {
painter->setPen(m_pointPen);
painter->drawPoints(geometryPoints());
Michal Klocek
Adds visible points handling to spline
r580 }
Tero Ahola
Fixed isVisible implementation in XY series
r1346 painter->restore();
Marek Rosa
Spline somewhat working
r423 }
Marek Rosa
Experimenting
r417
Michal Klocek
Refactor xychartitem -> xychart
r1218 void SplineChartItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
emit XYChart::clicked(calculateDomainPoint(event->pos()));
Michal Klocek
Fixes mouse handling in base class of chartseries
r1747 QGraphicsItem::mousePressEvent(event);
Michal Klocek
Refactor xychartitem -> xychart
r1218 }
Michal Klocek
Refactor animation to fit line,spline,scatter...
r476
Marek Rosa
Renamed SplinePresenter to SplineChartItem
r460 #include "moc_splinechartitem_p.cpp"
Marek Rosa
Spline working somewhat
r401
QTCOMMERCIALCHART_END_NAMESPACE