File indexing completed on 2024-05-12 04:20:39

0001 /*
0002  * SPDX-FileCopyrightText: 2001-2015 Klaralvdalens Datakonsult AB. All rights reserved.
0003  *
0004  * This file is part of the KGantt library.
0005  *
0006  * SPDX-License-Identifier: GPL-2.0-or-later
0007  */
0008 
0009 #ifndef KGANTTCONSTRAINTGRAPHICSITEM_H
0010 #define KGANTTCONSTRAINTGRAPHICSITEM_H
0011 
0012 #include <QGraphicsItem>
0013 
0014 #include "kganttconstraint.h"
0015 
0016 namespace KGantt {
0017     class GraphicsScene;
0018 
0019 
0020 
0021     /*!\class KGantt::ConstraintGraphicsItem
0022      * \internal
0023      */
0024     class KGANTT_EXPORT ConstraintGraphicsItem : public QGraphicsItem {
0025     public:
0026         enum { Type = UserType + 43 };
0027 
0028         explicit ConstraintGraphicsItem( const Constraint& c,
0029                                          QGraphicsItem* parent = nullptr, GraphicsScene* scene = nullptr );
0030         ~ConstraintGraphicsItem() override;
0031 
0032         /*reimp*/ int type() const override;
0033         /*reimp (non virtual)*/GraphicsScene* scene() const;
0034 
0035         /*reimp*/ QString ganttToolTip() const;
0036 
0037         /*reimp*/ QRectF boundingRect() const override;
0038         /*reimp*/ void paint( QPainter* painter, const QStyleOptionGraphicsItem* option,
0039                               QWidget* widget = nullptr ) override;
0040 
0041         inline const Constraint& constraint() const { return m_constraint; }
0042         Constraint proxyConstraint() const;
0043 
0044         void setStart( const QPointF& start );
0045         inline QPointF start() const { return m_start; }
0046         void setEnd( const QPointF& end );
0047         inline QPointF end() const { return m_end; }
0048 
0049         void updateItem( const QPointF& start,const QPointF& end );
0050     private:
0051         Constraint m_constraint;
0052         QPointF m_start;
0053         QPointF m_end;
0054     };
0055 }
0056 
0057 #endif /* KGANTTCONSTRAINTGRAPHICSITEM_H */
0058