qpieseries.cpp
93 lines
| 2.1 KiB
| text/x-c
|
CppLexer
Jani Honkonen
|
r142 | #include "qpieseries.h" | ||
Jani Honkonen
|
r146 | #include "piepresenter.h" | ||
Jani Honkonen
|
r142 | #include "pieslice.h" | ||
#include <QDebug> | ||||
QTCOMMERCIALCHART_BEGIN_NAMESPACE | ||||
QPieSeries::QPieSeries(QObject *parent) : | ||||
QChartSeries(parent), | ||||
Jani Honkonen
|
r146 | m_piePresenter(0), | ||
Jani Honkonen
|
r142 | m_sizeFactor(1.0), | ||
m_position(PiePositionMaximized) | ||||
{ | ||||
} | ||||
QPieSeries::~QPieSeries() | ||||
{ | ||||
} | ||||
void QPieSeries::set(QList<QPieSlice> slices) | ||||
{ | ||||
m_slices = slices; | ||||
Jani Honkonen
|
r146 | if (m_piePresenter) { | ||
m_piePresenter->seriesChanged(); | ||||
m_piePresenter->update(); | ||||
Jani Honkonen
|
r142 | } | ||
} | ||||
void QPieSeries::add(QList<QPieSlice> slices) | ||||
{ | ||||
m_slices += slices; | ||||
Jani Honkonen
|
r146 | if (m_piePresenter) { | ||
m_piePresenter->seriesChanged(); | ||||
// TODO: m_piePresenter->seriesAppended()?? | ||||
m_piePresenter->update(); | ||||
Jani Honkonen
|
r142 | } | ||
} | ||||
void QPieSeries::add(QPieSlice slice) | ||||
{ | ||||
add(QList<QPieSlice>() << slice); | ||||
} | ||||
QPieSlice QPieSeries::slice(int index) const | ||||
{ | ||||
if ((index >= 0) && (index < m_slices.count())) | ||||
return m_slices.at(index); | ||||
return QPieSlice(); | ||||
} | ||||
bool QPieSeries::update(int index, QPieSlice slice) | ||||
{ | ||||
if ((index >= 0) && (index < m_slices.count())) { | ||||
m_slices[index] = slice; | ||||
Jani Honkonen
|
r146 | if (m_piePresenter) { | ||
m_piePresenter->seriesChanged(); | ||||
Jani Honkonen
|
r142 | // TODO: for a nice animation we need something like | ||
Jani Honkonen
|
r146 | // m_piePresenter->sliceChanged(index, oldslice, newslice) | ||
m_piePresenter->update(); | ||||
Jani Honkonen
|
r142 | } | ||
return true; | ||||
} | ||||
return false; | ||||
} | ||||
void QPieSeries::setSizeFactor(qreal factor) | ||||
{ | ||||
if (factor > 0.0) | ||||
m_sizeFactor = factor; | ||||
Jani Honkonen
|
r146 | if (m_piePresenter) { | ||
m_piePresenter->resize(); | ||||
m_piePresenter->update(); | ||||
Jani Honkonen
|
r142 | // TODO: do we have to update the parent item also? | ||
// - potential issue: what if this function is called from the parent context? | ||||
} | ||||
} | ||||
void QPieSeries::setPosition(PiePosition position) | ||||
{ | ||||
m_position = position; | ||||
Jani Honkonen
|
r146 | if (m_piePresenter) { | ||
m_piePresenter->resize(); | ||||
m_piePresenter->update(); | ||||
Jani Honkonen
|
r142 | // TODO: do we have to update the parent item also? | ||
// - potential issue: what if this function is called from the parent context? | ||||
} | ||||
} | ||||
#include "moc_qpieseries.cpp" | ||||
QTCOMMERCIALCHART_END_NAMESPACE | ||||