22#include <QDomDocument>
23#include <QGraphicsScene>
24#include <QGraphicsItem>
25#include <QGraphicsSceneMouseEvent>
26#include <QGraphicsPolygonItem>
30#include <QXmlStreamWriter>
142 void setFont(QFont
font,
bool changeAllWidgets =
false);
162 void print(QPrinter *pPrinter, QPainter & pPainter);
175 UMLWidget *pWidgetB,
const QString& roleNameB);
241 void getDiagram(QPixmap & diagram,
const QRectF &rect);
242 void getDiagram(QPainter &painter,
const QRectF &source,
const QRectF &target = QRectF());
282 virtual void saveToXMI(QXmlStreamWriter& writer);
379 qreal& px, qreal& py, qreal& qx, qreal& qy);
382 virtual void drawBackground(QPainter *painter,
const QRectF &rect);
383 virtual void drawForeground(QPainter *painter,
const QRectF &rect);
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();
Manages alignment guides and snapping for widget movement.
Definition: alignmentguide.h:27
A dialog page to display the class related options.
Definition: classoptionspage.h:35
Displays a line of text or an operation.
Definition: floatingtextwidget.h:32
Definition: idchangelog.h:22
Definition: layoutgrid.h:23
Definition: optionstate.h:311
Sets up attribute information.
Definition: umlattribute.h:23
Non-graphical information for a UMLCanvasObject.
Definition: umlcanvasobject.h:32
Information for a non-graphical Concept/Class.
Definition: umlclassifier.h:35
Non-graphical Information for an Entity.
Definition: umlentity.h:30
Non-graphical management of objects and diagrams of a Folder.
Definition: umlfolder.h:30
Sets up Foreign Key entity constraint information.
Definition: umlforeignkeyconstraint.h:28
The base class for UML objects.
Definition: umlobject.h:70
Definition: umlscene.h:66
void removeWidget(UMLWidget *o)
Definition: umlscene.cpp:1318
bool isComponentDiagram() const
Definition: umlscene.h:319
void alignHorizontalMiddle()
Definition: umlscene.cpp:4537
void createAutoAttributeAssociations(UMLWidget *widget)
Definition: umlscene.cpp:2650
virtual bool loadFromXMI(QDomElement &qElement)
Definition: umlscene.cpp:3925
ObjectWidget * onWidgetDestructionBox(const QPointF &point) const
Definition: umlscene.cpp:1068
void setIsOpen(bool isOpen)
Definition: umlscene.cpp:687
void toggleSnapComponentSizeToGrid()
Definition: umlscene.cpp:3567
void endPartialWidgetPaste()
Definition: umlscene.cpp:2265
bool snapComponentSizeToGrid() const
Definition: umlscene.cpp:3601
void setPos(const QPointF &pos)
Definition: umlscene.cpp:487
void setSnapGridVisible(bool bShow)
Definition: umlscene.cpp:3695
void setupNewWidget(UMLWidget *w, bool setPosition=true)
Definition: umlscene.cpp:741
static const qreal s_defaultCanvasWidth
The default width of a diagram in pixels.
Definition: umlscene.h:401
qreal m_maxY
Gather data for estimating required canvas size (used during loadFromXMI)
Definition: umlscene.h:420
static bool s_showDocumentationIndicator
Status of documentation indicator.
Definition: umlscene.h:405
bool isClassDiagram() const
Definition: umlscene.h:313
QFont font() const
Definition: umlscene.cpp:3468
void setOptionState(const Settings::OptionState &options)
Definition: umlscene.cpp:600
static const qreal s_sceneBorder
A border around the bounding rectangle of the elements in the scene.
Definition: umlscene.h:404
void alignRight()
Definition: umlscene.cpp:4457
UMLScenePrivate * m_d
Definition: umlscene.h:400
void setMenu(const QPoint &pos)
bool loadUISDiagram(QDomElement &qElement)
Definition: umlscene.cpp:4400
int snapY() const
Definition: umlscene.cpp:3627
void triggerToolbarButton(WorkToolBar::ToolBar_Buttons button)
Definition: umlscene.cpp:2994
bool snapToGrid() const
Definition: umlscene.cpp:3584
bool isObjectDiagram() const
Definition: umlscene.h:322
void checkMessages(ObjectWidget *w)
Definition: umlscene.cpp:1148
void copyAsImage(QPixmap *&pix)
Definition: umlscene.cpp:2915
void selectWidgets(qreal px, qreal py, qreal qx, qreal qy)
Definition: umlscene.cpp:1811
void mouseReleaseEvent(QGraphicsSceneMouseEvent *mouseEvent)
Definition: umlscene.cpp:1031
void setShowDocumentationIndicator(bool bShow)
Definition: umlscene.cpp:3712
MessageWidget * messageAt(const QPointF &p)
Definition: umlscene.cpp:1134
Uml::ID::Type m_nID
The ID of the view. Allocated by UMLDoc.
Definition: umlscene.h:349
qreal snappedX(qreal x)
Definition: umlscene.cpp:3651
void selectWidget(UMLWidget *widget, QRectF *rect=nullptr)
Definition: umlscene.cpp:1862
void setFolder(UMLFolder *folder)
Definition: umlscene.cpp:361
UMLViewImageExporter * getImageExporter()
Definition: umlscene.cpp:1979
virtual void drawForeground(QPainter *painter, const QRectF &rect)
Definition: umlscene.cpp:3815
UMLWidget * widgetOnDiagram(Uml::ID::Type id)
Definition: umlscene.cpp:1168
virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
Definition: umlscene.cpp:3002
bool m_bDrawSelectedOnly
Definition: umlscene.h:395
void createAutoConstraintAssociations(UMLWidget *widget)
Definition: umlscene.cpp:2780
UMLFolder * m_pFolder
The folder in which this UMLView is contained.
Definition: umlscene.h:408
AssociationWidgetList selectedAssociationWidgets() const
Definition: umlscene.cpp:1452
void setLineColor(const QColor &color)
Definition: umlscene.cpp:524
void setStartedCut()
Definition: umlscene.cpp:3460
bool autoIncrementSequence() const
Definition: umlscene.cpp:393
void sigTextColorChanged(Uml::ID::Type)
void dragMoveEvent(QGraphicsSceneDragDropEvent *moveEvent)
Definition: umlscene.cpp:924
void hideEvent(QHideEvent *he)
Definition: umlscene.cpp:799
static qreal maxCanvasSize()
Definition: umlscene.cpp:346
void sigLineWidthChanged(Uml::ID::Type)
void removeAllAssociations()
Definition: umlscene.cpp:2377
bool getPaste() const
Definition: umlscene.cpp:3019
void sigSnapComponentSizeToGridToggled(bool)
qreal snappedY(qreal y)
Definition: umlscene.cpp:3669
UMLFolder * folder() const
Definition: umlscene.cpp:353
void forceUpdateWidgetFontMetrics(QPainter *painter)
Definition: umlscene.cpp:3763
void selectionSetLineWidth(uint width)
Definition: umlscene.cpp:1573
void updateSceneRect()
Definition: umlscene.cpp:4675
void getWidgetAssocs(UMLObject *Obj, AssociationWidgetList &Associations)
Definition: umlscene.cpp:2361
void selectWidgetsOfAssoc(AssociationWidget *a)
Definition: umlscene.cpp:1791
UMLView * m_view
The view to which this scene is related.
Definition: umlscene.h:407
void dropEvent(QGraphicsSceneDragDropEvent *dropEvent)
Definition: umlscene.cpp:932
const QColor & fillColor() const
Definition: umlscene.cpp:495
bool loadUisDiagramPresentation(QDomElement &qElement)
Definition: umlscene.cpp:4299
void removeAllWidgets()
Definition: umlscene.cpp:2388
void selectAssociations(bool bSelect)
Definition: umlscene.cpp:2343
void selectionSetFillColor(const QColor &color)
Definition: umlscene.cpp:1593
void toggleSnapToGrid()
Definition: umlscene.cpp:3558
UMLWidget * findWidget(Uml::ID::Type id)
Definition: umlscene.cpp:1213
bool isEntityRelationshipDiagram() const
Definition: umlscene.h:321
void setTextColor(const QColor &color)
Definition: umlscene.cpp:562
Uml::DiagramType::Enum type() const
Definition: umlscene.cpp:447
void setShowOpSig(bool bShowOpSig)
Definition: umlscene.cpp:3728
void resetToolbar()
Definition: umlscene.cpp:2989
bool isShowDocumentationIndicator() const
Definition: umlscene.cpp:3704
static const qreal s_maxCanvasSize
The maximum supported canvas size.
Definition: umlscene.h:403
UMLWidgetList selectedWidgets() const
Definition: umlscene.cpp:1435
void createAutoAssociations(UMLWidget *widget)
Definition: umlscene.cpp:2462
Uml::DiagramType::Enum m_Type
The type of diagram to represent.
Definition: umlscene.h:350
void slotCutSuccessful()
Definition: umlscene.cpp:3418
static const qreal s_defaultCanvasHeight
The default height of a diagram in pixels.
Definition: umlscene.h:402
void activateAfterLoad(bool bUseLog=false)
Definition: umlscene.cpp:2237
AssociationWidget * findAssocWidget(Uml::ID::Type id)
Definition: umlscene.cpp:1242
bool m_bPaste
Definition: umlscene.h:396
void setFont(QFont font, bool changeAllWidgets=false)
Definition: umlscene.cpp:3476
void activate()
Definition: umlscene.cpp:1995
void addWidgetCmd(UMLWidget *widget)
Definition: umlscene.cpp:638
qreal fixY() const
Definition: umlscene.cpp:4692
void unselectChildrenOfSelectedWidgets()
Definition: umlscene.cpp:1623
void getDiagram(QPixmap &diagram, const QRectF &rect)
Definition: umlscene.cpp:1917
void beginPartialWidgetPaste()
Definition: umlscene.cpp:2256
IDChangeLog * m_pIDChangesLog
LocalID Changes Log for paste actions.
Definition: umlscene.h:410
void alignLeft()
Definition: umlscene.cpp:4439
void setAutoIncrementSequence(bool state)
Definition: umlscene.cpp:398
void setType(Uml::DiagramType::Enum type)
Definition: umlscene.cpp:455
void removeAssocInViewAndDoc(AssociationWidget *assoc)
Definition: umlscene.cpp:2296
bool m_isOpen
Flag is set to true when diagram is open, i.e. shown to the user.
Definition: umlscene.h:357
void alignBottom()
Definition: umlscene.cpp:4492
void sigAssociationRemoved(AssociationWidget *)
void createAutoConstraintAssociation(UMLEntity *refEntity, UMLForeignKeyConstraint *fkConstraint, UMLWidget *widget)
Definition: umlscene.cpp:2829
void sigSnapToGridToggled(bool)
void setWidgetLink(WidgetBase *w)
Definition: umlscene.cpp:4636
UMLWidgetList widgetList() const
Definition: umlscene.cpp:627
virtual void drawBackground(QPainter *painter, const QRectF &rect)
Definition: umlscene.cpp:3774
qreal m_minY
Gather data for estimating required canvas size (used during loadFromXMI)
Definition: umlscene.h:419
QRectF diagramRect()
Definition: umlscene.cpp:1425
bool addAssociation(AssociationWidget *pAssoc, bool isPasteOperation=false)
Definition: umlscene.cpp:2146
bool isSequenceDiagram() const
Definition: umlscene.h:315
void resizeSelection()
Definition: umlscene.cpp:1702
void selectAll()
Definition: umlscene.cpp:1725
qreal m_fixY
Compensate for QGraphicsScene offsets, https://bugs.kde.org/show_bug.cgi?id=449622.
Definition: umlscene.h:422
void setDocumentation(const QString &doc)
Definition: umlscene.cpp:385
const QColor & textColor() const
Definition: umlscene.cpp:552
const QColor & backgroundColor() const
Definition: umlscene.cpp:1399
int snapX() const
Definition: umlscene.cpp:3619
void updateContainment(UMLCanvasObject *self)
Definition: umlscene.cpp:2410
void findMaxBoundingRectangle(const FloatingTextWidget *ft, qreal &px, qreal &py, qreal &qx, qreal &qy)
Definition: umlscene.cpp:2892
void sigLineColorChanged(Uml::ID::Type)
void sigShowGridToggled(bool)
void setFillColor(const QColor &color)
Definition: umlscene.cpp:505
UMLWidgetList selectedWidgetsExt(bool filterText=true)
Definition: umlscene.cpp:2073
bool loadMessagesFromXMI(QDomElement &qElement)
Definition: umlscene.cpp:4224
ObjectWidget * onWidgetLine(const QPointF &point) const
Definition: umlscene.cpp:1043
AssociationWidgetList selectedAssocs()
Definition: umlscene.cpp:2092
void clearDiagram()
Definition: umlscene.cpp:3535
void setSnapToGrid(bool bSnap)
Definition: umlscene.cpp:3592
void setGridDotColor(const QColor &color)
Definition: umlscene.cpp:583
UMLSceneItemList collisions(const QPointF &p, int delta=3)
Definition: umlscene.cpp:1768
QString name() const
Definition: umlscene.cpp:431
void moveSelectedBy(qreal dX, qreal dY)
Definition: umlscene.cpp:1510
const QColor & lineColor() const
Definition: umlscene.cpp:514
uint lineWidth() const
Definition: umlscene.cpp:533
AlignmentGuide * m_alignmentGuide
alignment guide for widget snapping
Definition: umlscene.h:417
qreal m_minX
Definition: umlscene.h:419
bool isSnapGridVisible() const
Definition: umlscene.cpp:3687
void slotShowView()
Definition: umlscene.cpp:3429
void resetPastePoint()
Definition: umlscene.cpp:3451
void mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent)
Definition: umlscene.cpp:982
void deleteSelection()
Definition: umlscene.cpp:1640
QGraphicsItem * itemAt(const QPointF &position) const
Definition: umlscene.h:386
qreal fixX() const
Definition: umlscene.cpp:4684
void setClassWidgetOptions(ClassOptionsPage *page)
Definition: umlscene.cpp:3490
bool m_bPopupShowing
Status of a popupmenu on view. True - a popup is on view.
Definition: umlscene.h:412
QString documentation() const
Definition: umlscene.cpp:377
void sigGridColorChanged(Uml::ID::Type)
void sigWidgetRemoved(UMLWidget *)
bool isDeploymentDiagram() const
Definition: umlscene.h:320
Settings::OptionState m_Options
Options used by view.
Definition: umlscene.h:353
void setLineWidth(uint width)
Definition: umlscene.cpp:543
Uml::ID::Type m_nLocalID
Definition: umlscene.h:347
qreal m_fixX
Compensate for QGraphicsScene offsets, https://bugs.kde.org/show_bug.cgi?id=449622.
Definition: umlscene.h:421
void slotObjectCreated(UMLObject *o)
Definition: umlscene.cpp:821
bool isStateDiagram() const
Definition: umlscene.h:317
void mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent)
Definition: umlscene.cpp:995
bool isOpen() const
Definition: umlscene.cpp:678
QPointF m_PastePoint
The offset at which to paste the clipboard.
Definition: umlscene.h:413
void setSnapSpacing(int x, int y)
Definition: umlscene.cpp:3643
void alignVerticalMiddle()
Definition: umlscene.cpp:4509
void dragEnterEvent(QGraphicsSceneDragDropEvent *enterEvent)
Definition: umlscene.cpp:878
void print(QPrinter *pPrinter, QPainter &pPainter)
Definition: umlscene.cpp:695
void showEvent(QShowEvent *se)
Definition: umlscene.cpp:786
bool loadWidgetsFromXMI(QDomElement &qElement)
Definition: umlscene.cpp:4177
bool m_bStartedCut
Flag if view/children started cut operation.
Definition: umlscene.h:397
QPointF pos() const
Definition: umlscene.cpp:479
QString autoIncrementSequenceValue()
Definition: umlscene.cpp:406
void setCreateObject(bool bCreate)
Definition: umlscene.cpp:778
void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *mouseEvent)
Definition: umlscene.cpp:1014
void slotToolBarChanged(int c)
Definition: umlscene.cpp:812
void alignTop()
Definition: umlscene.cpp:4474
bool isSavedInSeparateFile()
Definition: umlscene.cpp:1734
UMLDoc * m_doc
Pointer to the UMLDoc.
Definition: umlscene.h:414
UMLViewImageExporter * m_pImageExporter
Used to export the view.
Definition: umlscene.h:415
void applyLayout(const QString &actionText)
Definition: umlscene.cpp:3545
bool m_bUseSnapToGrid
Flag to use snap to grid. The default is off.
Definition: umlscene.h:355
void selectionSetFont(const QFont &font)
Definition: umlscene.cpp:1541
WidgetBase::WidgetType getUniqueSelectionType()
Definition: umlscene.cpp:3511
QString m_Documentation
The documentation of the diagram.
Definition: umlscene.h:352
QPointF m_pos
Definition: umlscene.h:393
WidgetBase * widgetLink()
Definition: umlscene.cpp:4641
void updateCanvasSizeEstimate(qreal x, qreal y, qreal w, qreal h)
Definition: umlscene.cpp:4660
void createAutoAttributeAssociation(UMLClassifier *type, UMLAttribute *attr, UMLWidget *widget)
Definition: umlscene.cpp:2718
AlignmentGuide * alignmentGuide() const
Definition: umlscene.cpp:3635
AssociationWidgetList associationList() const
Definition: umlscene.cpp:613
QString m_Name
The name of the diagram.
Definition: umlscene.h:351
UMLWidget * getFirstMultiSelectedWidget() const
Definition: umlscene.cpp:1089
void slotActivate()
Definition: umlscene.cpp:1987
void toggleShowGrid()
Definition: umlscene.cpp:3576
bool getCreateObject() const
Definition: umlscene.cpp:770
bool showOpSig() const
Definition: umlscene.cpp:3720
void slotObjectRemoved(UMLObject *o)
Definition: umlscene.cpp:862
bool m_autoIncrementSequence
state of auto increment sequence
Definition: umlscene.h:418
int generateCollaborationId()
Definition: umlscene.cpp:669
virtual ~UMLScene()
Definition: umlscene.cpp:314
void setPaste(bool paste)
Definition: umlscene.cpp:3027
MessageWidgetList messageList() const
Definition: umlscene.cpp:655
bool isUseCaseDiagram() const
Definition: umlscene.h:314
void createAutoAttributeAssociations2(UMLWidget *widget)
Definition: umlscene.cpp:2861
QPointF getPastePoint()
Definition: umlscene.cpp:3440
void sigFillColorChanged(Uml::ID::Type)
void fileLoaded()
Definition: umlscene.cpp:3737
void addObject(UMLObject *object)
Definition: umlscene.cpp:4290
bool useFillColor() const
Definition: umlscene.cpp:1407
void clearSelected()
Definition: umlscene.cpp:1490
bool m_bUseSnapComponentSizeToGrid
Flag to use snap to grid for component size. The default is off.
Definition: umlscene.h:356
void alignHorizontalDistribute()
Definition: umlscene.cpp:4596
bool isCollaborationDiagram() const
Definition: umlscene.h:316
void slotMenuSelection(QAction *action)
Definition: umlscene.cpp:3036
AssociationWidget * associationAt(const QPointF &p)
Definition: umlscene.cpp:1119
void makeSelected(UMLWidget *uw)
Definition: umlscene.cpp:1781
int selectedCount(bool filterText=false) const
Definition: umlscene.cpp:2048
void removeAssociations(UMLWidget *pWidget)
Definition: umlscene.cpp:2329
void selectionSetVisualProperty(ClassifierWidget::VisualProperty property, bool value)
Definition: umlscene.cpp:1608
int m_nCollaborationId
Used for creating unique name of collaboration messages.
Definition: umlscene.h:392
virtual void saveToXMI(QXmlStreamWriter &writer)
Definition: umlscene.cpp:3852
UMLWidgetList selectedMessageWidgets() const
Definition: umlscene.cpp:1469
void selectionUseFillColor(bool useFC)
Definition: umlscene.cpp:1523
void setUseFillColor(bool ufc)
Definition: umlscene.cpp:1415
Settings::OptionState & optionState()
Definition: umlscene.cpp:592
bool m_isActivated
True if the view was activated after the deserialization(load).
Definition: umlscene.h:411
UMLView * activeView() const
Definition: umlscene.cpp:369
bool loadAssociationsFromXMI(QDomElement &qElement)
Definition: umlscene.cpp:4252
void addFloatingTextWidget(FloatingTextWidget *pWidget)
Definition: umlscene.cpp:2106
void setName(const QString &name)
Definition: umlscene.cpp:439
UMLWidget * widgetAt(const QPointF &p)
Definition: umlscene.cpp:1103
void removeWidgetCmd(UMLWidget *o)
Definition: umlscene.cpp:1338
bool m_bCreateObject
Definition: umlscene.h:394
bool isActivityDiagram() const
Definition: umlscene.h:318
LayoutGrid * m_layoutGrid
layout grid in the background
Definition: umlscene.h:416
void alignVerticalDistribute()
Definition: umlscene.cpp:4565
void removeOwnedWidgets(UMLWidget *o)
Definition: umlscene.cpp:1384
void setID(Uml::ID::Type id)
Definition: umlscene.cpp:471
const QColor & gridDotColor() const
Definition: umlscene.cpp:573
void selectionSetLineColor(const QColor &color)
Definition: umlscene.cpp:1555
void updateComponentSizes()
Definition: umlscene.cpp:3745
qreal m_maxX
Definition: umlscene.h:420
void setSnapComponentSizeToGrid(bool bSnap)
Definition: umlscene.cpp:3609
Uml::ID::Type ID() const
Definition: umlscene.cpp:463
UMLWidget * loadWidgetFromXMI(QDomElement &widgetElement)
Definition: umlscene.cpp:4203
Definition: umlscene.cpp:113
Definition: umlviewimageexporter.h:23
Definition: umlviewimageexportermodel.h:29
int x
Definition: cxx11-lambda-functions-and-expressions.h:4
Enum
Definition: basictypes.h:92
Enum
Definition: basictypes.h:63
@ Component
Definition: basictypes.h:73
@ Collaboration
Definition: basictypes.h:70
@ Activity
Definition: basictypes.h:72
@ State
Definition: basictypes.h:71
@ Object
Definition: basictypes.h:76
@ UseCase
Definition: basictypes.h:68
@ Sequence
Definition: basictypes.h:69
@ Class
Definition: basictypes.h:67
@ EntityRelationship
Definition: basictypes.h:75
@ Deployment
Definition: basictypes.h:74
std::string Type
Definition: basictypes.h:371
QString a
Definition: petalnode.cpp:13
QList< QGraphicsItem * > UMLSceneItemList
Definition: umlscene.h:58
QDebug operator<<(QDebug dbg, UMLScene *item)
Definition: umlscene.cpp:4627