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