From 8dbddb2db8835e1555b81f30c6d7a0ddc504fc8a 2012-05-23 11:09:40 From: Michal Klocek Date: 2012-05-23 11:09:40 Subject: [PATCH] prevents flipping in xyseries animation --- diff --git a/src/animations/chartanimator.cpp b/src/animations/chartanimator.cpp index 6a16e6a..abc0366 100644 --- a/src/animations/chartanimator.cpp +++ b/src/animations/chartanimator.cpp @@ -199,8 +199,7 @@ void ChartAnimator::setState(State state, const QPointF &point) void ChartAnimator::startAnimation(XYAnimation* animation) { Q_ASSERT(animation); - if (animation->state() != QAbstractAnimation::Stopped) - animation->stop(); + if (animation->state() != QAbstractAnimation::Stopped) animation->stop(); animation->setDuration(ChartAnimationDuration); animation->setEasingCurve(QEasingCurve::OutQuart); QTimer::singleShot(0, animation, SLOT(start())); diff --git a/src/animations/xyanimation.cpp b/src/animations/xyanimation.cpp index 368cda7..104f84a 100644 --- a/src/animations/xyanimation.cpp +++ b/src/animations/xyanimation.cpp @@ -39,11 +39,14 @@ XYAnimation::~XYAnimation() void XYAnimation::setAnimationType(Animation type) { + if (state() != QAbstractAnimation::Stopped) stop(); m_type=type; } void XYAnimation::setValues(QVector &oldPoints, QVector &newPoints, int index) { + if (state() != QAbstractAnimation::Stopped) stop(); + int x = oldPoints.count(); int y = newPoints.count(); diff --git a/src/xychart/xychart.cpp b/src/xychart/xychart.cpp index 4f00e7d..bebd94c 100644 --- a/src/xychart/xychart.cpp +++ b/src/xychart/xychart.cpp @@ -274,7 +274,7 @@ void XYChart::handleDomainChanged(qreal minX, qreal maxX, qreal minY, qreal maxY QVector points = calculateGeometryPoints(); if(m_animation) { - m_animation->setAnimationType(XYAnimation::LineDrawAnimation); + m_animation->setAnimationType(XYAnimation::MoveDownAnimation); } updateChart(m_points,points); }