umbrello  26.08.1
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
umlscene.h
Go to the documentation of this file.
1 /*
2  SPDX-License-Identifier: GPL-2.0-or-later
3  SPDX-FileCopyrightText: 2002-2022 Umbrello UML Modeller Authors <umbrello-devel@kde.org>
4 */
5 
6 #ifndef UMLSCENE_H
7 #define UMLSCENE_H
8 
9 // local includes
10 #include "associationwidgetlist.h"
11 #include "basictypes.h"
12 #include "classifierwidget.h"
13 #include "messagewidgetlist.h"
14 #include "optionstate.h"
15 #include "umlobject.h"
16 #include "umlobjectlist.h"
17 #include "umlwidgetlist.h"
18 #include "worktoolbar.h"
19 #include "widgetbase.h"
20 
21 // Qt includes
22 #include <QDomDocument>
23 #include <QGraphicsScene>
24 #include <QGraphicsItem>
25 #include <QGraphicsSceneMouseEvent>
26 #include <QGraphicsPolygonItem>
27 #include <QKeyEvent>
28 #include <QMouseEvent>
29 #include <QPixmap>
30 #include <QXmlStreamWriter>
31 
32 // forward declarations
33 class AlignmentGuide;
34 class ClassOptionsPage;
35 class IDChangeLog;
36 class LayoutGrid;
37 class FloatingTextWidget;
38 class ObjectWidget;
39 class ToolBarState;
41 class UMLFolder;
42 class UMLDoc;
43 class UMLAttribute;
44 class UMLCanvasObject;
45 class UMLClassifier;
48 class UMLEntity;
49 class UMLView;
50 
51 class QHideEvent;
52 class QMouseEvent;
53 class QPrinter;
54 class QShowEvent;
56 
57 // migration wrapper for QGraphicsScene items
58 typedef QList<QGraphicsItem*> UMLSceneItemList;
59 
65 class UMLScene : public QGraphicsScene
66 {
67  Q_OBJECT
68 public:
70 
71  explicit UMLScene(UMLFolder *parentFolder, UMLView *view = nullptr);
72  virtual ~UMLScene();
73 
74  UMLView* activeView() const;
75 
76  // Accessors and other methods dealing with loaded/saved data
77 
78  UMLFolder* folder() const;
79  void setFolder(UMLFolder *folder);
80 
81  QString documentation() const;
82  void setDocumentation(const QString &doc);
83 
84  bool autoIncrementSequence() const;
85  void setAutoIncrementSequence(bool state);
87 
88  QString name() const;
89  void setName(const QString &name);
90 
93 
94  Uml::ID::Type ID() const;
95  void setID(Uml::ID::Type id);
96 
97  QPointF pos() const;
98  void setPos(const QPointF &pos);
99 
100  const QColor& fillColor() const;
101  void setFillColor(const QColor &color);
102 
103  const QColor& lineColor() const;
104  void setLineColor(const QColor &color);
105 
106  uint lineWidth() const;
107  void setLineWidth(uint width);
108 
109  const QColor& textColor() const;
110  void setTextColor(const QColor& color);
111 
112  const QColor& gridDotColor() const;
113  void setGridDotColor(const QColor& color);
114 
115  const QColor& backgroundColor() const;
116 
117  bool snapToGrid() const;
118  void setSnapToGrid(bool bSnap);
119 
120  bool snapComponentSizeToGrid() const;
121  void setSnapComponentSizeToGrid(bool bSnap);
122 
123  int snapX() const;
124  int snapY() const;
125  void setSnapSpacing(int x, int y);
126 
127  qreal snappedX(qreal x);
128  qreal snappedY(qreal y);
129 
130  bool isSnapGridVisible() const;
131  void setSnapGridVisible(bool bShow);
132 
133  bool isShowDocumentationIndicator() const;
134  void setShowDocumentationIndicator(bool bShow);
135 
137 
138  bool useFillColor() const;
139  void setUseFillColor(bool ufc);
140 
141  QFont font() const;
142  void setFont(QFont font, bool changeAllWidgets = false);
143 
144  bool showOpSig() const;
145  void setShowOpSig(bool bShowOpSig);
146 
148  void setOptionState(const Settings::OptionState& options);
149 
152  UMLWidgetList widgetList() const;
153  void addWidgetCmd(UMLWidget* widget);
154  void addWidgetCmd(AssociationWidget *widget);
155 
156  bool isOpen() const;
157  void setIsOpen(bool isOpen);
158 
159  // End of accessors and methods that only deal with loaded/saved data
161 
162  void print(QPrinter *pPrinter, QPainter & pPainter);
163 
164  void hideEvent(QHideEvent *he);
165  void showEvent(QShowEvent *se);
166 
167  void checkMessages(ObjectWidget * w);
168 
170 
173  UMLWidget *pWidgetA, UMLWidget *pWidgetB);
175  UMLWidget *pWidgetB, const QString& roleNameB);
176 
177  void removeWidget(UMLWidget *o);
179  void removeWidgetCmd(UMLWidget *o);
180 private:
181  void removeOwnedWidgets(UMLWidget* o);
182 public:
183 
187  void clearSelected();
188 
189  void moveSelectedBy(qreal dX, qreal dY);
190 
191  int selectedCount(bool filterText = false) const;
192 
193  void selectionUseFillColor(bool useFC);
194  void selectionSetFont(const QFont &font);
195  void selectionSetLineColor(const QColor &color);
196  void selectionSetLineWidth(uint width);
197  void selectionSetFillColor(const QColor &color);
199 
200 private:
202 public:
203  void deleteSelection();
204  void resizeSelection();
205 
206  void selectAll();
207 
210 
211  bool isSavedInSeparateFile();
212 
213  void setMenu(const QPoint& pos);
214 
215  void resetToolbar();
217 
218  bool getPaste() const;
219  void setPaste(bool paste);
220 
221  void activate();
222 
224  UMLWidgetList selectedWidgetsExt(bool filterText = true);
225 
226  void activateAfterLoad(bool bUseLog = false);
227 
228  void endPartialWidgetPaste();
230 
231  void removeWidgetCmd(AssociationWidget* pAssoc);
232  void removeAssociations(UMLWidget* pWidget);
233  void selectAssociations(bool bSelect);
234 
235  void getWidgetAssocs(UMLObject* Obj, AssociationWidgetList & Associations);
236 
237  void removeAllAssociations();
238 
239  void removeAllWidgets();
240 
241  void getDiagram(QPixmap & diagram, const QRectF &rect);
242  void getDiagram(QPainter &painter, const QRectF &source, const QRectF &target = QRectF());
243 
244  void copyAsImage(QPixmap*& pix);
245 
247 
248  bool addAssociation(AssociationWidget* pAssoc, bool isPasteOperation = false);
249 
251 
253 
254  QPointF getPastePoint();
255  void resetPastePoint();
256 
257  void setStartedCut();
258 
259  void createAutoAssociations(UMLWidget * widget);
263 
265 
267 
269 
270  void clearDiagram();
271 
272  void applyLayout(const QString &actionText);
273 
274  void toggleSnapToGrid();
276  void toggleShowGrid();
277 
278  void fileLoaded();
279 
280  // Load/Save interface:
281 
282  virtual void saveToXMI(QXmlStreamWriter& writer);
283  virtual bool loadFromXMI(QDomElement & qElement);
284 
285  bool loadUISDiagram(QDomElement & qElement);
286  UMLWidget* loadWidgetFromXMI(QDomElement& widgetElement);
287 
288  void addObject(UMLObject *object);
289 
290  void selectWidgets(qreal px, qreal py, qreal qx, qreal qy);
291  void selectWidgets(UMLWidgetList &widgets);
292  void selectWidget(UMLWidget *widget, QRectF *rect = nullptr);
294 
295  ObjectWidget * onWidgetLine(const QPointF &point) const;
296  ObjectWidget * onWidgetDestructionBox(const QPointF &point) const;
297 
299 
300  UMLWidget* widgetAt(const QPointF& p);
301  AssociationWidget* associationAt(const QPointF& p);
302  MessageWidget* messageAt(const QPointF& p);
303 
304  void setupNewWidget(UMLWidget *w, bool setPosition=true);
305 
306  bool getCreateObject() const;
307  void setCreateObject(bool bCreate);
308 
310 
311  UMLSceneItemList collisions(const QPointF &p, int delta = 3);
312 
313  bool isClassDiagram() const { return type() == Uml::DiagramType::Class; }
314  bool isUseCaseDiagram() const { return type() == Uml::DiagramType::UseCase; }
315  bool isSequenceDiagram() const { return type() == Uml::DiagramType::Sequence; }
317  bool isStateDiagram() const { return type() == Uml::DiagramType::State; }
318  bool isActivityDiagram() const { return type() == Uml::DiagramType::Activity; }
322  bool isObjectDiagram() const { return type() == Uml::DiagramType::Object; }
323 
324  void setWidgetLink(WidgetBase *w);
326 
327  static qreal maxCanvasSize();
328 
329  void updateCanvasSizeEstimate(qreal x, qreal y, qreal w, qreal h);
330  void updateSceneRect();
331 
332  qreal fixX() const;
333  qreal fixY() const;
334 
335 protected:
336  // Methods and members related to loading/saving
337 
338  bool loadWidgetsFromXMI(QDomElement & qElement);
339  bool loadMessagesFromXMI(QDomElement & qElement);
340  bool loadAssociationsFromXMI(QDomElement & qElement);
341  bool loadUisDiagramPresentation(QDomElement & qElement);
342 
348 
351  QString m_Name;
352  QString m_Documentation;
354 
357  bool m_isOpen;
358 
359  // End of methods and members related to loading/saving
361 
362  void dragEnterEvent(QGraphicsSceneDragDropEvent* enterEvent);
363  void dragMoveEvent(QGraphicsSceneDragDropEvent* moveEvent);
364  void dropEvent(QGraphicsSceneDragDropEvent* dropEvent);
365 
366  void mouseMoveEvent(QGraphicsSceneMouseEvent* mouseEvent);
367  void mousePressEvent(QGraphicsSceneMouseEvent* mouseEvent);
368  void mouseDoubleClickEvent(QGraphicsSceneMouseEvent* mouseEvent);
369  void mouseReleaseEvent(QGraphicsSceneMouseEvent* mouseEvent);
370  virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent* event);
371 
372  QRectF diagramRect();
373 
374  void makeSelected(UMLWidget* uw);
375 
376  void updateComponentSizes();
377 
379  qreal& px, qreal& py, qreal& qx, qreal& qy);
380  void forceUpdateWidgetFontMetrics(QPainter *painter);
381 
382  virtual void drawBackground(QPainter *painter, const QRectF &rect);
383  virtual void drawForeground(QPainter *painter, const QRectF &rect);
384 
385 #if !(QT_DEPRECATED_SINCE(5, 0))
386  inline QGraphicsItem *itemAt(const QPointF &position) const {
387  QList<QGraphicsItem *> itemsAtPoint = items(position);
388  return itemsAtPoint.isEmpty() ? nullptr : itemsAtPoint.first();
389  }
390 #endif
391 
393  QPointF m_pos;
396  bool m_bPaste;
398 
399 private:
401  static const qreal s_defaultCanvasWidth;
402  static const qreal s_defaultCanvasHeight;
403  static const qreal s_maxCanvasSize;
404  static const qreal s_sceneBorder;
406 
409 
413  QPointF m_PastePoint;
419  qreal m_minX, m_minY;
420  qreal m_maxX, m_maxY;
421  qreal m_fixX;
422  qreal m_fixY;
423 
425  UMLAttribute *attr,
426  UMLWidget *widget);
428  UMLForeignKeyConstraint* fkConstraint,
429  UMLWidget* widget);
430 
431 public Q_SLOTS:
432  void slotToolBarChanged(int c);
433  void slotObjectCreated(UMLObject * o);
434  void slotObjectRemoved(UMLObject * o);
435  void slotMenuSelection(QAction* action);
436  void slotActivate();
437  void slotCutSuccessful();
438  void slotShowView();
439 
440  void alignLeft();
441  void alignRight();
442  void alignTop();
443  void alignBottom();
444  void alignVerticalMiddle();
445  void alignHorizontalMiddle();
448 
449 Q_SIGNALS:
450  void sigResetToolBar();
451 
457  void sigSnapToGridToggled(bool);
459  void sigShowGridToggled(bool);
462 
463  friend class DiagramProxyWidget;
464 };
465 
466 QDebug operator<<(QDebug dbg, UMLScene *item);
467 
468 #endif // UMLSCENE_H
Displays an instance of a Concept.
Definition: objectwidget.h:27
bool m_isOpen
Flag is set to true when diagram is open, i.e. shown to the user.
Definition: umlscene.h:357
bool m_bPopupShowing
Status of a popupmenu on view. True - a popup is on view.
Definition: umlscene.h:412
AssociationWidget * associationAt(const QPointF &p)
Definition: umlscene.cpp:1119
void sigFillColorChanged(Uml::ID::Type)
virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
Definition: umlscene.cpp:3011
int snapY() const
Definition: umlscene.cpp:3636
void setMenu(const QPoint &pos)
UMLWidgetList selectedMessageWidgets() const
Definition: umlscene.cpp:1469
const QColor & gridDotColor() const
Definition: umlscene.cpp:573
bool m_bCreateObject
Definition: umlscene.h:394
bool autoIncrementSequence() const
Definition: umlscene.cpp:393
qreal m_fixY
Compensate for QGraphicsScene offsets, https://bugs.kde.org/show_bug.cgi?id=449622.
Definition: umlscene.h:422
void slotShowView()
Definition: umlscene.cpp:3438
void fileLoaded()
Definition: umlscene.cpp:3746
Information for a non-graphical Concept/Class.
Definition: umlclassifier.h:34
bool m_bStartedCut
Flag if view/children started cut operation.
Definition: umlscene.h:397
UMLWidget * getFirstMultiSelectedWidget() const
Definition: umlscene.cpp:1089
void removeAllWidgets()
Definition: umlscene.cpp:2397
void removeWidgetCmd(UMLWidget *o)
Definition: umlscene.cpp:1338
void setStartedCut()
Definition: umlscene.cpp:3469
A dialog page to display the class related options.
Definition: classoptionspage.h:34
void createAutoAttributeAssociations2(UMLWidget *widget)
Definition: umlscene.cpp:2870
Definition: basictypes.h:76
qreal m_minY
Gather data for estimating required canvas size (used during loadFromXMI)
Definition: umlscene.h:419
qreal snappedX(qreal x)
Definition: umlscene.cpp:3660
void updateComponentSizes()
Definition: umlscene.cpp:3754
void selectAll()
Definition: umlscene.cpp:1725
void findMaxBoundingRectangle(const FloatingTextWidget *ft, qreal &px, qreal &py, qreal &qx, qreal &qy)
Definition: umlscene.cpp:2901
void removeAssocInViewAndDoc(AssociationWidget *assoc)
Definition: umlscene.cpp:2305
QList< QGraphicsItem * > UMLSceneItemList
Definition: umlscene.h:55
void createAutoAttributeAssociations(UMLWidget *widget)
Definition: umlscene.cpp:2659
bool isSavedInSeparateFile()
Definition: umlscene.cpp:1734
void endPartialWidgetPaste()
Definition: umlscene.cpp:2274
void slotActivate()
Definition: umlscene.cpp:1987
bool isDeploymentDiagram() const
Definition: umlscene.h:320
void addObject(UMLObject *object)
Definition: umlscene.cpp:4298
UMLWidget * widgetOnDiagram(Uml::ID::Type id)
Definition: umlscene.cpp:1168
WidgetBase * widgetLink()
Definition: umlscene.cpp:4649
void setLineColor(const QColor &color)
Definition: umlscene.cpp:524
int m_nCollaborationId
Used for creating unique name of collaboration messages.
Definition: umlscene.h:392
MessageWidget * messageAt(const QPointF &p)
Definition: umlscene.cpp:1134
bool isObjectDiagram() const
Definition: umlscene.h:322
qreal m_maxX
Definition: umlscene.h:420
void sigGridColorChanged(Uml::ID::Type)
Common base class for UMLWidget and AssociationWidget.
Definition: widgetbase.h:100
Definition: idchangelog.h:21
void selectAssociations(bool bSelect)
Definition: umlscene.cpp:2352
QString a
Definition: petalnode.cpp:13
void setType(Uml::DiagramType::Enum type)
Definition: umlscene.cpp:455
void alignBottom()
Definition: umlscene.cpp:4500
Definition: umlview.h:29
void sigShowGridToggled(bool)
virtual bool loadFromXMI(QDomElement &qElement)
Definition: umlscene.cpp:3934
void alignHorizontalDistribute()
Definition: umlscene.cpp:4604
virtual void drawBackground(QPainter *painter, const QRectF &rect)
Definition: umlscene.cpp:3783
Sets up attribute information.
Definition: umlattribute.h:22
LayoutGrid * m_layoutGrid
layout grid in the background
Definition: umlscene.h:416
void mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent)
Definition: umlscene.cpp:982
MessageWidgetList messageList() const
Definition: umlscene.cpp:655
void sigSnapToGridToggled(bool)
void slotObjectRemoved(UMLObject *o)
Definition: umlscene.cpp:862
void copyAsImage(QPixmap *&pix)
Definition: umlscene.cpp:2924
Uml::ID::Type ID() const
Definition: umlscene.cpp:463
Non-graphical information for a UMLCanvasObject.
Definition: umlcanvasobject.h:31
Definition: basictypes.h:74
void mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent)
Definition: umlscene.cpp:995
bool isStateDiagram() const
Definition: umlscene.h:317
AssociationWidgetList selectedAssociationWidgets() const
Definition: umlscene.cpp:1452
bool snapComponentSizeToGrid() const
Definition: umlscene.cpp:3610
void toggleSnapComponentSizeToGrid()
Definition: umlscene.cpp:3576
void selectWidgets(qreal px, qreal py, qreal qx, qreal qy)
Definition: umlscene.cpp:1811
static bool s_showDocumentationIndicator
Status of documentation indicator.
Definition: umlscene.h:405
QGraphicsItem * itemAt(const QPointF &position) const
Definition: umlscene.h:386
void selectionUseFillColor(bool useFC)
Definition: umlscene.cpp:1523
void setSnapSpacing(int x, int y)
Definition: umlscene.cpp:3652
void selectionSetVisualProperty(ClassifierWidget::VisualProperty property, bool value)
Definition: umlscene.cpp:1608
Definition: basictypes.h:70
Definition: optionstate.h:314
bool isEntityRelationshipDiagram() const
Definition: umlscene.h:321
WidgetType
Definition: widgetbase.h:106
void alignVerticalMiddle()
Definition: umlscene.cpp:4517
void setOptionState(const Settings::OptionState &options)
Definition: umlscene.cpp:600
void updateContainment(UMLCanvasObject *self)
Definition: umlscene.cpp:2419
void selectionSetFillColor(const QColor &color)
Definition: umlscene.cpp:1593
void hideEvent(QHideEvent *he)
Definition: umlscene.cpp:799
UMLWidgetList selectedWidgets() const
Definition: umlscene.cpp:1435
QString m_Name
The name of the diagram.
Definition: umlscene.h:351
void setAutoIncrementSequence(bool state)
Definition: umlscene.cpp:398
void setID(Uml::ID::Type id)
Definition: umlscene.cpp:471
int x
Definition: cxx11-lambda-functions-and-expressions.h:4
void setFillColor(const QColor &color)
Definition: umlscene.cpp:505
void setupNewWidget(UMLWidget *w, bool setPosition=true)
Definition: umlscene.cpp:741
bool showOpSig() const
Definition: umlscene.cpp:3729
QFont font() const
Definition: umlscene.cpp:3477
ToolBar_Buttons
Definition: worktoolbar.h:52
void dragMoveEvent(QGraphicsSceneDragDropEvent *moveEvent)
Definition: umlscene.cpp:924
void alignRight()
Definition: umlscene.cpp:4465
void slotCutSuccessful()
Definition: umlscene.cpp:3427
Sets up Foreign Key entity constraint information.
Definition: umlforeignkeyconstraint.h:27
bool isShowDocumentationIndicator() const
Definition: umlscene.cpp:3713
void slotObjectCreated(UMLObject *o)
Definition: umlscene.cpp:821
qreal m_fixX
Compensate for QGraphicsScene offsets, https://bugs.kde.org/show_bug.cgi?id=449622.
Definition: umlscene.h:421
bool m_isActivated
True if the view was activated after the deserialization(load).
Definition: umlscene.h:411
The base class for UML objects.
Definition: umlobject.h:69
This class represents an association inside a diagram. Bugs and comments to umbrello-devel@kde.org or https://bugs.kde.org.
Definition: associationwidget.h:46
virtual void saveToXMI(QXmlStreamWriter &writer)
Definition: umlscene.cpp:3861
bool getPaste() const
Definition: umlscene.cpp:3028
void removeAssociations(UMLWidget *pWidget)
Definition: umlscene.cpp:2338
UMLFolder * folder() const
Definition: umlscene.cpp:353
static qreal maxCanvasSize()
Definition: umlscene.cpp:346
QDebug operator<<(QDebug dbg, UMLScene *item)
Definition: umlscene.cpp:4635
void setIsOpen(bool isOpen)
Definition: umlscene.cpp:687
void slotToolBarChanged(int c)
Definition: umlscene.cpp:812
void dropEvent(QGraphicsSceneDragDropEvent *dropEvent)
Definition: umlscene.cpp:932
Definition: basictypes.h:69
Definition: basictypes.h:72
void setShowOpSig(bool bShowOpSig)
Definition: umlscene.cpp:3737
void sigSnapComponentSizeToGridToggled(bool)
VisualProperty
Definition: classifierwidget.h:37
AssociationWidgetList selectedAssocs()
Definition: umlscene.cpp:2092
bool loadWidgetsFromXMI(QDomElement &qElement)
Definition: umlscene.cpp:4185
void setFolder(UMLFolder *folder)
Definition: umlscene.cpp:361
bool isComponentDiagram() const
Definition: umlscene.h:319
bool isActivityDiagram() const
Definition: umlscene.h:318
AssociationWidgetList associationList() const
Definition: umlscene.cpp:613
void sigResetToolBar()
virtual void drawForeground(QPainter *painter, const QRectF &rect)
Definition: umlscene.cpp:3824
UMLDoc * m_doc
Pointer to the UMLDoc.
Definition: umlscene.h:414
Definition: basictypes.h:73
QString documentation() const
Definition: umlscene.cpp:377
UMLView * m_view
The view to which this scene is related.
Definition: umlscene.h:407
virtual ~UMLScene()
Definition: umlscene.cpp:314
Displays a message.
Definition: messagewidget.h:35
Enum
Definition: basictypes.h:63
bool addAssociation(AssociationWidget *pAssoc, bool isPasteOperation=false)
Definition: umlscene.cpp:2146
void showEvent(QShowEvent *se)
Definition: umlscene.cpp:786
qreal m_maxY
Gather data for estimating required canvas size (used during loadFromXMI)
Definition: umlscene.h:420
UMLWidgetList selectedWidgetsExt(bool filterText=true)
Definition: umlscene.cpp:2073
void resizeSelection()
Definition: umlscene.cpp:1702
static const qreal s_defaultCanvasWidth
The default width of a diagram in pixels.
Definition: umlscene.h:401
void setDocumentation(const QString &doc)
Definition: umlscene.cpp:385
void selectWidgetsOfAssoc(AssociationWidget *a)
Definition: umlscene.cpp:1791
int generateCollaborationId()
Definition: umlscene.cpp:669
UMLWidget * widgetAt(const QPointF &p)
Definition: umlscene.cpp:1103
QString name() const
Definition: umlscene.cpp:431
bool m_bUseSnapToGrid
Flag to use snap to grid. The default is off.
Definition: umlscene.h:355
ObjectWidget * onWidgetDestructionBox(const QPointF &point) const
Definition: umlscene.cpp:1068
Definition: basictypes.h:75
QRectF diagramRect()
Definition: umlscene.cpp:1425
void checkMessages(ObjectWidget *w)
Definition: umlscene.cpp:1148
Enum
Definition: basictypes.h:92
const QColor & backgroundColor() const
Definition: umlscene.cpp:1399
QString m_Documentation
The documentation of the diagram.
Definition: umlscene.h:352
void setLineWidth(uint width)
Definition: umlscene.cpp:543
qreal m_minX
Definition: umlscene.h:419
UMLSceneItemList collisions(const QPointF &p, int delta=3)
Definition: umlscene.cpp:1768
void triggerToolbarButton(WorkToolBar::ToolBar_Buttons button)
Definition: umlscene.cpp:3003
Manages alignment guides and snapping for widget movement.
Definition: alignmentguide.h:26
void mouseReleaseEvent(QGraphicsSceneMouseEvent *mouseEvent)
Definition: umlscene.cpp:1031
UMLWidget * findWidget(Uml::ID::Type id)
Definition: umlscene.cpp:1213
QList< QPointer< UMLWidget > > UMLWidgetList
Definition: umlwidgetlist.h:13
Settings::OptionState & optionState()
Definition: umlscene.cpp:592
Definition: diagramproxywidget.h:25
Non-graphical management of objects and diagrams of a Folder.
Definition: umlfolder.h:29
void updateCanvasSizeEstimate(qreal x, qreal y, qreal w, qreal h)
Definition: umlscene.cpp:4668
bool loadAssociationsFromXMI(QDomElement &qElement)
Definition: umlscene.cpp:4260
void unselectChildrenOfSelectedWidgets()
Definition: umlscene.cpp:1623
void addWidgetCmd(UMLWidget *widget)
Definition: umlscene.cpp:638
bool isClassDiagram() const
Definition: umlscene.h:313
void sigTextColorChanged(Uml::ID::Type)
AssociationWidget * findAssocWidget(Uml::ID::Type id)
Definition: umlscene.cpp:1242
void setSnapToGrid(bool bSnap)
Definition: umlscene.cpp:3601
void getDiagram(QPixmap &diagram, const QRectF &rect)
Definition: umlscene.cpp:1917
void activate()
Definition: umlscene.cpp:1995
bool m_bDrawSelectedOnly
Definition: umlscene.h:395
bool loadUisDiagramPresentation(QDomElement &qElement)
Definition: umlscene.cpp:4307
void sigAssociationRemoved(AssociationWidget *)
Definition: basictypes.h:71
void deleteSelection()
Definition: umlscene.cpp:1640
qreal fixY() const
Definition: umlscene.cpp:4700
void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *mouseEvent)
Definition: umlscene.cpp:1014
void setUseFillColor(bool ufc)
Definition: umlscene.cpp:1415
QList< QPointer< MessageWidget > > MessageWidgetList
Definition: messagewidgetlist.h:13
UMLViewImageExporter * m_pImageExporter
Used to export the view.
Definition: umlscene.h:415
bool m_autoIncrementSequence
state of auto increment sequence
Definition: umlscene.h:418
void selectionSetFont(const QFont &font)
Definition: umlscene.cpp:1541
void selectionSetLineColor(const QColor &color)
Definition: umlscene.cpp:1555
void slotMenuSelection(QAction *action)
Definition: umlscene.cpp:3045
Definition: basictypes.h:68
std::string Type
Definition: basictypes.h:371
void alignLeft()
Definition: umlscene.cpp:4447
void removeWidget(UMLWidget *o)
Definition: umlscene.cpp:1318
int snapX() const
Definition: umlscene.cpp:3628
Definition: layoutgrid.h:22
bool loadUISDiagram(QDomElement &qElement)
Definition: umlscene.cpp:4408
void createAutoConstraintAssociations(UMLWidget *widget)
Definition: umlscene.cpp:2789
const QColor & textColor() const
Definition: umlscene.cpp:552
Definition: umlscene.cpp:113
Uml::DiagramType::Enum m_Type
The type of diagram to represent.
Definition: umlscene.h:350
qreal fixX() const
Definition: umlscene.cpp:4692
void alignHorizontalMiddle()
Definition: umlscene.cpp:4545
AlignmentGuide * m_alignmentGuide
alignment guide for widget snapping
Definition: umlscene.h:417
void activateAfterLoad(bool bUseLog=false)
Definition: umlscene.cpp:2246
void forceUpdateWidgetFontMetrics(QPainter *painter)
Definition: umlscene.cpp:3772
AlignmentGuide * alignmentGuide() const
Definition: umlscene.cpp:3644
Uml::DiagramType::Enum type() const
Definition: umlscene.cpp:447
void setPaste(bool paste)
Definition: umlscene.cpp:3036
uint lineWidth() const
Definition: umlscene.cpp:533
void setShowDocumentationIndicator(bool bShow)
Definition: umlscene.cpp:3721
Definition: basictypes.h:67
void getWidgetAssocs(UMLObject *Obj, AssociationWidgetList &Associations)
Definition: umlscene.cpp:2370
QPointF m_pos
Definition: umlscene.h:393
Definition: umlviewimageexportermodel.h:28
static const qreal s_maxCanvasSize
The maximum supported canvas size.
Definition: umlscene.h:403
Definition: umlviewimageexporter.h:22
void setGridDotColor(const QColor &color)
Definition: umlscene.cpp:583
UMLFolder * m_pFolder
The folder in which this UMLView is contained.
Definition: umlscene.h:408
Displays a line of text or an operation.
Definition: floatingtextwidget.h:31
Definition: toolbarstatefactory.h:28
void makeSelected(UMLWidget *uw)
Definition: umlscene.cpp:1781
void clearSelected()
Definition: umlscene.cpp:1490
void setCreateObject(bool bCreate)
Definition: umlscene.cpp:778
void applyLayout(const QString &actionText)
Definition: umlscene.cpp:3554
bool snapToGrid() const
Definition: umlscene.cpp:3593
bool isSequenceDiagram() const
Definition: umlscene.h:315
int selectedCount(bool filterText=false) const
Definition: umlscene.cpp:2048
void sigLineWidthChanged(Uml::ID::Type)
WidgetBase::WidgetType getUniqueSelectionType()
Definition: umlscene.cpp:3520
void beginPartialWidgetPaste()
Definition: umlscene.cpp:2265
void setWidgetLink(WidgetBase *w)
Definition: umlscene.cpp:4644
void setSnapComponentSizeToGrid(bool bSnap)
Definition: umlscene.cpp:3618
void dragEnterEvent(QGraphicsSceneDragDropEvent *enterEvent)
Definition: umlscene.cpp:878
void removeAllAssociations()
Definition: umlscene.cpp:2386
void resetPastePoint()
Definition: umlscene.cpp:3460
void setTextColor(const QColor &color)
Definition: umlscene.cpp:562
IDChangeLog * m_pIDChangesLog
LocalID Changes Log for paste actions.
Definition: umlscene.h:410
Settings::OptionState m_Options
Options used by view.
Definition: umlscene.h:353
void selectionSetLineWidth(uint width)
Definition: umlscene.cpp:1573
QString autoIncrementSequenceValue()
Definition: umlscene.cpp:406
Uml::ID::Type m_nLocalID
Definition: umlscene.h:347
void sigWidgetRemoved(UMLWidget *)
void alignTop()
Definition: umlscene.cpp:4482
qreal snappedY(qreal y)
Definition: umlscene.cpp:3678
void createAutoAttributeAssociation(UMLClassifier *type, UMLAttribute *attr, UMLWidget *widget)
Definition: umlscene.cpp:2727
void toggleShowGrid()
Definition: umlscene.cpp:3585
void setFont(QFont font, bool changeAllWidgets=false)
Definition: umlscene.cpp:3485
static const qreal s_sceneBorder
A border around the bounding rectangle of the elements in the scene.
Definition: umlscene.h:404
UMLScenePrivate * m_d
Definition: umlscene.h:400
void createAutoAssociations(UMLWidget *widget)
Definition: umlscene.cpp:2471
void toggleSnapToGrid()
Definition: umlscene.cpp:3567
bool useFillColor() const
Definition: umlscene.cpp:1407
UMLViewImageExporter * getImageExporter()
Definition: umlscene.cpp:1979
QList< QPointer< AssociationWidget > > AssociationWidgetList
Definition: associationwidgetlist.h:15
QPointF getPastePoint()
Definition: umlscene.cpp:3449
void clearDiagram()
Definition: umlscene.cpp:3544
void removeOwnedWidgets(UMLWidget *o)
Definition: umlscene.cpp:1384
UMLWidgetList widgetList() const
Definition: umlscene.cpp:627
Definition: toolbarstate.h:64
void resetToolbar()
Definition: umlscene.cpp:2998
bool loadMessagesFromXMI(QDomElement &qElement)
Definition: umlscene.cpp:4232
void addFloatingTextWidget(FloatingTextWidget *pWidget)
Definition: umlscene.cpp:2106
bool m_bPaste
Definition: umlscene.h:396
UMLScene(UMLFolder *parentFolder, UMLView *view=nullptr)
Definition: umlscene.cpp:263
const QColor & lineColor() const
Definition: umlscene.cpp:514
QPointF m_PastePoint
The offset at which to paste the clipboard.
Definition: umlscene.h:413
ObjectWidget * onWidgetLine(const QPointF &point) const
Definition: umlscene.cpp:1043
void setClassWidgetOptions(ClassOptionsPage *page)
Definition: umlscene.cpp:3499
void setPos(const QPointF &pos)
Definition: umlscene.cpp:487
void selectWidget(UMLWidget *widget, QRectF *rect=nullptr)
Definition: umlscene.cpp:1862
UMLWidget * loadWidgetFromXMI(QDomElement &widgetElement)
Definition: umlscene.cpp:4211
void createAutoConstraintAssociation(UMLEntity *refEntity, UMLForeignKeyConstraint *fkConstraint, UMLWidget *widget)
Definition: umlscene.cpp:2838
void alignVerticalDistribute()
Definition: umlscene.cpp:4573
void print(QPrinter *pPrinter, QPainter &pPainter)
Definition: umlscene.cpp:695
void updateSceneRect()
Definition: umlscene.cpp:4683
Uml::ID::Type m_nID
The ID of the view. Allocated by UMLDoc.
Definition: umlscene.h:349
bool isOpen() const
Definition: umlscene.cpp:678
bool m_bUseSnapComponentSizeToGrid
Flag to use snap to grid for component size. The default is off.
Definition: umlscene.h:356
bool isSnapGridVisible() const
Definition: umlscene.cpp:3696
bool isCollaborationDiagram() const
Definition: umlscene.h:316
void sigLineColorChanged(Uml::ID::Type)
void setSnapGridVisible(bool bShow)
Definition: umlscene.cpp:3704
void setName(const QString &name)
Definition: umlscene.cpp:439
Definition: umlscene.h:65
bool isUseCaseDiagram() const
Definition: umlscene.h:314
UMLView * activeView() const
Definition: umlscene.cpp:369
const QColor & fillColor() const
Definition: umlscene.cpp:495
Non-graphical Information for an Entity.
Definition: umlentity.h:29
bool getCreateObject() const
Definition: umlscene.cpp:770
void moveSelectedBy(qreal dX, qreal dY)
Definition: umlscene.cpp:1510
static const qreal s_defaultCanvasHeight
The default height of a diagram in pixels.
Definition: umlscene.h:402
Definition: umldoc.h:62
QPointF pos() const
Definition: umlscene.cpp:479
The base class for graphical UML objects.
Definition: umlwidget.h:35