##// END OF EJS Templates
Check that areaseries is actually in chart before trying to update....
Check that areaseries is actually in chart before trying to update. When a line series is used both as a series on chart and as an area series boundary, but not at the same time, animation can sometimes get confused as to what series to update if the area series is removed from the chart and the line series is added to the chart while a series animation is running. Task-number: QTRD-3445 Change-Id: Ia3d72d3ceba784b6e162b2c9b678acdc3e3ffcac Reviewed-by: Titta Heikkala <titta.heikkala@theqtcompany.com>

File last commit:

r2776:bc1f6aa59d42
r2800:891ed0097501
Show More
pieanimation.cpp
108 lines | 3.2 KiB | text/x-c | CppLexer
Jani Honkonen
Add license headers
r794 /****************************************************************************
**
Titta Heikkala
Copyright header changes...
r2776 ** Copyright (C) 2015 The Qt Company Ltd
Jani Honkonen
Add license headers
r794 ** All rights reserved.
Titta Heikkala
Copyright header changes...
r2776 ** For any questions to The Qt Company, please use contact form at http://qt.io
Jani Honkonen
Add license headers
r794 **
Titta Heikkala
Updated license headers...
r2740 ** This file is part of the Qt Charts module.
Jani Honkonen
Add license headers
r794 **
Titta Heikkala
Updated license headers...
r2740 ** Licensees holding valid commercial license for Qt may use this file in
** accordance with the Qt License Agreement provided with the Software
** or, alternatively, in accordance with the terms contained in a written
Titta Heikkala
Copyright header changes...
r2776 ** agreement between you and The Qt Company.
Jani Honkonen
Add license headers
r794 **
** If you have questions regarding the use of this file, please use
Titta Heikkala
Updated license headers...
r2740 ** contact form at http://qt.io
Jani Honkonen
Add license headers
r794 **
****************************************************************************/
Titta Heikkala
Fix include syntax...
r2714 #include <private/pieanimation_p.h>
#include <private/piesliceanimation_p.h>
#include <private/piechartitem_p.h>
Jani Honkonen
Add animations to pie. Works but has some visual issues when adding slices.
r618
Titta Heikkala
Qt Charts project file structure change...
r2712 QT_CHARTS_BEGIN_NAMESPACE
Jani Honkonen
Add animations to pie. Works but has some visual issues when adding slices.
r618
PieAnimation::PieAnimation(PieChartItem *item)
Jani Honkonen
astyle and manual coding style fixes for src-folder
r2097 : ChartAnimation(item),
m_item(item)
Jani Honkonen
Add animations to pie. Works but has some visual issues when adding slices.
r618 {
}
PieAnimation::~PieAnimation()
{
}
Jani Honkonen
more coding style fixes for src-folder...
r2104 ChartAnimation *PieAnimation::updateValue(PieSliceItem *sliceItem, const PieSliceData &sliceData)
Jani Honkonen
Add animations to pie. Works but has some visual issues when adding slices.
r618 {
Jani Honkonen
Refactor piechart to avoid using invalid QPieSlice pointers....
r1053 PieSliceAnimation *animation = m_animations.value(sliceItem);
Jani Honkonen
Fix pie animation chrash
r2321 if (!animation) {
animation = new PieSliceAnimation(sliceItem);
m_animations.insert(sliceItem, animation);
} else {
animation->stop();
}
Jani Honkonen
Refactoring pie series and animations.
r621
Jani Honkonen
Rename PieSliceLayout -> PieSliceData. A "layout" is a bad name for this.
r668 animation->updateValue(sliceData);
Jani Honkonen
Use same animation duration for all series animations.
r1079 animation->setDuration(ChartAnimationDuration);
Jani Honkonen
Refactoring pie series and animations.
r621 animation->setEasingCurve(QEasingCurve::OutQuart);
Michal Klocek
Refactor animator...
r1735 return animation;
Jani Honkonen
Refactoring pie series and animations.
r621 }
Jani Honkonen
more coding style fixes for src-folder...
r2104 ChartAnimation *PieAnimation::addSlice(PieSliceItem *sliceItem, const PieSliceData &sliceData, bool startupAnimation)
Jani Honkonen
Refactoring pie series and animations.
r621 {
Jani Honkonen
Refactor piechart to avoid using invalid QPieSlice pointers....
r1053 PieSliceAnimation *animation = new PieSliceAnimation(sliceItem);
m_animations.insert(sliceItem, animation);
Jani Honkonen
Refactoring pie series and animations.
r621
Jani Honkonen
Rename PieSliceLayout -> PieSliceData. A "layout" is a bad name for this.
r668 PieSliceData startValue = sliceData;
startValue.m_radius = 0;
Jani Honkonen
Refactor graphical side of pie to simplify the implementation.
r1074 if (startupAnimation)
Jani Honkonen
Rename PieSliceLayout -> PieSliceData. A "layout" is a bad name for this.
r668 startValue.m_startAngle = 0;
Jani Honkonen
Nicer animation for adding a pie initially.
r634 else
Marek Rosa
Animation folder formating: white spaces, brackets, etc fixed
r738 startValue.m_startAngle = sliceData.m_startAngle + (sliceData.m_angleSpan / 2);
Jani Honkonen
Rename PieSliceLayout -> PieSliceData. A "layout" is a bad name for this.
r668 startValue.m_angleSpan = 0;
Jani Honkonen
Refactoring pie series and animations.
r621
Marek Rosa
Donut support simplified. Examples updated
r1838 if (sliceData.m_holeRadius > 0)
startValue.m_radius = sliceData.m_holeRadius;
Jani Honkonen
pie: finetuning donut animations...
r1758
animation->setValue(startValue, sliceData);
Jani Honkonen
Use same animation duration for all series animations.
r1079 animation->setDuration(ChartAnimationDuration);
Jani Honkonen
Refactoring pie series and animations.
r621 animation->setEasingCurve(QEasingCurve::OutQuart);
Michal Klocek
Refactor animator...
r1735
return animation;
Jani Honkonen
Refactoring pie series and animations.
r621 }
Jani Honkonen
more coding style fixes for src-folder...
r2104 ChartAnimation *PieAnimation::removeSlice(PieSliceItem *sliceItem)
Jani Honkonen
Refactoring pie series and animations.
r621 {
Jani Honkonen
Refactor piechart to avoid using invalid QPieSlice pointers....
r1053 PieSliceAnimation *animation = m_animations.value(sliceItem);
Jani Honkonen
Refactoring pie series and animations.
r621 Q_ASSERT(animation);
animation->stop();
Jani Honkonen
Rename PieSliceLayout -> PieSliceData. A "layout" is a bad name for this.
r668 PieSliceData endValue = animation->currentSliceValue();
Marek Rosa
Donut support simplified. Examples updated
r1838 if (endValue.m_holeRadius > 0)
endValue.m_radius = endValue.m_holeRadius;
Jani Honkonen
pie: finetuning donut animations...
r1758 else
endValue.m_radius = 0;
Jani Honkonen
Rename PieSliceLayout -> PieSliceData. A "layout" is a bad name for this.
r668 endValue.m_startAngle = endValue.m_startAngle + endValue.m_angleSpan;
endValue.m_angleSpan = 0;
Jani Honkonen
Slice remove animation hides the label
r1075 endValue.m_isLabelVisible = false;
Jani Honkonen
Refactoring pie series and animations.
r621
Jani Honkonen
Rename PieSliceLayout -> PieSliceData. A "layout" is a bad name for this.
r668 animation->updateValue(endValue);
Jani Honkonen
Use same animation duration for all series animations.
r1079 animation->setDuration(ChartAnimationDuration);
Jani Honkonen
Add animations to pie. Works but has some visual issues when adding slices.
r618 animation->setEasingCurve(QEasingCurve::OutQuart);
Jani Honkonen
Refactoring pie series and animations.
r621
Jani Honkonen
Refactor piechart to avoid using invalid QPieSlice pointers....
r1053 // PieSliceItem is the parent of PieSliceAnimation so the animation will be deleted as well..
connect(animation, SIGNAL(finished()), sliceItem, SLOT(deleteLater()));
m_animations.remove(sliceItem);
Michal Klocek
Refactor animator...
r1735 return animation;
Jani Honkonen
Add animations to pie. Works but has some visual issues when adding slices.
r618 }
void PieAnimation::updateCurrentValue(const QVariant &)
{
// nothing to do...
}
#include "moc_pieanimation_p.cpp"
Titta Heikkala
Qt Charts project file structure change...
r2712 QT_CHARTS_END_NAMESPACE