piepresenter.h
49 lines
| 1.1 KiB
| text/x-c
|
CLexer
Jani Honkonen
|
r146 | #ifndef PIEPRESENTER_H | ||
#define PIEPRESENTER_H | ||||
Jani Honkonen
|
r142 | |||
#include "chartitem_p.h" | ||||
#include "qpieseries.h" | ||||
Jani Honkonen
|
r174 | #include <QSignalMapper> | ||
Jani Honkonen
|
r142 | |||
class QGraphicsItem; | ||||
QTCOMMERCIALCHART_BEGIN_NAMESPACE | ||||
class PieSlice; | ||||
Jani Honkonen
|
r146 | class PiePresenter : public QObject, public ChartItem | ||
Jani Honkonen
|
r142 | { | ||
Q_OBJECT | ||||
public: | ||||
// TODO: use a generic data class instead of x and y | ||||
Jani Honkonen
|
r146 | PiePresenter(QGraphicsItem *parent, QPieSeries *series); | ||
~PiePresenter(); | ||||
Jani Honkonen
|
r142 | |||
Jani Honkonen
|
r157 | public: // from QGraphicsItem | ||
Jani Honkonen
|
r142 | QRectF boundingRect() const { return m_rect; } | ||
Jani Honkonen
|
r174 | void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); | ||
Jani Honkonen
|
r142 | |||
public: | ||||
QRectF pieRect() const { return m_pieRect; } | ||||
public Q_SLOTS: | ||||
Jani Honkonen
|
r174 | void handleSeriesChanged(const QPieSeries::ChangeSet& changeSet); | ||
Jani Honkonen
|
r142 | void handleDomainChanged(const Domain& domain); | ||
void handleGeometryChanged(const QRectF& rect); | ||||
Jani Honkonen
|
r163 | void updateGeometry(); | ||
Jani Honkonen
|
r142 | |||
Jani Honkonen
|
r174 | private: | ||
void addSlice(QPieSliceId id); | ||||
void updateSlice(QPieSliceId id); | ||||
void deleteSlice(QPieSliceId id); | ||||
Jani Honkonen
|
r142 | private: | ||
friend class PieSlice; | ||||
Jani Honkonen
|
r174 | QHash<QPieSliceId, PieSlice*> m_slices; | ||
QPieSeries *m_series; | ||||
Jani Honkonen
|
r142 | QRectF m_rect; | ||
QRectF m_pieRect; | ||||
}; | ||||
QTCOMMERCIALCHART_END_NAMESPACE | ||||
Jani Honkonen
|
r146 | #endif // PIEPRESENTER_H | ||