KD Chart API Documentation 3.1
Loading...
Searching...
No Matches
kdganttgraphicsitem.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 KDGANTTGRAPHICSITEM_H
12#define KDGANTTGRAPHICSITEM_H
13
14#include "kdganttglobal.h"
16
17#include <QDateTime>
18#include <QGraphicsItem>
19#include <QPersistentModelIndex>
20
21QT_BEGIN_NAMESPACE
23QT_END_NAMESPACE
24
25namespace KDGantt {
26class GraphicsScene;
27class ConstraintGraphicsItem;
28
29/* Can we fit every kind of item into one gfxitem class? */
31{
32public:
33 enum
34 {
35 Type = UserType + 42
36 };
37
38 explicit GraphicsItem(QGraphicsItem *parent = nullptr, GraphicsScene *scene = nullptr);
39 explicit GraphicsItem(const QModelIndex &idx, QGraphicsItem *parent = nullptr, GraphicsScene *scene = nullptr);
40 ~GraphicsItem() override;
41
42 /*reimp*/ int type() const override;
43 /*reimp (non-virtual)*/ GraphicsScene *scene() const;
44
45 void updateItem(const Span &rowgeometry, const QPersistentModelIndex &idx);
46
47 // virtual ItemType itemType() const = 0;
48
49 // qreal dateTimeToSceneX( const QDateTime& dt ) const;
50 // QDateTime sceneXtoDateTime( qreal x ) const;
51
52 QRectF rect() const
53 {
54 return m_rect;
55 }
56 void setRect(const QRectF &r);
57 void setBoundingRect(const QRectF &r);
58
59 virtual QString ganttToolTip() const;
60
62 {
63 return m_index;
64 }
65 void setIndex(const QPersistentModelIndex &idx);
66
67 bool isEditable() const;
68 bool isUpdating() const
69 {
70 return m_isupdating;
71 }
72
78 {
79 return m_startConstraints;
80 }
82 {
83 return m_endConstraints;
84 }
85
86 /*reimp*/ QRectF boundingRect() const override;
87 /*reimp*/ void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
88 QWidget *widget = nullptr) override;
89
90 /*reimp*/ QVariant itemChange(GraphicsItemChange, const QVariant &value) override;
91
92protected:
93 /*reimp*/ void focusInEvent(QFocusEvent *event) override;
94 /*reimp*/ void hoverMoveEvent(QGraphicsSceneHoverEvent *) override;
95 /*reimp*/ void hoverLeaveEvent(QGraphicsSceneHoverEvent *) override;
96 /*reimp*/ void mousePressEvent(QGraphicsSceneMouseEvent *) override;
97 /*reimp*/ void mouseReleaseEvent(QGraphicsSceneMouseEvent *) override;
98 /*reimp*/ void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *) override;
99 /*reimp*/ void mouseMoveEvent(QGraphicsSceneMouseEvent *) override;
100
101private:
102 void init();
103
104 QPointF startConnector(int relationType) const;
105 QPointF endConnector(int relationType) const;
106 void updateConstraintItems();
107 StyleOptionGanttItem getStyleOption() const;
108 void updateModel();
109 void updateItemFromMouse(const QPointF &scenepos);
110 void constraintsChanged();
111
112 QRectF m_rect;
113 QRectF m_boundingrect;
114 QPersistentModelIndex m_index;
115 bool m_isupdating = false;
116 int m_istate;
117 QPointF m_presspos;
118 QPointF m_pressscenepos;
119 QGraphicsLineItem *m_dragline;
120 GraphicsItem *m_dragtarget; // TODO: not used. remove it
121 QList<ConstraintGraphicsItem *> m_startConstraints;
122 QList<ConstraintGraphicsItem *> m_endConstraints;
123};
124}
125
126#endif /* KDGANTTGRAPHICSITEM_H */
int type() const override
QList< ConstraintGraphicsItem * > startConstraints() const
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=nullptr) override
QRectF boundingRect() const override
void removeStartConstraint(ConstraintGraphicsItem *)
void addEndConstraint(ConstraintGraphicsItem *)
void mousePressEvent(QGraphicsSceneMouseEvent *) override
void updateItem(const Span &rowgeometry, const QPersistentModelIndex &idx)
void hoverMoveEvent(QGraphicsSceneHoverEvent *) override
void mouseReleaseEvent(QGraphicsSceneMouseEvent *) override
virtual QString ganttToolTip() const
QList< ConstraintGraphicsItem * > endConstraints() const
void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *) override
void removeEndConstraint(ConstraintGraphicsItem *)
void mouseMoveEvent(QGraphicsSceneMouseEvent *) override
void focusInEvent(QFocusEvent *event) override
void setIndex(const QPersistentModelIndex &idx)
const QPersistentModelIndex & index() const
GraphicsScene * scene() const
void setRect(const QRectF &r)
void addStartConstraint(ConstraintGraphicsItem *)
void setBoundingRect(const QRectF &r)
void hoverLeaveEvent(QGraphicsSceneHoverEvent *) override
QVariant itemChange(GraphicsItemChange, const QVariant &value) override
A class representing a start point and a length.
QStyleOption subclass for gantt items.
Contains KDGantt macros.

© 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 on Thu Apr 11 2024 00:04:50 for KD Chart API Documentation by doxygen 1.9.8