##// END OF EJS Templates
Use light outline color instead of dark for bar, area and scatter
Use light outline color instead of dark for bar, area and scatter

File last commit:

r634:5a177f3a506b
r653:f4e416c6727f
Show More
pieanimation.cpp
92 lines | 2.6 KiB | text/x-c | CppLexer
Michal Klocek
minor . compilation fix
r623 #include "pieanimation_p.h"
Jani Honkonen
Add animations to pie. Works but has some visual issues when adding slices.
r618 #include "piesliceanimation_p.h"
#include "piechartitem_p.h"
#include <QParallelAnimationGroup>
#include <QTimer>
QTCOMMERCIALCHART_BEGIN_NAMESPACE
PieAnimation::PieAnimation(PieChartItem *item)
:ChartAnimation(item),
m_item(item)
{
}
PieAnimation::~PieAnimation()
{
}
Jani Honkonen
Getting rid of slice pointer in PieSliceLayout.
r629 void PieAnimation::updateValues(const PieLayout &newValues)
Jani Honkonen
Add animations to pie. Works but has some visual issues when adding slices.
r618 {
Jani Honkonen
Getting rid of slice pointer in PieSliceLayout.
r629 foreach (QPieSlice* s, newValues.keys())
updateValue(s, newValues.value(s));
Jani Honkonen
Add animations to pie. Works but has some visual issues when adding slices.
r618 }
Jani Honkonen
Getting rid of slice pointer in PieSliceLayout.
r629 void PieAnimation::updateValue(QPieSlice *slice, const PieSliceLayout &endLayout)
Jani Honkonen
Add animations to pie. Works but has some visual issues when adding slices.
r618 {
Jani Honkonen
Getting rid of slice pointer in PieSliceLayout.
r629 PieSliceAnimation *animation = m_animations.value(slice);
Jani Honkonen
Add animations to pie. Works but has some visual issues when adding slices.
r618 Q_ASSERT(animation);
animation->stop();
Jani Honkonen
Refactoring pie series and animations.
r621
animation->updateValue(endLayout);
animation->setDuration(1000);
animation->setEasingCurve(QEasingCurve::OutQuart);
QTimer::singleShot(0, animation, SLOT(start()));
}
Jani Honkonen
Nicer animation for adding a pie initially.
r634 void PieAnimation::addSlice(QPieSlice *slice, const PieSliceLayout &endLayout, bool isEmpty)
Jani Honkonen
Refactoring pie series and animations.
r621 {
Jani Honkonen
Getting rid of slice pointer in PieSliceLayout.
r629 PieSliceAnimation *animation = new PieSliceAnimation(m_item, slice);
Jani Honkonen
Refactoring pie series and animations.
r621 m_animations.insert(slice, animation);
PieSliceLayout startLayout = endLayout;
startLayout.m_radius = 0;
Jani Honkonen
Nicer animation for adding a pie initially.
r634 if (isEmpty)
startLayout.m_startAngle = 0;
else
startLayout.m_startAngle = endLayout.m_startAngle + (endLayout.m_angleSpan/2);
Jani Honkonen
Refactoring pie series and animations.
r621 startLayout.m_angleSpan = 0;
animation->setValue(startLayout, endLayout);
animation->setDuration(1000);
animation->setEasingCurve(QEasingCurve::OutQuart);
QTimer::singleShot(0, animation, SLOT(start()));
}
void PieAnimation::removeSlice(QPieSlice *slice)
{
PieSliceAnimation *animation = m_animations.value(slice);
Q_ASSERT(animation);
animation->stop();
PieSliceLayout endLayout = animation->currentSliceValue();
endLayout.m_radius = 0;
// TODO: find the actual angle where this slice disappears
endLayout.m_startAngle = endLayout.m_startAngle + endLayout.m_angleSpan;
endLayout.m_angleSpan = 0;
Jani Honkonen
Add animations to pie. Works but has some visual issues when adding slices.
r618 animation->updateValue(endLayout);
animation->setDuration(1000);
animation->setEasingCurve(QEasingCurve::OutQuart);
Jani Honkonen
Refactoring pie series and animations.
r621
connect(animation, SIGNAL(finished()), this, SLOT(destroySliceAnimationComplete()));
Jani Honkonen
Add animations to pie. Works but has some visual issues when adding slices.
r618 QTimer::singleShot(0, animation, SLOT(start()));
}
void PieAnimation::updateCurrentValue(const QVariant &)
{
// nothing to do...
}
void PieAnimation::destroySliceAnimationComplete()
{
PieSliceAnimation *animation = static_cast<PieSliceAnimation*>(sender());
QPieSlice *slice = m_animations.key(animation);
m_item->destroySlice(slice);
delete m_animations.take(slice);
}
#include "moc_pieanimation_p.cpp"
QTCOMMERCIALCHART_END_NAMESPACE