diff options
author | Jani Honkonen <jani.honkonen@digia.com> | 2012-07-31 13:25:57 +0300 |
---|---|---|
committer | Jani Honkonen <jani.honkonen@digia.com> | 2012-07-31 13:25:57 +0300 |
commit | ef94aea95359d0731c77caa46dadaa5ce9f7f7cd (patch) | |
tree | f0629360fa706302b390f18815486f4e675b46d1 /src/animations | |
parent | 97ada13560d979f77971574c19e3ead56fff9919 (diff) |
pie: finetuning donut animations
Also added donut stuff to piechartcustomization demo
Diffstat (limited to 'src/animations')
-rw-r--r-- | src/animations/pieanimation.cpp | 10 | ||||
-rw-r--r-- | src/animations/piesliceanimation.cpp | 1 |
2 files changed, 9 insertions, 2 deletions
diff --git a/src/animations/pieanimation.cpp b/src/animations/pieanimation.cpp index 15d5e441..0cc5bfe0 100644 --- a/src/animations/pieanimation.cpp +++ b/src/animations/pieanimation.cpp @@ -60,8 +60,11 @@ ChartAnimation* PieAnimation::addSlice(PieSliceItem *sliceItem, const PieSliceDa else startValue.m_startAngle = sliceData.m_startAngle + (sliceData.m_angleSpan / 2); startValue.m_angleSpan = 0; - animation->setValue(startValue, sliceData); + if (sliceData.m_donut) + startValue.m_radius = sliceData.m_innerRadius; + + animation->setValue(startValue, sliceData); animation->setDuration(ChartAnimationDuration); animation->setEasingCurve(QEasingCurve::OutQuart); @@ -75,7 +78,10 @@ ChartAnimation* PieAnimation::removeSlice(PieSliceItem *sliceItem) animation->stop(); PieSliceData endValue = animation->currentSliceValue(); - endValue.m_radius = 0; + if (endValue.m_donut) + endValue.m_radius = endValue.m_innerRadius; + else + endValue.m_radius = 0; endValue.m_startAngle = endValue.m_startAngle + endValue.m_angleSpan; endValue.m_angleSpan = 0; endValue.m_isLabelVisible = false; diff --git a/src/animations/piesliceanimation.cpp b/src/animations/piesliceanimation.cpp index 10c770e3..9cf0bb97 100644 --- a/src/animations/piesliceanimation.cpp +++ b/src/animations/piesliceanimation.cpp @@ -110,6 +110,7 @@ QVariant PieSliceAnimation::interpolated(const QVariant &start, const QVariant & result.m_angleSpan = linearPos(startValue.m_angleSpan, endValue.m_angleSpan, progress); result.m_slicePen = linearPos(startValue.m_slicePen, endValue.m_slicePen, progress); result.m_sliceBrush = linearPos(startValue.m_sliceBrush, endValue.m_sliceBrush, progress); + result.m_innerRadius = linearPos(startValue.m_innerRadius, endValue.m_innerRadius, progress); return qVariantFromValue(result); } |