umbrello  2.39.2
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
objectwidget.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 OBJECTWIDGET_H
7 #define OBJECTWIDGET_H
8 
9 #include "messagewidgetlist.h"
10 #include "umlwidget.h"
11 
12 class MessageWidget;
13 class SeqLineWidget;
14 class UMLScene;
15 
27 class ObjectWidget : public UMLWidget
28 {
29  Q_OBJECT
30 public:
31  ObjectWidget(UMLScene *scene, UMLObject *o);
32  virtual ~ObjectWidget();
33 
34  virtual void setX(qreal x);
35  virtual void setY(qreal y);
36 
37  qreal centerX();
38 
39  void setMultipleInstance(bool multiple);
40  bool multipleInstance() const;
41 
42  void setSelected(bool state);
43 
44  virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
45 
46  bool activate(IDChangeLog* ChangeLog = 0);
47 
48  void cleanup();
49 
50  virtual bool showPropertiesDialog();
51 
52  void setDrawAsActor(bool drawAsActor);
53  bool drawAsActor() const;
54 
55  void setShowDestruction(bool bShow);
56  bool showDestruction() const;
57 
58  int topMargin();
59 
60  void setEndLine(int yPosition);
61  int getEndLineY();
62 
63  void messageAdded(MessageWidget* message);
64  void messageRemoved(MessageWidget* message);
65 
66  bool canTabUp();
67 
68  bool messageOverlap(qreal y, MessageWidget* messageWidget);
69 
70  virtual void setLineColorCmd(const QColor &color);
71 
73 
74  virtual void resizeWidget(qreal newW, qreal newH);
75 
76  virtual void saveToXMI(QXmlStreamWriter& writer);
77  virtual bool loadFromXMI(QDomElement& qElement);
78 
79 public slots:
80  void slotMenuSelection(QAction* action);
81  virtual void slotFillColorChanged(Uml::ID::Type viewID);
82  void slotMessageMoved();
83 
84 protected:
85  virtual void mousePressEvent(QGraphicsSceneMouseEvent *me);
86  virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *me);
87 
88  QSizeF minimumSize() const;
89 
90  virtual void moveEvent(QGraphicsSceneMouseEvent *event);
91  virtual void moveWidgetBy(qreal diffX, qreal diffY);
92  virtual void constrainMovementForAllWidgets(qreal &diffX, qreal &diffY);
93 
94  virtual QCursor resizeCursor() const;
95 
96  void paintActor(QPainter *p);
97  void paintObject(QPainter *p);
98 
99 private:
100  void tabUp();
101  void tabDown();
102 
103  void moveDestructionBy(qreal diffY);
104 
111 
112  friend class SeqLineWidget;
113 };
114 
115 #endif
Definition: idchangelog.h:22
Displays a message.
Definition: messagewidget.h:36
Displays an instance of a Concept.
Definition: objectwidget.h:28
void slotMenuSelection(QAction *action)
Definition: objectwidget.cpp:168
bool canTabUp()
Definition: objectwidget.cpp:500
virtual void moveWidgetBy(qreal diffX, qreal diffY)
Definition: objectwidget.cpp:123
void messageAdded(MessageWidget *message)
Definition: objectwidget.cpp:559
ObjectWidget(UMLScene *scene, UMLObject *o)
Definition: objectwidget.cpp:52
virtual void setY(qreal y)
Definition: objectwidget.cpp:272
bool m_isOnDestructionBox
true when a click occurred on the destruction box
Definition: objectwidget.h:109
void tabUp()
Definition: objectwidget.cpp:465
virtual bool showPropertiesDialog()
Definition: objectwidget.cpp:380
bool m_drawAsActor
object should be drawn as an Actor or an Object
Definition: objectwidget.h:107
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *me)
Definition: objectwidget.cpp:318
virtual void mousePressEvent(QGraphicsSceneMouseEvent *me)
Definition: objectwidget.cpp:303
int topMargin()
Definition: objectwidget.cpp:490
void moveDestructionBy(qreal diffY)
Definition: objectwidget.cpp:343
virtual void setX(qreal x)
Definition: objectwidget.cpp:260
void paintActor(QPainter *p)
Definition: objectwidget.cpp:432
bool multipleInstance() const
Definition: objectwidget.cpp:95
virtual void setLineColorCmd(const QColor &color)
Definition: objectwidget.cpp:626
bool m_multipleInstance
draw an object as a multiple object
Definition: objectwidget.h:106
void setEndLine(int yPosition)
Definition: objectwidget.cpp:532
bool drawAsActor() const
Definition: objectwidget.cpp:236
bool messageOverlap(qreal y, MessageWidget *messageWidget)
Definition: objectwidget.cpp:607
virtual ~ObjectWidget()
Definition: objectwidget.cpp:70
void setSelected(bool state)
Definition: objectwidget.cpp:100
void messageRemoved(MessageWidget *message)
Definition: objectwidget.cpp:573
virtual bool loadFromXMI(QDomElement &qElement)
Definition: objectwidget.cpp:686
virtual void resizeWidget(qreal newW, qreal newH)
Definition: objectwidget.cpp:664
QSizeF minimumSize() const
Definition: objectwidget.cpp:196
void cleanup()
Definition: objectwidget.cpp:367
bool showDestruction() const
Definition: objectwidget.cpp:522
int getEndLineY()
Definition: objectwidget.cpp:544
bool activate(IDChangeLog *ChangeLog=0)
Definition: objectwidget.cpp:244
void paintObject(QPainter *p)
Definition: objectwidget.cpp:398
void setDrawAsActor(bool drawAsActor)
Definition: objectwidget.cpp:225
SeqLineWidget * sequentialLine() const
Definition: objectwidget.cpp:639
void setShowDestruction(bool bShow)
Definition: objectwidget.cpp:510
void slotMessageMoved()
Definition: objectwidget.cpp:586
virtual void moveEvent(QGraphicsSceneMouseEvent *event)
Definition: objectwidget.cpp:291
void tabDown()
Definition: objectwidget.cpp:477
bool m_showDestruction
show object destruction on sequence diagram line
Definition: objectwidget.h:108
virtual void constrainMovementForAllWidgets(qreal &diffX, qreal &diffY)
Definition: objectwidget.cpp:139
SeqLineWidget * m_pLine
Definition: objectwidget.h:105
virtual void slotFillColorChanged(Uml::ID::Type viewID)
Definition: objectwidget.cpp:355
virtual void saveToXMI(QXmlStreamWriter &writer)
Definition: objectwidget.cpp:673
qreal centerX()
Definition: objectwidget.cpp:283
virtual QCursor resizeCursor() const
Definition: objectwidget.cpp:651
void setMultipleInstance(bool multiple)
Definition: objectwidget.cpp:80
MessageWidgetList m_messages
message widgets with an end on this widget
Definition: objectwidget.h:110
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=0)
Definition: objectwidget.cpp:150
Widget class for graphical representation of sequence lines.
Definition: seqlinewidget.h:29
The base class for UML objects.
Definition: umlobject.h:70
Definition: umlscene.h:65
The base class for graphical UML objects.
Definition: umlwidget.h:36
int x
Definition: cxx11-lambda-functions-and-expressions.h:4
QList< QPointer< MessageWidget > > MessageWidgetList
Definition: messagewidgetlist.h:13
std::string Type
Definition: basictypes.h:371