00001 #ifndef PIECHARTVIEW_H
00002 #define PIECHARTVIEW_H
00003
00004 #include <QAbstractItemView>
00005
00006 class QRect;
00007 class QModelIndex;
00008 class DataProject;
00009
00010 class PieChartView : public QAbstractItemView
00011 {
00012 Q_OBJECT
00013
00014 public:
00015 PieChartView(QWidget *parent = 0);
00016 ~PieChartView();
00017
00018 QRect visualRect(const QModelIndex &index) const;
00019 void scrollTo(const QModelIndex &index, ScrollHint hint = EnsureVisible);
00020 QModelIndex indexAt(const QPoint &point) const;
00021 QList<int> aggregateItemList();
00022
00023 protected:
00024 bool edit(const QModelIndex &index, EditTrigger trigger, QEvent *event);
00025 QModelIndex moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers);
00026
00027 int horizontalOffset() const;
00028 int verticalOffset() const;
00029
00030 bool isIndexHidden(const QModelIndex &index) const;
00031
00032 void setSelection(const QRect&, QItemSelectionModel::SelectionFlags command);
00033
00034 void paintEvent(QPaintEvent *event);
00035 void resizeEvent(QResizeEvent *event);
00036 void scrollContentsBy(int dx, int dy);
00037
00038 QRegion visualRegionForSelection(const QItemSelection &selection) const;
00039
00040 signals:
00041 void exerciseStatesChanged(QList<int> items);
00042
00043 private:
00044 int rows(const QModelIndex &index = QModelIndex()) const;
00045 void updateGeometries();
00046
00047 int margin;
00048 int totalSize;
00049 int pieSize;
00050 double totalValue;
00051 };
00052
00053 #endif