umbrello  2.32.0
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
associationwidget.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 ASSOCIATIONWIDGET_H
12 #define ASSOCIATIONWIDGET_H
13 
14 #include "associationwidgetlist.h"
15 #include "associationwidgetrole.h"
16 #include "linkwidget.h"
17 #include "messagewidgetlist.h"
18 #include "umlwidgetlist.h"
19 #include "widgetbase.h"
20 
21 class AssociationLine;
22 class ClassifierWidget;
23 class UMLScene;
24 class UMLAssociation;
25 class UMLAttribute;
27 class UMLOperation;
28 
51 class AssociationWidget : public WidgetBase, public LinkWidget
52 {
53  Q_OBJECT
54 public:
55  static AssociationWidget* create(UMLScene *scene);
57  (UMLScene *scene, UMLWidget* WidgetA,
58  Uml::AssociationType::Enum assocType, UMLWidget* WidgetB,
59  UMLObject *umlobject = 0);
60 
61  virtual ~AssociationWidget();
62 
63  virtual void setUMLObject(UMLObject *obj);
64 
65  //---------- LinkWidget Interface methods implementation from now on.
66 
67  virtual void lwSetFont(QFont font);
68  virtual UMLClassifier *operationOwner();
69 
70  virtual UMLOperation *operation();
71  virtual void setOperation(UMLOperation *op);
72 
73  virtual QString customOpText();
74  virtual void setCustomOpText(const QString &opText);
75 
76  virtual void resetTextPositions();
77 
78  virtual void setMessageText(FloatingTextWidget *ft);
79  virtual void setText(FloatingTextWidget *ft, const QString &newText);
80 
81  virtual bool showPropertiesDialog();
82 
83  virtual QString lwOperationText();
84  virtual UMLClassifier *lwClassifier();
85  virtual void setOperationText(const QString &op);
86 
87  virtual void constrainTextPos(qreal &textX, qreal &textY,
88  qreal textWidth, qreal textHeight,
90 
91  virtual void calculateNameTextSegment();
92 
93  //---------- End LinkWidget Interface methods implementation.
94 
95  UMLAssociation* association() const;
96  UMLAttribute* attribute() const;
97 
98 // AssociationWidget& operator=(const AssociationWidget& other);
99  bool operator==(const AssociationWidget& other) const;
100  bool operator!=(AssociationWidget& other) const;
101 
103 
105  QString name() const;
106  void setName(const QString &strRole);
107  void setStereotype(const QString &stereo);
108 
110  QString roleName(Uml::RoleType::Enum role) const;
111  void setRoleName(const QString &strRole, Uml::RoleType::Enum role);
112 
113  QString roleDocumentation(Uml::RoleType::Enum role) const;
114  void setRoleDocumentation(const QString& doc, Uml::RoleType::Enum role);
115 
117  QString multiplicity(Uml::RoleType::Enum role) const;
118  void setMultiplicity(const QString& text, Uml::RoleType::Enum role);
119 
122 
126 
130  void setWidgetForRole(UMLWidget* widget, Uml::RoleType::Enum role);
131 
132  bool containsAsEndpoint(UMLWidget* widget);
133 
136 
137  bool isCollaboration() const;
138  bool isSelf() const;
139 
140  QString toString() const;
141 
142  bool isActivated() const;
143  void setActivated(bool active);
144 
146 
147  virtual bool activate(IDChangeLog *changeLog = 0);
148  virtual QRectF boundingRect() const;
149  virtual QPainterPath shape() const;
150 
151  void widgetMoved(UMLWidget* widget, qreal x, qreal y);
152 
153  void saveIdealTextPositions();
154 
155  UMLWidget* onWidget(const QPointF &p);
156  bool onAssociation(const QPointF& point);
157  bool onAssocClassLine(const QPointF& point);
158 
159  void createAssocClassLine();
160  void createAssocClassLine(ClassifierWidget* classifierWidget,
161  int linePathSegmentIndex);
162 
163  void selectAssocClassLine(bool sel = true);
164  void removeAssocClassLine();
165  void computeAssocClassLine();
166 
167  void setXEntireAssoc(qreal x);
168  void setYEntireAssoc(qreal y);
169 
170  void moveMidPointsBy(qreal x, qreal y);
171  void moveEntireAssoc(qreal x, qreal y);
172 
173  QFont font() const;
174 
175  virtual void setTextColor(const QColor &color);
176  virtual void setLineColor(const QColor &color);
177  virtual void setLineWidth(uint width);
178 
179  void calculateEndingPoints();
180 
181  void clipSize();
182 
183  bool loadFromXMI1(QDomElement& qElement, const UMLWidgetList& widgets,
184  const MessageWidgetList* messages);
185  virtual bool loadFromXMI1(QDomElement& qElement);
186  virtual void saveToXMI1(QDomDocument &qDoc, QDomElement &qElement);
187 
188  void cleanup();
189 
190  bool isPointAddable();
191  bool isPointRemovable();
192  bool isAutoLayouted();
193  bool isLayoutChangeable();
194 
195  virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event);
196  virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
197  virtual void mousePressEvent(QGraphicsSceneMouseEvent *event);
198  virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
199 
200  virtual void setSelected(bool _select);
201 
202 public Q_SLOTS: //:TODO: all virtual?
203  virtual void slotMenuSelection(QAction* action);
205  void slotAttributeChanged();
206 
207  void syncToModel();
208 
209 protected:
210  virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event);
211 
212  virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event);
213  virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event);
214  virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *event);
215 
216 private:
219  void setTextPositionRelatively(Uml::TextRole::Enum role, const QPointF &oldPosition);
220  void setFloatingText(Uml::TextRole::Enum role, const QString& text, FloatingTextWidget* &ft);
221 
222  AssociationWidget(UMLScene *scene);
223 
224  void setUMLAssociation(UMLAssociation * assoc);
225 
227 
228  static Uml::Region::Enum findPointRegion(const QRectF& rect, const QPointF& pos);
229  static qreal findInterceptOnEdge(const QRectF &rect, Uml::Region::Enum region, const QPointF &point);
230  static QLineF::IntersectType intersect(const QRectF &rect, const QLineF &line,
231  QPointF* intersectionPoint);
232 
233  void moveEvent(QGraphicsSceneMouseEvent *me);
234 
236 
237  static QPointF swapXY(const QPointF &p);
238 
239  // not used at the moment
240  // static QPointF calculatePointAtDistance(const QPointF &P1, const QPointF &P2, float Distance);
241  // static QPointF calculatePointAtDistanceOnPerpendicular(const QPointF &P1, const QPointF &P2, float Distance);
242  // static float perpendicularProjection(const QPointF& P1, const QPointF& P2, const QPointF& P3, QPointF& ResultingPoint);
243 
244  static QPointF midPoint(const QPointF& p0, const QPointF& p1);
245 
248  void createPointsException();
249  void updatePointsException();
250 
251  void updateRegionLineCount(int index, int totalCount,
253 
254  void updateAssociations(int totalCount, Uml::Region::Enum region, Uml::RoleType::Enum role);
255 
257 
258  void doUpdates(const QPointF &otherP, Uml::RoleType::Enum role);
259 
260  void setChangeWidget(const QString &strChangeWidget, Uml::RoleType::Enum role);
261 
262  bool checkAddPoint(const QPointF &scenePos);
263  bool checkRemovePoint(const QPointF &scenePos);
264  bool checkAutoLayoutSpline();
265 
266  bool linePathStartsAt(const UMLWidget* widget);
267 
268  void insertIntoLists(qreal position, const AssociationWidget* assoc);
269 
270  qreal m_positions[100];
273 
274  bool m_activated;
275 
284 
285  QPointF m_oldNamePoint;
290  QPointF m_oldRoleAPoint;
291  QPointF m_oldRoleBPoint;
292 
294  QGraphicsLineItem *m_pAssocClassLine;
295  QGraphicsRectItem *m_pAssocClassLineSel0;
296  QGraphicsRectItem *m_pAssocClassLineSel1;
297 
303  QPointF m_eventScenePos;
304 
305 };
306 
307 #endif
static AssociationWidget * create(UMLScene *scene)
Definition: associationwidget.cpp:102
FloatingTextWidget * changeabilityWidget(Uml::RoleType::Enum role) const
Definition: associationwidget.cpp:831
virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *event)
Definition: associationwidget.cpp:3959
Uml::AssociationType::Enum m_associationType
is only used if m_pObject is not set
Definition: associationwidget.h:300
virtual void setSelected(bool _select)
Definition: associationwidget.cpp:3688
void setRoleName(const QString &strRole, Uml::RoleType::Enum role)
Definition: associationwidget.cpp:958
bool isSelf() const
Definition: associationwidget.cpp:1391
void setMultiplicity(const QString &text, Uml::RoleType::Enum role)
Definition: associationwidget.cpp:1065
FloatingTextWidget * nameWidget() const
Definition: associationwidget.cpp:813
UMLWidget * onWidget(const QPointF &p)
Definition: associationwidget.cpp:3725
virtual void setMessageText(FloatingTextWidget *ft)
Definition: associationwidget.cpp:371
UMLWidget * widgetForRole(Uml::RoleType::Enum role) const
Definition: associationwidget.cpp:1232
void setAssociationType(Uml::AssociationType::Enum type)
Definition: associationwidget.cpp:1414
AssociationWidgetList m_ordered
auxiliary variable for updateAssociations()
Definition: associationwidget.h:272
void calculateEndingPoints()
Definition: associationwidget.cpp:1611
int m_positions_len
auxiliary variable for updateAssociations()
Definition: associationwidget.h:271
void mergeAssociationDataIntoUMLRepresentation()
Definition: associationwidget.cpp:1800
QGraphicsRectItem * m_pAssocClassLineSel0
selection decoration for the start point of the assoc. class line
Definition: associationwidget.h:295
AssociationLine * m_associationLine
the definition points for the association line
Definition: associationwidget.h:298
virtual void lwSetFont(QFont font)
Definition: associationwidget.cpp:266
int getRegionCount(Uml::Region::Enum region, Uml::RoleType::Enum role)
Definition: associationwidget.cpp:3302
void updatePointsSelfAssociation()
Definition: associationwidget.cpp:1971
Information for a non-graphical Concept/Class.
Definition: classifier.h:39
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event)
Definition: associationwidget.cpp:3267
virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event)
Definition: associationwidget.cpp:3943
void createPointsException()
Definition: associationwidget.cpp:1998
A base class for classifier list items (e.g. attributes)
Definition: classifierlistitem.h:29
Uml::Visibility::Enum visibility(Uml::RoleType::Enum role) const
Definition: associationwidget.cpp:1078
virtual void setOperation(UMLOperation *op)
Definition: associationwidget.cpp:307
AssociationLine * associationLine() const
Definition: associationwidget.cpp:658
void setYEntireAssoc(qreal y)
Definition: associationwidget.cpp:3808
virtual QPainterPath shape() const
Definition: associationwidget.cpp:3863
Enum
Definition: basictypes.h:59
Interface to FloatingTextWidget for AssociationWidget and MessageWidget.
Definition: linkwidget.h:35
Enum
Definition: basictypes.h:310
QPointF m_oldChangeBPoint
Position of role B changeability floatingtext saved by saveIdealTextPositions()
Definition: associationwidget.h:289
QGraphicsLineItem * m_pAssocClassLine
used for connecting assoc. class
Definition: associationwidget.h:294
void setXEntireAssoc(qreal x)
Definition: associationwidget.cpp:3796
virtual void setOperationText(const QString &op)
Definition: associationwidget.cpp:460
QPointF m_oldRoleBPoint
Position of role B name floatingtext saved by saveIdealTextPositions()
Definition: associationwidget.h:291
void moveMidPointsBy(qreal x, qreal y)
Definition: associationwidget.cpp:3820
Common base class for UMLWidget and AssociationWidget.
Definition: widgetbase.h:104
Definition: idchangelog.h:26
virtual UMLClassifier * lwClassifier()
Definition: associationwidget.cpp:447
FloatingTextWidget * roleWidget(Uml::RoleType::Enum role) const
Definition: associationwidget.cpp:823
static qreal findInterceptOnEdge(const QRectF &rect, Uml::Region::Enum region, const QPointF &point)
Definition: associationwidget.cpp:3367
void computeAssocClassLine()
Definition: associationwidget.cpp:2836
QString roleName(Uml::RoleType::Enum role) const
Definition: associationwidget.cpp:945
Sets up attribute information.
Definition: attribute.h:27
void selectAssocClassLine(bool sel=true)
Definition: associationwidget.cpp:2874
virtual void setText(FloatingTextWidget *ft, const QString &newText)
Definition: associationwidget.cpp:390
virtual QString customOpText()
Definition: associationwidget.cpp:322
QPointF m_oldRoleAPoint
Position of role A name floatingtext saved by saveIdealTextPositions()
Definition: associationwidget.h:290
QGraphicsRectItem * m_pAssocClassLineSel1
selection decoration for the end point of the assoc. class line
Definition: associationwidget.h:296
qreal m_positions[100]
auxiliary variable for updateAssociations()
Definition: associationwidget.h:270
bool checkRemovePoint(const QPointF &scenePos)
Definition: associationwidget.cpp:3225
virtual void calculateNameTextSegment()
Definition: associationwidget.cpp:480
QPointF m_oldMultiBPoint
Position of role B multiplicity floatingtext saved by saveIdealTextPositions()
Definition: associationwidget.h:287
bool onAssociation(const QPointF &point)
Definition: associationwidget.cpp:3774
Uml::TextRole::Enum calculateNameType(Uml::TextRole::Enum defaultRoleType)
Definition: associationwidget.cpp:1207
int x
Definition: cxx11-lambda-functions-and-expressions.h:4
virtual void constrainTextPos(qreal &textX, qreal &textY, qreal textWidth, qreal textHeight, Uml::TextRole::Enum tr)
Definition: associationwidget.cpp:2570
QPointF calculateTextPosition(Uml::TextRole::Enum role)
Definition: associationwidget.cpp:2461
void removeAssocClassLine()
Definition: associationwidget.cpp:2774
void syncToModel()
Definition: associationwidget.cpp:1766
void setTextPositionRelatively(Uml::TextRole::Enum role, const QPointF &oldPosition)
Definition: associationwidget.cpp:2739
The base class for UML objects.
Definition: umlobject.h:73
This class represents an association inside a diagram. Bugs and comments to umbrello-devel@kde.org or https://bugs.kde.org.
Definition: associationwidget.h:51
virtual UMLOperation * operation()
Definition: associationwidget.cpp:298
FloatingTextWidget * textWidgetByRole(Uml::TextRole::Enum tr) const
Definition: associationwidget.cpp:841
Sets up association information.
Definition: association.h:32
QPointF m_eventScenePos
holds scene pos of contextMenuEvent()
Definition: associationwidget.h:303
void slotClassifierListItemRemoved(UMLClassifierListItem *obj)
Definition: associationwidget.cpp:3875
Uml::AssociationType::Enum associationType() const
Definition: associationwidget.cpp:1401
virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
Definition: associationwidget.cpp:3951
bool operator==(const AssociationWidget &other) const
Definition: associationwidget.cpp:601
bool isAutoLayouted()
Definition: associationwidget.cpp:1309
QString roleDocumentation(Uml::RoleType::Enum role) const
Definition: associationwidget.cpp:998
QString name() const
Definition: associationwidget.cpp:870
bool containsAsEndpoint(UMLWidget *widget)
Definition: associationwidget.cpp:1372
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event)
Definition: associationwidget.cpp:2885
virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
Definition: associationwidget.cpp:3915
Uml::ID::Type widgetLocalIDForRole(Uml::RoleType::Enum role) const
Definition: associationwidget.cpp:1469
AssociationWidgetRole m_role[2]
Definition: associationwidget.h:301
Definition: associationline.h:105
int m_nLinePathSegmentIndex
anchor for m_pAssocClassLine
Definition: associationwidget.h:293
void setName(const QString &strRole)
Definition: associationwidget.cpp:881
Enum
Definition: basictypes.h:238
Uml::ID::Type widgetIDForRole(Uml::RoleType::Enum role) const
Definition: associationwidget.cpp:1450
FloatingTextWidget * multiplicityWidget(Uml::RoleType::Enum role) const
Definition: associationwidget.cpp:803
void setActivated(bool active)
Definition: associationwidget.cpp:1758
void setTextPosition(Uml::TextRole::Enum role)
Definition: associationwidget.cpp:2715
bool isActivated() const
Definition: associationwidget.cpp:1750
void moveEntireAssoc(qreal x, qreal y)
Definition: associationwidget.cpp:3836
virtual QRectF boundingRect() const
Definition: associationwidget.cpp:3855
QPointF m_oldNamePoint
Position of name floatingtext saved by saveIdealTextPositions()
Definition: associationwidget.h:285
QString multiplicity(Uml::RoleType::Enum role) const
Definition: associationwidget.cpp:1054
Uml::Changeability::Enum changeability(Uml::RoleType::Enum role) const
Definition: associationwidget.cpp:1121
virtual void setCustomOpText(const QString &opText)
Definition: associationwidget.cpp:331
QPointF m_oldChangeAPoint
Position of role A changeability floatingtext saved by saveIdealTextPositions()
Definition: associationwidget.h:288
Enum
Definition: basictypes.h:106
virtual void setTextColor(const QColor &color)
Definition: associationwidget.cpp:3134
bool isPointRemovable()
Return state if the association line point in the near of the last context menu event position is rem...
Definition: associationwidget.cpp:1301
virtual void setUMLObject(UMLObject *obj)
Definition: associationwidget.cpp:219
QPointF m_oldMultiAPoint
Position of role A multiplicity floatingtext saved by saveIdealTextPositions()
Definition: associationwidget.h:286
QList< QPointer< UMLWidget > > UMLWidgetList
Definition: umlwidgetlist.h:17
bool loadFromXMI1(QDomElement &qElement, const UMLWidgetList &widgets, const MessageWidgetList *messages)
Definition: associationwidget.cpp:4014
void createPointsSelfAssociation()
Definition: associationwidget.cpp:1944
virtual QString lwOperationText()
Definition: associationwidget.cpp:436
void setRoleDocumentation(const QString &doc, Uml::RoleType::Enum role)
Definition: associationwidget.cpp:987
void moveEvent(QGraphicsSceneMouseEvent *me)
Definition: associationwidget.cpp:1531
QString toString() const
Definition: associationwidget.cpp:1486
void setChangeability(Uml::Changeability::Enum value, Uml::RoleType::Enum role)
Definition: associationwidget.cpp:1132
bool linePathStartsAt(const UMLWidget *widget)
Definition: associationwidget.cpp:1186
virtual UMLClassifier * operationOwner()
Definition: associationwidget.cpp:280
QList< QPointer< MessageWidget > > MessageWidgetList
Definition: messagewidgetlist.h:18
void setUMLAssociation(UMLAssociation *assoc)
Definition: associationwidget.cpp:1331
std::string Type
Definition: basictypes.h:351
Enum
Definition: basictypes.h:178
bool m_activated
flag which is true if the activate method has been called for this class instance ...
Definition: associationwidget.h:274
void updatePointsException()
Definition: associationwidget.cpp:2022
bool isPointAddable()
Return state if the association line point in the near of the last context menu event position is add...
Definition: associationwidget.cpp:1286
void updateRegionLineCount(int index, int totalCount, Uml::Region::Enum region, Uml::RoleType::Enum role)
Definition: associationwidget.cpp:3539
Enum
Definition: basictypes.h:204
bool checkAddPoint(const QPointF &scenePos)
Definition: associationwidget.cpp:3174
virtual void slotMenuSelection(QAction *action)
Definition: associationwidget.cpp:2923
virtual void setLineColor(const QColor &color)
Definition: associationwidget.cpp:3158
bool checkAutoLayoutSpline()
Definition: associationwidget.cpp:3258
virtual bool activate(IDChangeLog *changeLog=0)
Definition: associationwidget.cpp:668
void clipSize()
Definition: associationwidget.cpp:3900
void setFloatingText(Uml::TextRole::Enum role, const QString &text, FloatingTextWidget *&ft)
Definition: associationwidget.cpp:1019
Definition: operation.h:24
void setStereotype(const QString &stereo)
Definition: associationwidget.cpp:917
virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
Definition: associationwidget.cpp:1519
bool isLayoutChangeable()
Definition: associationwidget.cpp:1323
Displays a line of text or an operation.
Definition: floatingtextwidget.h:36
virtual void saveToXMI1(QDomDocument &qDoc, QDomElement &qElement)
Definition: associationwidget.cpp:3967
ClassifierWidget * m_associationClass
used if we have an assoc. class
Definition: associationwidget.h:299
QRectF rect() const
Definition: widgetbase.cpp:831
static Uml::Region::Enum findPointRegion(const QRectF &rect, const QPointF &pos)
Definition: associationwidget.cpp:2103
AssociationWidget(UMLScene *scene)
Definition: associationwidget.cpp:71
virtual ~AssociationWidget()
Definition: associationwidget.cpp:208
QFont font() const
Definition: associationwidget.cpp:3106
static QPointF swapXY(const QPointF &p)
Definition: associationwidget.cpp:2160
virtual bool showPropertiesDialog()
Definition: associationwidget.cpp:419
FloatingTextWidget * m_nameWidget
displays the name of this association
Definition: associationwidget.h:302
bool operator!=(AssociationWidget &other) const
Definition: associationwidget.cpp:650
UMLAssociation * association() const
Definition: associationwidget.cpp:520
bool onAssocClassLine(const QPointF &point)
Definition: associationwidget.cpp:3747
Definition: associationwidgetrole.h:31
void setChangeWidget(const QString &strChangeWidget, Uml::RoleType::Enum role)
Definition: associationwidget.cpp:1148
void cleanup()
Definition: associationwidget.cpp:1240
QList< QPointer< AssociationWidget > > AssociationWidgetList
Definition: associationwidgetlist.h:19
void setWidgetForRole(UMLWidget *widget, Uml::RoleType::Enum role)
Definition: associationwidget.cpp:788
void createAssocClassLine()
Definition: associationwidget.cpp:2791
bool isCollaboration() const
Definition: associationwidget.cpp:1380
void insertIntoLists(qreal position, const AssociationWidget *assoc)
Definition: associationwidget.cpp:3439
QString newText(UMLObject::ObjectType type)
Definition: model_utils.cpp:613
int m_unNameLineSegment
Definition: associationwidget.h:283
void widgetMoved(UMLWidget *widget, qreal x, qreal y)
Definition: associationwidget.cpp:1867
static QLineF::IntersectType intersect(const QRectF &rect, const QLineF &line, QPointF *intersectionPoint)
Definition: associationwidget.cpp:3339
virtual void resetTextPositions()
Definition: associationwidget.cpp:340
Common implementation for class widget and interface widget.
Definition: classifierwidget.h:32
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
Definition: associationwidget.cpp:2915
void updateAssociations(int totalCount, Uml::Region::Enum region, Uml::RoleType::Enum role)
Definition: associationwidget.cpp:3463
void slotAttributeChanged()
Definition: associationwidget.cpp:3889
void saveIdealTextPositions()
Definition: associationwidget.cpp:1853
void doUpdates(const QPointF &otherP, Uml::RoleType::Enum role)
Definition: associationwidget.cpp:1707
virtual void setLineWidth(uint width)
Definition: associationwidget.cpp:3166
Definition: umlscene.h:68
UMLAttribute * attribute() const
Definition: associationwidget.cpp:533
void setVisibility(Uml::Visibility::Enum value, Uml::RoleType::Enum role)
Definition: associationwidget.cpp:1092
static QPointF midPoint(const QPointF &p0, const QPointF &p1)
Definition: associationwidget.cpp:2546
The base class for graphical UML objects.
Definition: umlwidget.h:40