kdgantt
kdganttitemdelegate.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 KDGANTTITEMDELEGATE_H
00024 #define KDGANTTITEMDELEGATE_H
00025
00026 #include <QItemDelegate>
00027 #include <QBrush>
00028 #include <QPen>
00029 #include <QDebug>
00030
00031 #include "kdgantt_export.h"
00032 #include "kdganttglobal.h"
00033
00034 namespace KDGantt {
00035 class StyleOptionGanttItem;
00036 class Constraint;
00037
00038 class KDGANTT_EXPORT ItemDelegate : public QItemDelegate {
00039 Q_OBJECT
00040 KDGANTT_DECLARE_PRIVATE_BASE_POLYMORPHIC( ItemDelegate )
00041 public:
00042 enum InteractionState { State_None = 0,
00043 State_Move,
00044 State_ExtendLeft,
00045 State_ExtendRight,
00046 State_DragConstraint
00047 };
00048
00049 explicit ItemDelegate( QObject* parent = 0 );
00050 virtual ~ItemDelegate();
00051
00052 void setDefaultBrush( ItemType type, const QBrush& brush );
00053 QBrush defaultBrush( ItemType type ) const;
00054
00055 void setDefaultPen( ItemType type, const QPen& pen );
00056 QPen defaultPen( ItemType type ) const;
00057
00058 virtual Span itemBoundingSpan(const StyleOptionGanttItem& opt, const QModelIndex& idx) const;
00059 virtual QRectF constraintBoundingRect( const QPointF& start, const QPointF& end, const Constraint &constraint ) const;
00060 virtual InteractionState interactionStateFor( const QPointF& pos,
00061 const StyleOptionGanttItem& opt,
00062 const QModelIndex& idx ) const;
00063
00064 virtual void paintGanttItem( QPainter* p, const StyleOptionGanttItem& opt, const QModelIndex& idx );
00065 virtual void paintConstraintItem( QPainter* p, const QStyleOptionGraphicsItem& opt,
00066 const QPointF& start, const QPointF& end, const Constraint &constraint );
00067
00068 protected:
00069 void paintFinishStartConstraint( QPainter* p, const QStyleOptionGraphicsItem& opt,
00070 const QPointF& start, const QPointF& end, const Constraint &constraint );
00071 QPolygonF finishStartLine( const QPointF& start, const QPointF& end ) const;
00072 QPolygonF finishStartArrow( const QPointF& start, const QPointF& end ) const;
00073
00074 void paintFinishFinishConstraint( QPainter* p, const QStyleOptionGraphicsItem& opt,
00075 const QPointF& start, const QPointF& end, const Constraint &constraint );
00076 QPolygonF finishFinishLine( const QPointF& start, const QPointF& end ) const;
00077 QPolygonF finishFinishArrow( const QPointF& start, const QPointF& end ) const;
00078
00079 void paintStartStartConstraint( QPainter* p, const QStyleOptionGraphicsItem& opt,
00080 const QPointF& start, const QPointF& end, const Constraint &constraint );
00081 QPolygonF startStartLine( const QPointF& start, const QPointF& end ) const;
00082 QPolygonF startStartArrow( const QPointF& start, const QPointF& end ) const;
00083
00084 void paintStartFinishConstraint( QPainter* p, const QStyleOptionGraphicsItem& opt,
00085 const QPointF& start, const QPointF& end, const Constraint &constraint );
00086 QPolygonF startFinishLine( const QPointF& start, const QPointF& end ) const;
00087 QPolygonF startFinishArrow( const QPointF& start, const QPointF& end ) const;
00088
00089
00090 };
00091 }
00092
00093 #ifndef QT_NO_DEBUG_STREAM
00094 QDebug operator<<( QDebug dbg, KDGantt::ItemDelegate::InteractionState );
00095 #endif
00096
00097 #endif
00098