summaryrefslogtreecommitdiffstats
path: root/src/charts/animations/boxplotanimation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/charts/animations/boxplotanimation.cpp')
-rw-r--r--src/charts/animations/boxplotanimation.cpp97
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