KD Chart 2  [rev.2.7]
kdganttconstraintgraphicsitem.cpp
Go to the documentation of this file.
1 /****************************************************************************
2 ** Copyright (C) 2001-2020 Klaralvdalens Datakonsult AB. All rights reserved.
3 **
4 ** This file is part of the KD Chart library.
5 **
6 ** Licensees holding valid commercial KD Chart licenses may use this file in
7 ** accordance with the KD Chart Commercial License Agreement provided with
8 ** the Software.
9 **
10 **
11 ** This file may be distributed and/or modified under the terms of the
12 ** GNU General Public License version 2 and version 3 as published by the
13 ** Free Software Foundation and appearing in the file LICENSE.GPL.txt included.
14 **
15 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
16 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
17 **
18 ** Contact info@kdab.com if any conditions of this licensing are not
19 ** clear to you.
20 **
21 **********************************************************************/
22 
24 #include "kdganttconstraintmodel.h"
25 #include "kdganttgraphicsscene.h"
26 #include "kdganttitemdelegate.h"
28 
29 #include <QPainter>
30 #include <QDebug>
31 
32 using namespace KDGantt;
33 
37 #if QT_VERSION < 0x050000
39  : QGraphicsItem( parent, scene ), m_constraint( c )
40 {
41  setPos( QPointF( 0., 0. ) );
42  setAcceptsHoverEvents( false );
43  setAcceptedMouseButtons( Qt::NoButton );
44  setZValue( 10. );
45 }
46 #else
48  : QGraphicsItem( parent ), m_constraint( c )
49 {
50  if ( scene )
51  scene->addItem( this );
52  setPos( QPointF( 0., 0. ) );
53  setAcceptHoverEvents( false );
54  setAcceptedMouseButtons( Qt::NoButton );
55  setZValue( 10. );
56 }
57 #endif
58 
60 {
61 }
62 
64 {
65  return Type;
66 }
67 
69 {
70  return qobject_cast<GraphicsScene*>( QGraphicsItem::scene() );
71 }
72 
74 {
75  return Constraint( scene()->summaryHandlingModel()->mapFromSource( m_constraint.startIndex() ),
76  scene()->summaryHandlingModel()->mapFromSource( m_constraint.endIndex() ),
77  m_constraint.type(), m_constraint.relationType(), m_constraint.dataMap() );
78 }
79 
81 {
82  return scene()->itemDelegate()->constraintBoundingRect( m_start, m_end, m_constraint );
83 }
84 
85 void ConstraintGraphicsItem::paint( QPainter* painter, const QStyleOptionGraphicsItem* option,
86  QWidget* widget )
87 {
88  Q_UNUSED( widget );
89  //qDebug() << "ConstraintGraphicsItem::paint(...), c=" << m_constraint;
90  scene()->itemDelegate()->paintConstraintItem( painter, *option, m_start, m_end, m_constraint );
91 }
92 
94 {
95  return m_constraint.data( Qt::ToolTipRole ).toString();
96 }
97 
98 void ConstraintGraphicsItem::setStart( const QPointF& start )
99 {
100  prepareGeometryChange();
101  m_start = start;
102  update();
103 }
104 
105 void ConstraintGraphicsItem::setEnd( const QPointF& end )
106 {
107  prepareGeometryChange();
108  m_end = end;
109  update();
110 }
111 
112 void ConstraintGraphicsItem::updateItem( const QPointF& start,const QPointF& end )
113 {
114  setStart( start );
115  setEnd( end );
116 }
KDGantt::ConstraintGraphicsItem::start
QPointF start() const
Definition: kdganttconstraintgraphicsitem.h:54
QWidget
Class only listed here to document inheritance of some KDChart classes.
kdganttgraphicsscene.h
KDGantt::ItemDelegate::paintConstraintItem
virtual void paintConstraintItem(QPainter *p, const QStyleOptionGraphicsItem &opt, const QPointF &start, const QPointF &end, const Constraint &constraint)
Definition: kdganttitemdelegate.cpp:426
KDGantt::ConstraintGraphicsItem::boundingRect
QRectF boundingRect() const override
Definition: kdganttconstraintgraphicsitem.cpp:80
KDGantt::GraphicsScene
Definition: kdganttgraphicsscene.h:48
KDGantt::Constraint::startIndex
QModelIndex startIndex() const
Definition: kdganttconstraint.cpp:129
KDGantt::GraphicsScene::itemDelegate
ItemDelegate * itemDelegate() const
Definition: kdganttgraphicsscene.cpp:195
KDGantt::Constraint::data
QVariant data(int role) const
Definition: kdganttconstraint.cpp:144
KDGantt::ConstraintGraphicsItem::type
int type() const override
Definition: kdganttconstraintgraphicsitem.cpp:63
KDGantt::ConstraintGraphicsItem::end
QPointF end() const
Definition: kdganttconstraintgraphicsitem.h:56
KDGantt::ConstraintGraphicsItem::proxyConstraint
Constraint proxyConstraint() const
Definition: kdganttconstraintgraphicsitem.cpp:73
KDGantt
Definition: kdganttabstractrowcontroller.h:33
KDGantt::ItemDelegate::constraintBoundingRect
virtual QRectF constraintBoundingRect(const QPointF &start, const QPointF &end, const Constraint &constraint) const
Definition: kdganttitemdelegate.cpp:400
kdganttitemdelegate.h
KDGantt::Constraint::endIndex
QModelIndex endIndex() const
Definition: kdganttconstraint.cpp:135
KDGantt::ConstraintGraphicsItem::setEnd
void setEnd(const QPointF &end)
Definition: kdganttconstraintgraphicsitem.cpp:105
KDGantt::ConstraintGraphicsItem::~ConstraintGraphicsItem
~ConstraintGraphicsItem() override
Definition: kdganttconstraintgraphicsitem.cpp:59
KDGantt::Constraint
A class used to represent a dependency.
Definition: kdganttconstraint.h:38
KDGantt::ConstraintGraphicsItem::ganttToolTip
QString ganttToolTip() const
Definition: kdganttconstraintgraphicsitem.cpp:93
KDGantt::ConstraintGraphicsItem::paint
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=0) override
Definition: kdganttconstraintgraphicsitem.cpp:85
KDGantt::ConstraintGraphicsItem::ConstraintGraphicsItem
ConstraintGraphicsItem(const Constraint &c, QGraphicsItem *parent=0, GraphicsScene *scene=0)
Definition: kdganttconstraintgraphicsitem.cpp:38
KDGantt::Constraint::relationType
RelationType relationType() const
Definition: kdganttconstraint.cpp:123
KDGantt::Constraint::dataMap
QMap< int, QVariant > dataMap() const
Definition: kdganttconstraint.cpp:169
KDGantt::ConstraintGraphicsItem::Type
@ Type
Definition: kdganttconstraintgraphicsitem.h:35
kdganttsummaryhandlingproxymodel.h
kdganttconstraintgraphicsitem.h
QGraphicsItem
KDGantt::ConstraintGraphicsItem::setStart
void setStart(const QPointF &start)
Definition: kdganttconstraintgraphicsitem.cpp:98
KDGantt::ConstraintGraphicsItem::scene
GraphicsScene * scene() const
Definition: kdganttconstraintgraphicsitem.cpp:68
kdganttconstraintmodel.h
KDGantt::Constraint::type
Type type() const
Definition: kdganttconstraint.cpp:117
KDGantt::ConstraintGraphicsItem::updateItem
void updateItem(const QPointF &start, const QPointF &end)
Definition: kdganttconstraintgraphicsitem.cpp:112

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/