##// END OF EJS Templates
Documentation for bar charts
Documentation for bar charts

File last commit:

r289:46889b1144e0
r313:625c56c7d323
Show More
qpieseries.h
131 lines | 3.2 KiB | text/x-c | CLexer
Jani Honkonen
Pie chart refactoring
r142 #ifndef PIESERIES_H
#define PIESERIES_H
#include "qchartseries.h"
#include <QObject>
#include <QRectF>
#include <QColor>
Jani Honkonen
Refactoring piechart API (and internals)
r174 #include <QPen>
#include <QBrush>
Jani Honkonen
Refactor pie (again). QPieSlice's now emit signals and no id's anymore. Just pointers in the interface.
r203 #include <QSignalMapper>
Jani Honkonen
Pie chart refactoring
r142
class QGraphicsObject;
QTCOMMERCIALCHART_BEGIN_NAMESPACE
Jani Honkonen
Moved pie stuff to own .pri file and rename stuff
r146 class PiePresenter;
Jani Honkonen
Pie chart refactoring
r142 class PieSlice;
Jani Honkonen
Refactor pie (again). QPieSlice's now emit signals and no id's anymore. Just pointers in the interface.
r203 class QPieSlice;
Jani Honkonen
Use signals from pieseries, visible hover and exploding slices
r157
Jani Honkonen
Pie chart refactoring
r142 class QTCOMMERCIALCHART_EXPORT QPieSeries : public QChartSeries
{
Q_OBJECT
public:
enum PiePosition {
PiePositionMaximized = 0,
PiePositionTopLeft,
PiePositionTopRight,
PiePositionBottomLeft,
PiePositionBottomRight
};
Jani Honkonen
Refactoring piechart API (and internals)
r174 class ChangeSet
{
public:
Jani Honkonen
Refactor pie (again). QPieSlice's now emit signals and no id's anymore. Just pointers in the interface.
r203 void appendAdded(QPieSlice* slice);
Jani Honkonen
Make pie fit better inside its given rectangle. Label texts still go outside. Needs a bit more work...
r289 void appendAdded(QList<QPieSlice*> slices);
Jani Honkonen
Refactor pie (again). QPieSlice's now emit signals and no id's anymore. Just pointers in the interface.
r203 void appendChanged(QPieSlice* slice);
void appendRemoved(QPieSlice* slice);
QList<QPieSlice*> added() const;
QList<QPieSlice*> changed() const;
QList<QPieSlice*> removed() const;
bool isEmpty() const;
private:
QList<QPieSlice*> m_added;
QList<QPieSlice*> m_changed;
QList<QPieSlice*> m_removed;
Jani Honkonen
Refactoring piechart API (and internals)
r174 };
Jani Honkonen
Pie chart refactoring
r142 public:
QPieSeries(QObject *parent = 0);
Jani Honkonen
Refactor pie (again). QPieSlice's now emit signals and no id's anymore. Just pointers in the interface.
r203 virtual ~QPieSeries();
Jani Honkonen
Pie chart refactoring
r142
public: // from QChartSeries
QChartSeriesType type() const { return QChartSeries::SeriesTypePie; }
Jani Honkonen
Refactoring piechart API (and internals)
r174 virtual bool setData(QList<qreal> data); // TODO: remove this
Jani Honkonen
Pie chart refactoring
r142
public:
Jani Honkonen
Refactor pie (again). QPieSlice's now emit signals and no id's anymore. Just pointers in the interface.
r203 void set(QList<QPieSlice*> slices);
void add(QList<QPieSlice*> slices);
void add(QPieSlice* slice);
QPieSlice* add(qreal value, QString name);
void remove(QPieSlice* slice);
void clear();
Jani Honkonen
Pie chart refactoring
r142
int count() const { return m_slices.count(); }
Jani Honkonen
Refactor pie (again). QPieSlice's now emit signals and no id's anymore. Just pointers in the interface.
r203 QList<QPieSlice*> slices() const { return m_slices; }
Jani Honkonen
Refactoring piechart API (and internals)
r174
Jani Honkonen
Pie chart refactoring
r142 void setSizeFactor(qreal sizeFactor);
qreal sizeFactor() const { return m_sizeFactor; }
void setPosition(PiePosition position);
PiePosition position() const { return m_position; }
Jani Honkonen
Refactor pie (again). QPieSlice's now emit signals and no id's anymore. Just pointers in the interface.
r203 void setSpan(qreal startAngle, qreal span);
void setLabelsVisible(bool visible);
void enableClickExplodes(bool enable);
void enableHoverHighlight(bool enable);
Jani Honkonen
Make pie fit better inside its given rectangle. Label texts still go outside. Needs a bit more work...
r289 // TODO: find slices?
// QList<QPieSlice*> findByValue(qreal value);
// ...
// TODO: sorting slices?
// void sort(QPieSeries::SortByValue|label|??)
// TODO: general graphics customization
// setDrawStyle(2d|3d)
// setDropShadows(bool)
Jani Honkonen
Use signals from pieseries, visible hover and exploding slices
r157 Q_SIGNALS:
Jani Honkonen
Refactoring piechart API (and internals)
r174 void changed(const QPieSeries::ChangeSet& changeSet);
Jani Honkonen
Refactor pie (again). QPieSlice's now emit signals and no id's anymore. Just pointers in the interface.
r203 void clicked(QPieSlice* slice);
void hoverEnter(QPieSlice* slice);
void hoverLeave(QPieSlice* slice);
Jani Honkonen
Use signals from pieseries, visible hover and exploding slices
r157 void sizeFactorChanged();
void positionChanged();
Jani Honkonen
Implementing slice label
r181
Jani Honkonen
Make pie fit better inside its given rectangle. Label texts still go outside. Needs a bit more work...
r289 private Q_SLOTS: // TODO: should be private and not visible in the interface at all
Jani Honkonen
Refactor pie (again). QPieSlice's now emit signals and no id's anymore. Just pointers in the interface.
r203 void sliceChanged();
void sliceClicked();
void sliceHoverEnter();
void sliceHoverLeave();
void toggleExploded(QPieSlice* slice);
void highlightOn(QPieSlice* slice);
void highlightOff(QPieSlice* slice);
Jani Honkonen
Refactoring piechart API (and internals)
r174
private:
void updateDerivativeData();
Jani Honkonen
Use signals from pieseries, visible hover and exploding slices
r157
Jani Honkonen
Pie chart refactoring
r142 private:
Q_DISABLE_COPY(QPieSeries)
Jani Honkonen
Refactoring piechart API (and internals)
r174
Jani Honkonen
Pie chart refactoring
r142 // TODO: use PIML
Jani Honkonen
Refactoring piechart API (and internals)
r174 friend class PiePresenter;
friend class PieSlice;
Jani Honkonen
Refactor pie (again). QPieSlice's now emit signals and no id's anymore. Just pointers in the interface.
r203 QList<QPieSlice*> m_slices;
Jani Honkonen
Pie chart refactoring
r142 qreal m_sizeFactor;
PiePosition m_position;
Jani Honkonen
Refactoring piechart API (and internals)
r174 qreal m_total;
Jani Honkonen
Refactor pie (again). QPieSlice's now emit signals and no id's anymore. Just pointers in the interface.
r203 qreal m_pieStartAngle;
qreal m_pieSpan;
Jani Honkonen
Pie chart refactoring
r142 };
QTCOMMERCIALCHART_END_NAMESPACE
#endif // PIESERIES_H