umbrello  2.32.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  * 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(QXmlStreamWriter& writer);
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:173
bool canTabUp()
Definition: objectwidget.cpp:505
virtual void moveWidgetBy(qreal diffX, qreal diffY)
Definition: objectwidget.cpp:128
void messageAdded(MessageWidget *message)
Definition: objectwidget.cpp:564
ObjectWidget(UMLScene *scene, UMLObject *o)
Definition: objectwidget.cpp:57
virtual void setY(qreal y)
Definition: objectwidget.cpp:277
bool m_isOnDestructionBox
true when a click occurred on the destruction box
Definition: objectwidget.h:114
void tabUp()
Definition: objectwidget.cpp:470
virtual bool showPropertiesDialog()
Definition: objectwidget.cpp:385
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:323
virtual void mousePressEvent(QGraphicsSceneMouseEvent *me)
Definition: objectwidget.cpp:308
int topMargin()
Definition: objectwidget.cpp:495
void moveDestructionBy(qreal diffY)
Definition: objectwidget.cpp:348
virtual void setX(qreal x)
Definition: objectwidget.cpp:265
void paintActor(QPainter *p)
Definition: objectwidget.cpp:437
bool multipleInstance() const
Definition: objectwidget.cpp:100
virtual void setLineColorCmd(const QColor &color)
Definition: objectwidget.cpp:631
bool m_multipleInstance
draw an object as a multiple object
Definition: objectwidget.h:111
void setEndLine(int yPosition)
Definition: objectwidget.cpp:537
bool drawAsActor() const
Definition: objectwidget.cpp:241
bool messageOverlap(qreal y, MessageWidget *messageWidget)
Definition: objectwidget.cpp:612
virtual ~ObjectWidget()
Definition: objectwidget.cpp:75
void setSelected(bool state)
Definition: objectwidget.cpp:105
void messageRemoved(MessageWidget *message)
Definition: objectwidget.cpp:578
virtual void resizeWidget(qreal newW, qreal newH)
Definition: objectwidget.cpp:669
QSizeF minimumSize() const
Definition: objectwidget.cpp:201
void cleanup()
Definition: objectwidget.cpp:372
bool showDestruction() const
Definition: objectwidget.cpp:527
virtual void saveToXMI1(QXmlStreamWriter &writer)
Definition: objectwidget.cpp:678
int getEndLineY()
Definition: objectwidget.cpp:549
bool activate(IDChangeLog *ChangeLog=0)
Definition: objectwidget.cpp:249
void paintObject(QPainter *p)
Definition: objectwidget.cpp:403
void setDrawAsActor(bool drawAsActor)
Definition: objectwidget.cpp:230
virtual bool loadFromXMI1(QDomElement &qElement)
Definition: objectwidget.cpp:691
SeqLineWidget * sequentialLine() const
Definition: objectwidget.cpp:644
void setShowDestruction(bool bShow)
Definition: objectwidget.cpp:515
void slotMessageMoved()
Definition: objectwidget.cpp:591
virtual void moveEvent(QGraphicsSceneMouseEvent *event)
Definition: objectwidget.cpp:296
void tabDown()
Definition: objectwidget.cpp:482
bool m_showDestruction
show object destruction on sequence diagram line
Definition: objectwidget.h:113
virtual void constrainMovementForAllWidgets(qreal &diffX, qreal &diffY)
Definition: objectwidget.cpp:144
SeqLineWidget * m_pLine
Definition: objectwidget.h:110
virtual void slotFillColorChanged(Uml::ID::Type viewID)
Definition: objectwidget.cpp:360
qreal centerX()
Definition: objectwidget.cpp:288
virtual QCursor resizeCursor() const
Definition: objectwidget.cpp:656
void setMultipleInstance(bool multiple)
Definition: objectwidget.cpp:85
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:155
Widget class for graphical representation of sequence lines.
Definition: seqlinewidget.h:34
The base class for UML objects.
Definition: umlobject.h:75
Definition: umlscene.h:70
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:385