umbrello 2.31.70-88582909d
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
diagramproxywidget.h
Go to the documentation of this file.
1/*
2 SPDX-License-Identifier: GPL-2.0-or-later
3 SPDX-FileCopyrightText: 2019-2020 Umbrello UML Modeller Authors <umbrello-devel@kde.org>
4*/
5
6#ifndef DIAGRAMPROXYWIDGET_H
7#define DIAGRAMPROXYWIDGET_H
8
9#include <basictypes.h>
10
11#include <QPointer>
12#include <QPointF>
13#include <QRectF>
14#include <QGraphicsSceneEvent>
15
16class UMLWidget;
17class UMLScene;
18class IDChangeLog;
19class QAction;
20class QDomDocument;
21class QDomElement;
22class QStyleOptionGraphicsItem;
23class QXmlStreamWriter;
24
26public:
27 DiagramProxyWidget(UMLWidget *widget, qreal borderWidth = 5);
30 UMLScene *linkedDiagram() const;
31 bool setDiagramLink(const Uml::ID::Type &id);
32 const QRectF &clientRect();
33 const QRectF &sceneRect();
34 void setClientRect(const QRectF &rect);
35
36 bool isProxyWidget();
37 UMLWidget *getProxiedWidget(const QPointF &p);
38 QPointF mapFromClient(const QPointF &p);
39 QRectF mapFromClient(const QRectF &r);
40 QPointF mapToClient(const QPointF &pos);
41
42 void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
43
44 bool showLinkedDiagram() const;
46
47 QRectF iconRect() const;
48 void setIconRect(const QRectF &iconRect);
49
50protected:
52 bool activate(IDChangeLog* changeLog = 0);
53 bool loadFromXMI1(QDomElement &qElement);
54 void saveToXMI1(QXmlStreamWriter& writer);
55 void setupEvent(QGraphicsSceneMouseEvent &e, QGraphicsSceneMouseEvent *event, const QPointF &pos);
56 void setupEvent(QGraphicsSceneContextMenuEvent &e, QGraphicsSceneContextMenuEvent *event, const QPointF &pos);
57 virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event);
58 virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event);
59 virtual void mousePressEvent(QGraphicsSceneMouseEvent *event);
60 virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
61 virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
62 void slotMenuSelection(QAction *action);
63
64private:
66 QPointer<UMLScene> m_linkedDiagram;
67 QRectF m_clientRect;
68 QRectF m_sceneRect;
69 QRectF m_iconRect;
73};
74
75#endif // DIAGRAMPROXYWIDGET_H
Definition: diagramproxywidget.h:25
Uml::ID::Type diagramLink() const
Definition: diagramproxywidget.cpp:36
const QRectF & clientRect()
Definition: diagramproxywidget.cpp:68
const QRectF & sceneRect()
Definition: diagramproxywidget.cpp:78
bool showLinkedDiagram() const
Definition: diagramproxywidget.cpp:302
bool activate(IDChangeLog *changeLog=0)
Definition: diagramproxywidget.cpp:93
QPointF mapFromClient(const QPointF &p)
Definition: diagramproxywidget.cpp:132
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
Definition: diagramproxywidget.cpp:268
virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
Definition: diagramproxywidget.cpp:211
bool m_showLinkedDiagram
Definition: diagramproxywidget.h:72
UMLWidget * getProxiedWidget(const QPointF &p)
Definition: diagramproxywidget.cpp:120
void setIconRect(const QRectF &iconRect)
Definition: diagramproxywidget.cpp:293
qreal m_borderWidth
Definition: diagramproxywidget.h:71
QRectF iconRect() const
Definition: diagramproxywidget.cpp:284
void setClientRect(const QRectF &rect)
Definition: diagramproxywidget.cpp:88
bool isProxyWidget()
Definition: diagramproxywidget.cpp:115
QRectF m_iconRect
widget area for diagram icon
Definition: diagramproxywidget.h:69
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=0)
Definition: diagramproxywidget.cpp:323
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event)
Definition: diagramproxywidget.cpp:256
UMLWidget * m_widget
Definition: diagramproxywidget.h:70
void slotMenuSelection(QAction *action)
Definition: diagramproxywidget.cpp:350
bool loadFromXMI1(QDomElement &qElement)
Definition: diagramproxywidget.cpp:102
DiagramProxyWidget & operator=(const DiagramProxyWidget &other)
Definition: diagramproxywidget.cpp:163
virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
Definition: diagramproxywidget.cpp:223
void saveToXMI1(QXmlStreamWriter &writer)
Definition: diagramproxywidget.cpp:109
void setupEvent(QGraphicsSceneMouseEvent &e, QGraphicsSceneMouseEvent *event, const QPointF &pos)
Definition: diagramproxywidget.cpp:180
QPointF mapToClient(const QPointF &pos)
Definition: diagramproxywidget.cpp:153
Uml::ID::Type m_diagramLinkId
id of linked diagram
Definition: diagramproxywidget.h:65
UMLScene * linkedDiagram() const
Definition: diagramproxywidget.cpp:41
QPointer< UMLScene > m_linkedDiagram
pointer to linked diagram
Definition: diagramproxywidget.h:66
void setShowLinkedDiagram(bool showLinkedDiagram)
Definition: diagramproxywidget.cpp:311
DiagramProxyWidget(UMLWidget *widget, qreal borderWidth=5)
Definition: diagramproxywidget.cpp:27
bool setDiagramLink(const Uml::ID::Type &id)
Definition: diagramproxywidget.cpp:46
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event)
Definition: diagramproxywidget.cpp:244
QRectF m_clientRect
widget area for embedded diagram
Definition: diagramproxywidget.h:67
virtual ~DiagramProxyWidget()
Definition: diagramproxywidget.h:28
QRectF m_sceneRect
scene rectangle used for internal calculations
Definition: diagramproxywidget.h:68
Definition: idchangelog.h:22
Definition: umlscene.h:65
The base class for graphical UML objects.
Definition: umlwidget.h:36
std::string Type
Definition: basictypes.h:371