KD Chart API Documentation  3.1
kdganttitemdelegate.h
Go to the documentation of this file.
1 /****************************************************************************
2 **
3 ** This file is part of the KD Chart library.
4 **
5 ** SPDX-FileCopyrightText: 2001 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
6 **
7 ** SPDX-License-Identifier: MIT
8 **
9 ****************************************************************************/
10 
11 #ifndef KDGANTTITEMDELEGATE_H
12 #define KDGANTTITEMDELEGATE_H
13 
14 #include <QBrush>
15 #include <QDebug>
16 #include <QItemDelegate>
17 #include <QPen>
18 
19 #include "kdganttglobal.h"
20 
21 namespace KDGantt {
22 class StyleOptionGanttItem;
23 class Constraint;
24 
25 class KDGANTT_EXPORT ItemDelegate : public QItemDelegate
26 {
27  Q_OBJECT
29 public:
31  {
32  State_None = 0,
36  State_DragConstraint
37  };
38 
39  explicit ItemDelegate(QObject *parent = nullptr);
40  ~ItemDelegate() override;
41 
42  void setDefaultBrush(ItemType type, const QBrush &brush);
43  QBrush defaultBrush(ItemType type) const;
44 
45  void setDefaultPen(ItemType type, const QPen &pen);
46  QPen defaultPen(ItemType type) const;
47 
48  virtual Span itemBoundingSpan(const StyleOptionGanttItem &opt, const QModelIndex &idx) const;
49  virtual QRectF constraintBoundingRect(const QPointF &start, const QPointF &end, const Constraint &constraint) const;
50  virtual InteractionState interactionStateFor(const QPointF &pos,
51  const StyleOptionGanttItem &opt,
52  const QModelIndex &idx) const;
53 
54  virtual void paintGanttItem(QPainter *p, const StyleOptionGanttItem &opt, const QModelIndex &idx);
55  virtual void paintConstraintItem(QPainter *p, const QStyleOptionGraphicsItem &opt,
56  const QPointF &start, const QPointF &end, const Constraint &constraint);
57 
58  virtual QString toolTip(const QModelIndex &idx) const;
59 
60 protected:
61  void paintFinishStartConstraint(QPainter *p, const QStyleOptionGraphicsItem &opt,
62  const QPointF &start, const QPointF &end, const Constraint &constraint);
63  QPolygonF finishStartLine(const QPointF &start, const QPointF &end) const;
64  QPolygonF finishStartArrow(const QPointF &start, const QPointF &end) const;
65 
66  void paintFinishFinishConstraint(QPainter *p, const QStyleOptionGraphicsItem &opt,
67  const QPointF &start, const QPointF &end, const Constraint &constraint);
68  QPolygonF finishFinishLine(const QPointF &start, const QPointF &end) const;
69  QPolygonF finishFinishArrow(const QPointF &start, const QPointF &end) const;
70 
71  void paintStartStartConstraint(QPainter *p, const QStyleOptionGraphicsItem &opt,
72  const QPointF &start, const QPointF &end, const Constraint &constraint);
73  QPolygonF startStartLine(const QPointF &start, const QPointF &end) const;
74  QPolygonF startStartArrow(const QPointF &start, const QPointF &end) const;
75 
76  void paintStartFinishConstraint(QPainter *p, const QStyleOptionGraphicsItem &opt,
77  const QPointF &start, const QPointF &end, const Constraint &constraint);
78  QPolygonF startFinishLine(const QPointF &start, const QPointF &end) const;
79  QPolygonF startFinishArrow(const QPointF &start, const QPointF &end) const;
80 };
81 }
82 
83 #ifndef QT_NO_DEBUG_STREAM
84 KDGANTT_EXPORT QDebug operator<<(QDebug dbg, KDGantt::ItemDelegate::InteractionState);
85 #endif
86 
87 #endif /* KDGANTTITEMDELEGATE_H */
A class used to represent a dependency.
Class used to render gantt items in a KDGantt::GraphicsView.
InteractionState
This enum is used for communication between the view and the delegate about user interaction with gan...
A class representing a start point and a length.
QStyleOption subclass for gantt items.
Contains KDGantt macros.
#define KDGANTT_DECLARE_PRIVATE_BASE_POLYMORPHIC(X)
KDGANTT_EXPORT QDebug operator<<(QDebug dbg, KDGantt::ItemDelegate::InteractionState)
ItemType
The values of this enum are used to represent the different types of gantt items that KDGantt underst...

© 2001 Klarälvdalens Datakonsult AB (KDAB)
"The Qt, C++ and OpenGL Experts"
https://www.kdab.com/
https://www.kdab.com/development-resources/qt-tools/kd-chart/
Generated by doxygen 1.9.1