umbrello  2.32.3
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  * This program is free software; you can redistribute it and/or modify *
3  * it under the terms of the GNU General Public License as published by *
4  * the Free Software Foundation; either version 2 of the License, or *
5  * (at your option) any later version. *
6  * *
7  * copyright (C) 2002-2020 *
8  * Umbrello UML Modeller Authors <umbrello-devel@kde.org> *
9  ***************************************************************************/
10 
11 #ifndef OBJECTWIDGET_H
12 #define OBJECTWIDGET_H
13 
14 #include "messagewidgetlist.h"
15 #include "umlwidget.h"
16 
17 class MessageWidget;
18 class SeqLineWidget;
19 class UMLScene;
20 
32 class ObjectWidget : public UMLWidget
33 {
34  Q_OBJECT
35 public:
36  ObjectWidget(UMLScene *scene, UMLObject *o);
37  virtual ~ObjectWidget();
38 
39  virtual void setX(qreal x);
40  virtual void setY(qreal y);
41 
42  qreal centerX();
43 
44  void setMultipleInstance(bool multiple);
45  bool multipleInstance() const;
46 
47  void setSelected(bool state);
48 
49  virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
50 
51  bool activate(IDChangeLog* ChangeLog = 0);
52 
53  void cleanup();
54 
55  virtual bool showPropertiesDialog();
56 
57  void setDrawAsActor(bool drawAsActor);
58  bool drawAsActor() const;
59 
60  void setShowDestruction(bool bShow);
61  bool showDestruction() const;
62 
63  int topMargin();
64 
65  void setEndLine(int yPosition);
66  int getEndLineY();
67 
68  void messageAdded(MessageWidget* message);
69  void messageRemoved(MessageWidget* message);
70 
71  bool canTabUp();
72 
73  bool messageOverlap(qreal y, MessageWidget* messageWidget);
74 
75  virtual void setLineColorCmd(const QColor &color);
76 
78 
79  virtual void resizeWidget(qreal newW, qreal newH);
80 
81  virtual void saveToXMI1(QDomDocument& qDoc, QDomElement& qElement);
82  virtual bool loadFromXMI1(QDomElement& qElement);
83 
84 public slots:
85  void slotMenuSelection(QAction* action);
86  virtual void slotFillColorChanged(Uml::ID::Type viewID);
87  void slotMessageMoved();
88 
89 protected:
90  virtual void mousePressEvent(QGraphicsSceneMouseEvent *me);
91  virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *me);
92 
93  QSizeF minimumSize() const;
94 
95  virtual void moveEvent(QGraphicsSceneMouseEvent *event);
96  virtual void moveWidgetBy(qreal diffX, qreal diffY);
97  virtual void constrainMovementForAllWidgets(qreal &diffX, qreal &diffY);
98 
99  virtual QCursor resizeCursor() const;
100 
101  void paintActor(QPainter *p);
102  void paintObject(QPainter *p);
103 
104 private:
105  void tabUp();
106  void tabDown();
107 
108  void moveDestructionBy(qreal diffY);
109 
116 
117  friend class SeqLineWidget;
118 };
119 
120 #endif
Definition: idchangelog.h:27
Displays a message.
Definition: messagewidget.h:41
Displays an instance of a Concept.
Definition: objectwidget.h:33
void slotMenuSelection(QAction *action)
Definition: objectwidget.cpp:172
bool canTabUp()
Definition: objectwidget.cpp:504
virtual void moveWidgetBy(qreal diffX, qreal diffY)
Definition: objectwidget.cpp:127
void messageAdded(MessageWidget *message)
Definition: objectwidget.cpp:563
ObjectWidget(UMLScene *scene, UMLObject *o)
Definition: objectwidget.cpp:56
virtual void setY(qreal y)
Definition: objectwidget.cpp:276
bool m_isOnDestructionBox
true when a click occurred on the destruction box
Definition: objectwidget.h:114
void tabUp()
Definition: objectwidget.cpp:469
virtual bool showPropertiesDialog()
Definition: objectwidget.cpp:384
bool m_drawAsActor
object should be drawn as an Actor or an Object
Definition: objectwidget.h:112
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *me)
Definition: objectwidget.cpp:322
virtual void mousePressEvent(QGraphicsSceneMouseEvent *me)
Definition: objectwidget.cpp:307
int topMargin()
Definition: objectwidget.cpp:494
void moveDestructionBy(qreal diffY)
Definition: objectwidget.cpp:347
virtual void setX(qreal x)
Definition: objectwidget.cpp:264
void paintActor(QPainter *p)
Definition: objectwidget.cpp:436
bool multipleInstance() const
Definition: objectwidget.cpp:99
virtual void setLineColorCmd(const QColor &color)
Definition: objectwidget.cpp:630
bool m_multipleInstance
draw an object as a multiple object
Definition: objectwidget.h:111
void setEndLine(int yPosition)
Definition: objectwidget.cpp:536
bool drawAsActor() const
Definition: objectwidget.cpp:240
bool messageOverlap(qreal y, MessageWidget *messageWidget)
Definition: objectwidget.cpp:611
virtual ~ObjectWidget()
Definition: objectwidget.cpp:74
void setSelected(bool state)
Definition: objectwidget.cpp:104
void messageRemoved(MessageWidget *message)
Definition: objectwidget.cpp:577
virtual void resizeWidget(qreal newW, qreal newH)
Definition: objectwidget.cpp:668
QSizeF minimumSize() const
Definition: objectwidget.cpp:200
void cleanup()
Definition: objectwidget.cpp:371
bool showDestruction() const
Definition: objectwidget.cpp:526
int getEndLineY()
Definition: objectwidget.cpp:548
bool activate(IDChangeLog *ChangeLog=0)
Definition: objectwidget.cpp:248
void paintObject(QPainter *p)
Definition: objectwidget.cpp:402
void setDrawAsActor(bool drawAsActor)
Definition: objectwidget.cpp:229
virtual bool loadFromXMI1(QDomElement &qElement)
Definition: objectwidget.cpp:690
SeqLineWidget * sequentialLine() const
Definition: objectwidget.cpp:643
void setShowDestruction(bool bShow)
Definition: objectwidget.cpp:514
void slotMessageMoved()
Definition: objectwidget.cpp:590
virtual void moveEvent(QGraphicsSceneMouseEvent *event)
Definition: objectwidget.cpp:295
void tabDown()
Definition: objectwidget.cpp:481
bool m_showDestruction
show object destruction on sequence diagram line
Definition: objectwidget.h:113
virtual void constrainMovementForAllWidgets(qreal &diffX, qreal &diffY)
Definition: objectwidget.cpp:143
virtual void saveToXMI1(QDomDocument &qDoc, QDomElement &qElement)
Definition: objectwidget.cpp:677
SeqLineWidget * m_pLine
Definition: objectwidget.h:110
virtual void slotFillColorChanged(Uml::ID::Type viewID)
Definition: objectwidget.cpp:359
qreal centerX()
Definition: objectwidget.cpp:287
virtual QCursor resizeCursor() const
Definition: objectwidget.cpp:655
void setMultipleInstance(bool multiple)
Definition: objectwidget.cpp:84
MessageWidgetList m_messages
message widgets with an end on this widget
Definition: objectwidget.h:115
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=0)
Definition: objectwidget.cpp:154
Widget class for graphical representation of sequence lines.
Definition: seqlinewidget.h:27
The base class for UML objects.
Definition: umlobject.h:74
Definition: umlscene.h:69
The base class for graphical UML objects.
Definition: umlwidget.h:41
int x
Definition: cxx11-lambda-functions-and-expressions.h:4
QList< QPointer< MessageWidget > > MessageWidgetList
Definition: messagewidgetlist.h:18
std::string Type
Definition: basictypes.h:351