diff options
Diffstat (limited to 'src/charts/animations/boxplotanimation.cpp')
-rw-r--r-- | src/charts/animations/boxplotanimation.cpp | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/src/charts/animations/boxplotanimation.cpp b/src/charts/animations/boxplotanimation.cpp new file mode 100644 index 00000000..cfd474bb --- /dev/null +++ b/src/charts/animations/boxplotanimation.cpp @@ -0,0 +1,97 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +#include "boxplotanimation_p.h" +#include "boxplotchartitem_p.h" +#include "boxwhiskersdata_p.h" +#include "boxwhiskersanimation_p.h" + +QT_CHARTS_BEGIN_NAMESPACE + +BoxPlotAnimation::BoxPlotAnimation(BoxPlotChartItem *item) + : QObject(item), + m_item(item) +{ +} + +BoxPlotAnimation::~BoxPlotAnimation() +{ +} + +void BoxPlotAnimation::addBox(BoxWhiskers *box) +{ + BoxWhiskersAnimation *animation = m_animations.value(box); + if (!animation) { + animation = new BoxWhiskersAnimation(box, this); + m_animations.insert(box, animation); + BoxWhiskersData start; + start.m_lowerExtreme = box->m_data.m_median; + start.m_lowerQuartile = box->m_data.m_median; + start.m_median = box->m_data.m_median; + start.m_upperQuartile = box->m_data.m_median; + start.m_upperExtreme = box->m_data.m_median; + animation->setup(start, box->m_data); + } else { + animation->stop(); + animation->setEndData(box->m_data); + } +} + +ChartAnimation *BoxPlotAnimation::boxAnimation(BoxWhiskers *box) +{ + BoxWhiskersAnimation *animation = m_animations.value(box); + if (animation) + animation->m_changeAnimation = false; + + return animation; +} + +ChartAnimation *BoxPlotAnimation::boxChangeAnimation(BoxWhiskers *box) +{ + BoxWhiskersAnimation *animation = m_animations.value(box); + animation->m_changeAnimation = true; + animation->setEndData(box->m_data); + + return animation; +} + +void BoxPlotAnimation::setAnimationStart(BoxWhiskers *box) +{ + BoxWhiskersAnimation *animation = m_animations.value(box); + animation->setStartData(box->m_data); +} + +void BoxPlotAnimation::stopAll() +{ + foreach (BoxWhiskers *box, m_animations.keys()) { + BoxWhiskersAnimation *animation = m_animations.value(box); + animation->stopAndDestroyLater(); + m_animations.remove(box); + } +} + +void BoxPlotAnimation::removeBoxAnimation(BoxWhiskers *box) +{ + m_animations.remove(box); +} + +#include "moc_boxplotanimation_p.cpp" + +QT_CHARTS_END_NAMESPACE |