umbrello 2.34.70-5524f40e1
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
messagewidget.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 MESSAGEWIDGET_H
7#define MESSAGEWIDGET_H
8
9#include "umlwidget.h"
10#include "linkwidget.h"
11
12// forward declarations
14class ObjectWidget;
15class QResizeEvent;
16class UMLOperation;
17
35class MessageWidget : public UMLWidget, public LinkWidget
36{
37 Q_OBJECT
38public:
44 MessageWidget(UMLScene * scene, ObjectWidget* a, int xclick, int yclick,
47 virtual ~MessageWidget();
48
49 virtual void setY(qreal y);
50
51 //---------- LinkWidget Interface methods implementation from here on.
52
53 virtual void lwSetFont (QFont font);
55
56 virtual UMLOperation *operation();
57 virtual void setOperation(UMLOperation *op);
58
59 virtual QString customOpText();
60 virtual void setCustomOpText(const QString &opText);
61
62 virtual void setMessageText(FloatingTextWidget *ft);
63 virtual void setText(FloatingTextWidget *ft, const QString &newText);
64
65 virtual QString lwOperationText();
66 virtual UMLClassifier *lwClassifier();
67 virtual void setOperationText(const QString &op);
68
69 virtual void constrainTextPos(qreal &textX, qreal &textY, qreal textWidth, qreal textHeight,
71
72 //---------- End LinkWidget Interface methods implementation.
73
77 }
78
80
83
84 bool isSelf() const;
85
92 return m_pFText;
93 }
94
101 m_pFText = f;
102 }
103
104 void calculateWidget();
105
106 virtual bool activate(IDChangeLog * Log = 0);
108
109 void calculateDimensions();
116
117 virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
118
119 void setTextPosition();
120
121 void cleanup();
122
123 void setSelected(bool _select);
124
125 int getMinY();
126 int getMaxY();
127
128 virtual QSizeF minimumSize() const;
129
130 UMLWidget* onWidget(const QPointF& p);
131
132 virtual void resizeWidget(qreal newW, qreal newH);
133
134 virtual void saveToXMI(QXmlStreamWriter& writer);
135 virtual bool loadFromXMI(QDomElement & qElement);
136
137 void setxclicked(int xclick);
138 void setyclicked(int yclick);
139
143 int getxclicked() const {
144 return m_xclicked;
145 }
146
147 virtual bool showPropertiesDialog();
148
149protected:
150 virtual void moveWidgetBy(qreal diffX, qreal diffY);
151 virtual void constrainMovementForAllWidgets(qreal &diffX, qreal &diffY);
152
153 virtual bool isInResizeArea(QGraphicsSceneMouseEvent *me);
154
155 void setLinkAndTextPos();
156
157 int constrainX(int textX, int textWidth, Uml::TextRole::Enum tr);
158
159 static void paintArrow(QPainter *p, int x, int y, int w,
160 Qt::ArrowType direction, bool useDottedLine = false);
161 static void paintSolidArrowhead(QPainter *p, int x, int y, Qt::ArrowType direction);
162
163 void updateResizability();
164
165 void paintSynchronous(QPainter *painter, const QStyleOptionGraphicsItem *option);
166 void paintAsynchronous(QPainter *painter, const QStyleOptionGraphicsItem *option);
167 void paintCreation(QPainter *painter, const QStyleOptionGraphicsItem *option);
168 void paintDestroy(QPainter *painter, const QStyleOptionGraphicsItem *option);
169 void paintLost(QPainter *painter, const QStyleOptionGraphicsItem *option);
170 void paintFound(QPainter *painter, const QStyleOptionGraphicsItem *option);
171
172 // Data loaded/saved
173 QString m_CustomOp;
178
179private:
180 void resizeEvent(QResizeEvent *re);
181
182 qreal constrainPositionY(qreal diffY);
183
184 void init();
185
186 QPointer<ObjectWidget> m_pOw[2];
188
191
198
199public slots:
201 void slotMenuSelection(QAction* action);
202
203signals:
208 void sigMessageMoved();
209};
210
211#endif
Displays a line of text or an operation.
Definition: floatingtextwidget.h:32
Definition: idchangelog.h:22
Interface to FloatingTextWidget for AssociationWidget and MessageWidget.
Definition: linkwidget.h:32
Displays a message.
Definition: messagewidget.h:36
virtual UMLClassifier * lwClassifier()
Definition: messagewidget.cpp:1047
Uml::SequenceMessage::Enum m_sequenceMessageType
Definition: messagewidget.h:177
void calculateDimensionsCreation()
Definition: messagewidget.cpp:1156
void slotWidgetMoved(Uml::ID::Type id)
Definition: messagewidget.cpp:768
virtual bool loadFromXMI(QDomElement &qElement)
Definition: messagewidget.cpp:1440
virtual bool isInResizeArea(QGraphicsSceneMouseEvent *me)
Definition: messagewidget.cpp:195
void setSelected(bool _select)
Definition: messagewidget.cpp:1268
void calculateWidget()
Definition: messagewidget.cpp:761
MessageWidget(UMLScene *scene, ObjectWidget *a, ObjectWidget *b, int y, Uml::SequenceMessage::Enum sequenceMessageType, Uml::ID::Type id=Uml::ID::None)
Definition: messagewidget.cpp:52
void resolveObjectWidget(IDChangeLog *log)
Definition: messagewidget.cpp:919
int getMinY()
Definition: messagewidget.cpp:1286
qreal constrainPositionY(qreal diffY)
Definition: messagewidget.cpp:274
void calculateDimensionsLost()
Definition: messagewidget.cpp:1195
FloatingTextWidget * m_pFText
Definition: messagewidget.h:187
int m_xclicked
Definition: messagewidget.h:189
void paintFound(QPainter *painter, const QStyleOptionGraphicsItem *option)
Definition: messagewidget.cpp:605
bool isSelf() const
Definition: messagewidget.cpp:812
void calculateDimensionsAsynchronous()
Definition: messagewidget.cpp:1120
void cleanup()
Definition: messagewidget.cpp:1245
void paintAsynchronous(QPainter *painter, const QStyleOptionGraphicsItem *option)
Definition: messagewidget.cpp:477
bool hasObjectWidget(ObjectWidget *w)
Definition: messagewidget.cpp:797
void setFloatingTextWidget(FloatingTextWidget *f)
Definition: messagewidget.h:100
int constrainX(int textX, int textWidth, Uml::TextRole::Enum tr)
Definition: messagewidget.cpp:696
void paintSynchronous(QPainter *painter, const QStyleOptionGraphicsItem *option)
Definition: messagewidget.cpp:409
virtual QString customOpText()
Definition: messagewidget.cpp:1014
int getMaxY()
Definition: messagewidget.cpp:1308
Uml::SequenceMessage::Enum sequenceMessageType() const
Definition: messagewidget.h:75
virtual QString lwOperationText()
Definition: messagewidget.cpp:1033
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=0)
Definition: messagewidget.cpp:331
void setObjectWidget(ObjectWidget *ow, Uml::RoleType::Enum role)
Definition: messagewidget.cpp:1351
void setxclicked(int xclick)
Definition: messagewidget.cpp:1370
void paintLost(QPainter *painter, const QStyleOptionGraphicsItem *option)
Definition: messagewidget.cpp:567
int getxclicked() const
Definition: messagewidget.h:143
void calculateDimensionsDestroy()
Definition: messagewidget.cpp:1187
Uml::ID::Type m_widgetAId
Definition: messagewidget.h:197
Uml::ID::Type m_textId
Definition: messagewidget.h:197
ObjectWidget * objectWidget(Uml::RoleType::Enum role)
Definition: messagewidget.cpp:1362
virtual void setOperationText(const QString &op)
Definition: messagewidget.cpp:958
virtual bool activate(IDChangeLog *Log=0)
Definition: messagewidget.cpp:836
void setyclicked(int yclick)
Definition: messagewidget.cpp:1378
void resizeEvent(QResizeEvent *re)
Definition: messagewidget.cpp:754
QString m_CustomOp
Definition: messagewidget.h:173
void calculateDimensionsFound()
Definition: messagewidget.cpp:1220
virtual void moveWidgetBy(qreal diffX, qreal diffY)
Definition: messagewidget.cpp:305
void updateResizability()
Definition: messagewidget.cpp:176
Uml::ID::Type m_widgetBId
Definition: messagewidget.h:197
int m_yclicked
Definition: messagewidget.h:190
virtual void setOperation(UMLOperation *op)
Definition: messagewidget.cpp:999
void calculateDimensions()
Definition: messagewidget.cpp:1060
virtual void constrainTextPos(qreal &textX, qreal &textY, qreal textWidth, qreal textHeight, Uml::TextRole::Enum tr)
Definition: messagewidget.cpp:728
virtual void setCustomOpText(const QString &opText)
Definition: messagewidget.cpp:1023
QPointer< ObjectWidget > m_pOw[2]
Definition: messagewidget.h:186
void sigMessageMoved()
Definition: moc_messagewidget.cpp:159
virtual QSizeF minimumSize() const
Definition: messagewidget.cpp:1324
void paintCreation(QPainter *painter, const QStyleOptionGraphicsItem *option)
Definition: messagewidget.cpp:527
FloatingTextWidget * floatingTextWidget()
Definition: messagewidget.h:91
virtual void saveToXMI(QXmlStreamWriter &writer)
Definition: messagewidget.cpp:1408
virtual void setMessageText(FloatingTextWidget *ft)
Definition: messagewidget.cpp:930
void setTextPosition()
Definition: messagewidget.cpp:676
UMLWidget * onWidget(const QPointF &p)
Definition: messagewidget.cpp:651
void calculateDimensionsSynchronous()
Definition: messagewidget.cpp:1086
void setLinkAndTextPos()
Definition: messagewidget.cpp:746
virtual void constrainMovementForAllWidgets(qreal &diffX, qreal &diffY)
Definition: messagewidget.cpp:321
virtual UMLClassifier * operationOwner()
Definition: messagewidget.cpp:977
void init()
Definition: messagewidget.cpp:128
void paintDestroy(QPainter *painter, const QStyleOptionGraphicsItem *option)
Definition: messagewidget.cpp:558
virtual void lwSetFont(QFont font)
Definition: messagewidget.cpp:967
static void paintSolidArrowhead(QPainter *p, int x, int y, Qt::ArrowType direction)
Definition: messagewidget.cpp:362
virtual void setY(qreal y)
Definition: messagewidget.cpp:153
virtual ~MessageWidget()
Definition: messagewidget.cpp:141
void slotMenuSelection(QAction *action)
Definition: messagewidget.cpp:818
virtual bool showPropertiesDialog()
Definition: messagewidget.cpp:1386
virtual void setText(FloatingTextWidget *ft, const QString &newText)
Definition: messagewidget.cpp:946
virtual void resizeWidget(qreal newW, qreal newH)
Definition: messagewidget.cpp:241
static void paintArrow(QPainter *p, int x, int y, int w, Qt::ArrowType direction, bool useDottedLine=false)
Definition: messagewidget.cpp:380
virtual UMLOperation * operation()
Definition: messagewidget.cpp:990
Displays an instance of a Concept.
Definition: objectwidget.h:28
Information for a non-graphical Concept/Class.
Definition: classifier.h:35
Definition: operation.h:20
Definition: umlscene.h:65
The base class for graphical UML objects.
Definition: umlwidget.h:36
virtual QFont font() const
Definition: widgetbase.cpp:555
int x
Definition: cxx11-lambda-functions-and-expressions.h:4
bool b
Definition: cxx11-null-pointer-constant.h:6
QString newText(UMLObject::ObjectType type)
Definition: model_utils.cpp:648
const Type None
special value for uninitialized ID
Definition: basictypes.h:373
std::string Type
Definition: basictypes.h:371
Enum
Definition: basictypes.h:236
Enum
Definition: basictypes.h:217
Enum
Definition: basictypes.h:176
QString a
Definition: petalnode.cpp:13