• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdepim API Reference
  • KDE Home
  • Contact Us
 

kdgantt2

  • sources
  • kde-4.12
  • kdepim
  • kdgantt2
kdganttconstraintgraphicsitem.cpp
Go to the documentation of this file.
1 /****************************************************************************
2  ** Copyright (C) 2001-2006 Klarälvdalens Datakonsult AB. All rights reserved.
3  **
4  ** This file is part of the KD Gantt library.
5  **
6  ** This file may be distributed and/or modified under the terms of the
7  ** GNU General Public License version 2 as published by the Free Software
8  ** Foundation and appearing in the file LICENSE.GPL included in the
9  ** packaging of this file.
10  **
11  ** Licensees holding valid commercial KD Gantt licenses may use this file in
12  ** accordance with the KD Gantt Commercial License Agreement provided with
13  ** the Software.
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  ** See http://www.kdab.net/kdgantt for
19  ** information about KD Gantt Commercial License Agreements.
20  **
21  ** Contact info@kdab.net if any conditions of this
22  ** licensing are not clear to you.
23  **
24  **********************************************************************/
25 #include "kdganttconstraintgraphicsitem.h"
26 #include "kdganttconstraintmodel.h"
27 #include "kdganttgraphicsscene.h"
28 #include "kdganttitemdelegate.h"
29 #include "kdganttsummaryhandlingproxymodel.h"
30 
31 #include <QPainter>
32 #include <QDebug>
33 
34 using namespace KDGantt;
35 
40 ConstraintGraphicsItem::ConstraintGraphicsItem( const Constraint& c, QGraphicsItem* parent, GraphicsScene* scene )
41  : QGraphicsItem( parent, scene ), m_constraint( c )
42 {
43  setPos( QPointF( 0., 0. ) );
44  setAcceptsHoverEvents( false );
45  setAcceptedMouseButtons( Qt::NoButton );
46  setZValue( 10. );
47 }
48 
49 ConstraintGraphicsItem::~ConstraintGraphicsItem()
50 {
51 }
52 
53 int ConstraintGraphicsItem::type() const
54 {
55  return Type;
56 }
57 
58 GraphicsScene* ConstraintGraphicsItem::scene() const
59 {
60  return qobject_cast<GraphicsScene*>( QGraphicsItem::scene() );
61 }
62 
63 Constraint ConstraintGraphicsItem::proxyConstraint() const
64 {
65  return Constraint( scene()->summaryHandlingModel()->mapFromSource( m_constraint.startIndex() ),
66  scene()->summaryHandlingModel()->mapFromSource( m_constraint.endIndex() ),
67  m_constraint.type() );
68 }
69 
70 QRectF ConstraintGraphicsItem::boundingRect() const
71 {
72  return scene()->itemDelegate()->constraintBoundingRect( m_start, m_end );
73 }
74 
75 void ConstraintGraphicsItem::paint( QPainter* painter, const QStyleOptionGraphicsItem* option,
76  QWidget* widget )
77 {
78  Q_UNUSED( widget );
79 
80  QPen pen;
81  QVariant dataPen;
82 
83  // default pens
84  if ( m_start.x() <= m_end.x() ) {
85  pen = QPen( Qt::black );
86  dataPen = m_constraint.data( Constraint::ValidConstraintPen );
87  } else {
88  pen = QPen( Qt::red );
89  dataPen = m_constraint.data( Constraint::InvalidConstraintPen );
90  }
91 
92  // data() pen
93  if( qVariantCanConvert< QPen >( dataPen ) )
94  pen = qVariantValue< QPen >( dataPen );
95 
96  scene()->itemDelegate()->paintConstraintItem( painter, *option, m_start, m_end, pen );
97 }
98 
99 QString ConstraintGraphicsItem::ganttToolTip() const
100 {
101  return m_constraint.data( Qt::ToolTipRole ).toString();
102 }
103 
104 void ConstraintGraphicsItem::setStart( const QPointF& start )
105 {
106  prepareGeometryChange();
107  m_start = start;
108  update();
109 }
110 
111 void ConstraintGraphicsItem::setEnd( const QPointF& end )
112 {
113  prepareGeometryChange();
114  m_end = end;
115  update();
116 }
117 
118 void ConstraintGraphicsItem::updateItem( const QPointF& start,const QPointF& end )
119 {
120  setStart( start );
121  setEnd( end );
122 }
KDGantt::ConstraintGraphicsItem::proxyConstraint
Constraint proxyConstraint() const
Definition: kdganttconstraintgraphicsitem.cpp:63
KDGantt::ConstraintGraphicsItem::start
QPointF start() const
Definition: kdganttconstraintgraphicsitem.h:56
KDGantt::ConstraintGraphicsItem::Type
Definition: kdganttconstraintgraphicsitem.h:37
KDGantt::Constraint::endIndex
QModelIndex endIndex() const
Definition: kdganttconstraint.cpp:113
kdganttsummaryhandlingproxymodel.h
KDGantt::ConstraintGraphicsItem::setStart
void setStart(const QPointF &start)
Definition: kdganttconstraintgraphicsitem.cpp:104
QGraphicsItem
QWidget
KDGantt::Constraint::ValidConstraintPen
Definition: kdganttconstraint.h:49
KDGantt::ConstraintGraphicsItem::~ConstraintGraphicsItem
virtual ~ConstraintGraphicsItem()
Definition: kdganttconstraintgraphicsitem.cpp:49
KDGantt::ConstraintGraphicsItem::end
QPointF end() const
Definition: kdganttconstraintgraphicsitem.h:58
KDGantt::ConstraintGraphicsItem::updateItem
void updateItem(const QPointF &start, const QPointF &end)
Definition: kdganttconstraintgraphicsitem.cpp:118
KDGantt::ConstraintGraphicsItem::setEnd
void setEnd(const QPointF &end)
Definition: kdganttconstraintgraphicsitem.cpp:111
KDGantt::Constraint::startIndex
QModelIndex startIndex() const
Definition: kdganttconstraint.cpp:107
KDGantt::GraphicsScene
Definition: kdganttgraphicsscene.h:48
KDGantt::GraphicsScene::summaryHandlingModel
QAbstractProxyModel * summaryHandlingModel() const
Definition: kdganttgraphicsscene.cpp:211
KDGantt::ConstraintGraphicsItem::paint
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=0)
Definition: kdganttconstraintgraphicsitem.cpp:75
kdganttitemdelegate.h
KDGantt::ConstraintGraphicsItem::ConstraintGraphicsItem
ConstraintGraphicsItem(const Constraint &c, QGraphicsItem *parent=0, GraphicsScene *scene=0)
Definition: kdganttconstraintgraphicsitem.cpp:40
KDGantt::ItemDelegate::constraintBoundingRect
virtual QRectF constraintBoundingRect(const QPointF &start, const QPointF &end) const
Definition: kdganttitemdelegate.cpp:357
KDGantt::GraphicsScene::itemDelegate
ItemDelegate * itemDelegate() const
Definition: kdganttgraphicsscene.cpp:192
KDGantt::Constraint::InvalidConstraintPen
Definition: kdganttconstraint.h:50
KDGantt::Constraint
A class used to represent a dependency.
Definition: kdganttconstraint.h:38
KDGantt::ConstraintGraphicsItem::scene
GraphicsScene * scene() const
Definition: kdganttconstraintgraphicsitem.cpp:58
KDGantt::ConstraintGraphicsItem::ganttToolTip
QString ganttToolTip() const
Definition: kdganttconstraintgraphicsitem.cpp:99
KDGantt::ConstraintGraphicsItem::type
int type() const
Definition: kdganttconstraintgraphicsitem.cpp:53
KDGantt::Constraint::data
QVariant data(int role) const
Definition: kdganttconstraint.cpp:122
kdganttconstraintgraphicsitem.h
kdganttconstraintmodel.h
KDGantt::ConstraintGraphicsItem::boundingRect
QRectF boundingRect() const
Definition: kdganttconstraintgraphicsitem.cpp:70
kdganttgraphicsscene.h
KDGantt::Constraint::type
Type type() const
Definition: kdganttconstraint.cpp:101
KDGantt::ItemDelegate::paintConstraintItem
virtual void paintConstraintItem(QPainter *p, const QStyleOptionGraphicsItem &opt, const QPointF &start, const QPointF &end, const QPen &pen)
Definition: kdganttitemdelegate.cpp:386
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:55:05 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kdgantt2

Skip menu "kdgantt2"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Modules
  • Related Pages

kdepim API Reference

Skip menu "kdepim API Reference"
  • akonadi_next
  • akregator
  • blogilo
  • calendarsupport
  • console
  •   kabcclient
  •   konsolekalendar
  • kaddressbook
  • kalarm
  •   lib
  • kdgantt2
  • kjots
  • kleopatra
  • kmail
  • knode
  • knotes
  • kontact
  • korgac
  • korganizer
  • ktimetracker
  • libkdepim
  • libkleo
  • libkpgp
  • mailcommon
  • messagelist
  • messageviewer

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal