umbrello  2.32.1
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
seqlinewidget.h
Go to the documentation of this file.
1 /*
2  SPDX-License-Identifier: GPL-2.0-or-later
3  SPDX-FileCopyrightText: 2002-2021 Umbrello UML Modeller Authors <umbrello-devel@kde.org>
4 */
5 
6 #ifndef SEQLINEWIDGET_H
7 #define SEQLINEWIDGET_H
8 
9 #include <QGraphicsLineItem>
10 
11 #include <QPen>
12 
13 class ObjectWidget;
14 class UMLScene;
15 
28 class SeqLineWidget : public QGraphicsLineItem
29 {
30 public:
31  SeqLineWidget(UMLScene *scene, ObjectWidget * pObject);
32  virtual ~SeqLineWidget();
33 
34  bool onWidget(const QPointF& p);
35 
36  bool onDestructionBox(const QPointF& p);
37 
38  void cleanup();
39 
40  void setupDestructionBox();
41 
42  void setStartPoint(int startX, int startY);
43 
49  int getLineLength() const {
50  return m_nLengthY;
51  }
52 
59  return m_pObject;
60  }
61 
62  void setEndOfLine(int yPosition);
63  void setLineColorCmd(const QColor &color);
64 
65 protected:
66  void cleanupDestructionBox();
67 
68  void moveDestructionBox();
69 
72 
73  struct DestructionBox {
74  QGraphicsLineItem * line1{nullptr};
75  QGraphicsLineItem * line2{nullptr};
76  void setLineColorCmd(const QColor &color)
77  {
78  if (!line1)
79  return;
80  QPen pen = line1->pen();
81  pen.setColor(color);
82  line1->setPen(pen);
83  line2->setPen(pen);
84  }
85 
86  void setLine1Points(QRect rect) {
87  line1->setLine(rect.x(), rect.y(),
88  rect.x() + rect.width(), rect.y() + rect.height());
89  }
90  void setLine2Points(QRect rect) {
91  line2->setLine(rect.x(), rect.y() + rect.height(),
92  rect.x() + rect.width(), rect.y());
93  }
95 
96  int m_nLengthY;
97 
98  static int const m_nMouseDownEpsilonX;
99  void contextMenuEvent(QGraphicsSceneContextMenuEvent* event);
100 };
101 
102 #endif
SeqLineWidget::DestructionBox::setLine1Points
void setLine1Points(QRect rect)
Definition: seqlinewidget.h:86
UMLWidget::height
qreal height() const
Definition: umlwidget.h:112
UMLScene::resizeSceneToItems
void resizeSceneToItems()
Definition: umlscene.cpp:3700
SeqLineWidget::moveDestructionBox
void moveDestructionBox()
Definition: seqlinewidget.cpp:163
x
int x
Definition: cxx11-lambda-functions-and-expressions.h:4
SeqLineWidget::m_pObject
ObjectWidget * m_pObject
ObjectWidget associated with this sequence line.
Definition: seqlinewidget.h:70
seqlinewidget.h
umlview.h
SeqLineWidget::setupDestructionBox
void setupDestructionBox()
Definition: seqlinewidget.cpp:133
SeqLineWidget::getLineLength
int getLineLength() const
Definition: seqlinewidget.h:49
SeqLineWidget::DestructionBox
Definition: seqlinewidget.h:73
DEBUG_REGISTER_DISABLED
#define DEBUG_REGISTER_DISABLED(src)
Definition: debug_utils.h:118
ObjectWidget::showDestruction
bool showDestruction() const
Definition: objectwidget.cpp:522
SeqLineWidget::DestructionBox::line2
QGraphicsLineItem * line2
Definition: seqlinewidget.h:75
SeqLineWidget::contextMenuEvent
void contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
Definition: seqlinewidget.cpp:206
SeqLineWidget::~SeqLineWidget
virtual ~SeqLineWidget()
Definition: seqlinewidget.cpp:44
SeqLineWidget::cleanup
void cleanup()
Definition: seqlinewidget.cpp:98
SeqLineWidget::m_DestructionBox
struct SeqLineWidget::DestructionBox m_DestructionBox
the destruction box
UMLWidget::contextMenuEvent
virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
Definition: umlwidget.cpp:256
objectwidget.h
SeqLineWidget
Widget class for graphical representation of sequence lines.
Definition: seqlinewidget.h:28
messagewidget.h
SeqLineWidget::DestructionBox::line1
QGraphicsLineItem * line1
Definition: seqlinewidget.h:74
SeqLineWidget::getObjectWidget
ObjectWidget * getObjectWidget()
Definition: seqlinewidget.h:58
SeqLineWidget::m_nLengthY
int m_nLengthY
the length of the line
Definition: seqlinewidget.h:96
WidgetBase::lineColor
QColor lineColor() const
Definition: widgetbase.cpp:363
SeqLineWidget::cleanupDestructionBox
void cleanupDestructionBox()
Definition: seqlinewidget.cpp:120
ObjectWidget
Displays an instance of a Concept.
Definition: objectwidget.h:27
umlscene.h
SeqLineWidget::SeqLineWidget
SeqLineWidget(UMLScene *scene, ObjectWidget *pObject)
Definition: seqlinewidget.cpp:28
SeqLineWidget::DestructionBox::setLineColorCmd
void setLineColorCmd(const QColor &color)
Definition: seqlinewidget.h:76
debug_utils.h
SeqLineWidget::DestructionBox::setLine2Points
void setLine2Points(QRect rect)
Definition: seqlinewidget.h:90
UMLScene
Definition: umlscene.h:64
SeqLineWidget::setStartPoint
void setStartPoint(int startX, int startY)
Definition: seqlinewidget.cpp:109
SeqLineWidget::m_scene
UMLScene * m_scene
scene displayed on
Definition: seqlinewidget.h:71
SeqLineWidget::m_nMouseDownEpsilonX
static const int m_nMouseDownEpsilonX
margin used for mouse clicks
Definition: seqlinewidget.h:98
widgetbasepopupmenu.h
SeqLineWidget::onDestructionBox
bool onDestructionBox(const QPointF &p)
Definition: seqlinewidget.cpp:77
UMLWidget::width
qreal width() const
Definition: umlwidget.h:119
SeqLineWidget::setLineColorCmd
void setLineColorCmd(const QColor &color)
Definition: seqlinewidget.cpp:198
SeqLineWidget::setEndOfLine
void setEndOfLine(int yPosition)
Definition: seqlinewidget.cpp:182
SeqLineWidget::onWidget
bool onWidget(const QPointF &p)
Definition: seqlinewidget.cpp:56