kdganttabstractgrid.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef KDGANTTABSTRACTGRID_H
00024 #define KDGANTTABSTRACTGRID_H
00025
00026 #include "kdganttglobal.h"
00027 #include "kdganttconstraint.h"
00028
00029 class QPainter;
00030 class QRectF;
00031 class QAbstractItemModel;
00032 class QModelIndex;
00033
00034 namespace KDGantt {
00035 class AbstractRowController;
00036 class Span;
00037
00038 class KDCHART_EXPORT AbstractGrid : public QObject {
00039 Q_OBJECT
00040 KDGANTT_DECLARE_PRIVATE_BASE_POLYMORPHIC( AbstractGrid )
00041 friend class GraphicsScene;
00042 public:
00043
00044 AbstractGrid(QObject* parent = 0);
00045 virtual ~AbstractGrid();
00046
00047 QAbstractItemModel* model() const;
00048 QModelIndex rootIndex() const;
00049
00050 virtual Span mapToChart( const QModelIndex& idx ) const = 0;
00051 virtual bool mapFromChart( const Span& span, const QModelIndex& idx,
00052 const QList<Constraint>& constraints=QList<Constraint>() ) const = 0;
00053 virtual qreal mapToChart( const QVariant &value ) const;
00054 virtual QVariant mapFromChart( qreal x ) const;
00055 bool isSatisfiedConstraint( const Constraint& c ) const;
00056
00057 virtual void paintGrid( QPainter* painter, const QRectF& sceneRect, const QRectF& exposedRect,
00058 AbstractRowController* rowController = 0, QWidget* widget=0 ) = 0;
00059 virtual void paintHeader( QPainter* painter, const QRectF& headerRect, const QRectF& exposedRect,
00060 qreal offset, QWidget* widget=0 ) = 0;
00061
00062 public Q_SLOTS:
00063 virtual void setModel( QAbstractItemModel* model );
00064 virtual void setRootIndex( const QModelIndex& idx );
00065 Q_SIGNALS:
00066 void gridChanged();
00067
00068 protected:
00069 virtual void drawBackground(QPainter* paint, const QRectF& rect);
00070 virtual void drawForeground(QPainter* paint, const QRectF& rect);
00071 };
00072 }
00073
00074 #endif
00075