umbrello  2.35.1
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-2021 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 
16 class UMLWidget;
17 class UMLScene;
18 class IDChangeLog;
19 class QAction;
20 class QDomDocument;
21 class QDomElement;
22 class QStyleOptionGraphicsItem;
23 class QXmlStreamWriter;
24 
26 public:
27  DiagramProxyWidget(UMLWidget *widget, qreal borderWidth = 5);
28  virtual ~DiagramProxyWidget() {}
29  Uml::ID::Type diagramLink() const;
30  UMLScene *linkedDiagram() const;
31  bool setDiagramLink(const Uml::ID::Type &id);
32  const QRectF &clientRect() const;
33  const QRectF &sceneRect() const;
34  void setClientRect(const QRectF &rect);
35 
36  bool isProxyWidget() const;
37  UMLWidget *getProxiedWidget(const QPointF &p) const;
38  QPointF mapFromClient(const QPointF &p) const;
39  QRectF mapFromClient(const QRectF &r) const;
40  QPointF mapToClient(const QPointF &pos) const;
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 
50 protected:
52  bool activate(IDChangeLog* changeLog = 0);
53  bool loadFromXMI(QDomElement &qElement);
54  void saveToXMI(QXmlStreamWriter& writer);
55  void setupEvent(QGraphicsSceneMouseEvent &e,
56  const QGraphicsSceneMouseEvent *event, const QPointF &pos) const;
57  void setupEvent(QGraphicsSceneContextMenuEvent &e,
58  const QGraphicsSceneContextMenuEvent *event, const QPointF &pos) const;
59  virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event);
60  virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event);
61  virtual void mousePressEvent(QGraphicsSceneMouseEvent *event);
62  virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
63  virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
64  void slotMenuSelection(QAction *action);
65 
66 private:
68  QPointer<UMLScene> m_linkedDiagram;
69  QRectF m_clientRect;
70  QRectF m_sceneRect;
71  QRectF m_iconRect;
75 };
76 
77 #endif // DIAGRAMPROXYWIDGET_H
DiagramProxyWidget::setClientRect
void setClientRect(const QRectF &rect)
Definition: diagramproxywidget.cpp:88
document
GNU GENERAL PUBLIC LICENSE June Free Software Inc Franklin Fifth USA Everyone is permitted to copy and distribute verbatim copies of this license document
Definition: GPL-2.0-only.txt:8
cmdcreatediagram.h
DiagramProxyWidget::sceneRect
const QRectF & sceneRect() const
Definition: diagramproxywidget.cpp:78
SelectDiagramDialog::currentID
Uml::ID::Type currentID()
Definition: selectdiagramdialog.cpp:28
DiagramProxyWidget::mouseMoveEvent
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event)
Definition: diagramproxywidget.cpp:258
DiagramProxyWidget::m_diagramLinkId
Uml::ID::Type m_diagramLinkId
id of linked diagram
Definition: diagramproxywidget.h:67
statewidget.h
umlview.h
Uml::CmdCreateDiagram
Definition: cmdcreatediagram.h:19
UMLWidget
The base class for graphical UML objects.
Definition: umlwidget.h:35
DiagramProxyWidget::~DiagramProxyWidget
virtual ~DiagramProxyWidget()
Definition: diagramproxywidget.h:28
Tracer::instance
static Tracer * instance()
Definition: debug_utils.cpp:110
ListPopupMenu::mt_EditCombinedState
@ mt_EditCombinedState
Definition: listpopupmenu.h:74
DiagramProxyWidget::contextMenuEvent
virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
Definition: diagramproxywidget.cpp:213
diagramproxywidget.h
DEBUG_REGISTER_DISABLED
#define DEBUG_REGISTER_DISABLED(src)
Definition: debug_utils.h:135
selectdiagramdialog.h
Uml::DiagramType::State
@ State
Definition: basictypes.h:71
Uml::ID::None
const Type None
special value for uninitialized ID
Definition: basictypes.h:373
DiagramProxyWidget::setShowLinkedDiagram
void setShowLinkedDiagram(bool showLinkedDiagram)
Definition: diagramproxywidget.cpp:313
Uml::ID::toString
QString toString(const ID::Type &id)
Definition: basictypes.cpp:1306
DiagramProxyWidget::isProxyWidget
bool isProxyWidget() const
Definition: diagramproxywidget.cpp:115
logError1
#define logError1(s, a)
Definition: uml.h:545
Dialog_Utils::askNewName
bool askNewName(WidgetBase::WidgetType type, QString &name)
Definition: dialog_utils.cpp:246
DiagramProxyWidget::clientRect
const QRectF & clientRect() const
Definition: diagramproxywidget.cpp:68
WidgetBase::asStateWidget
StateWidget * asStateWidget()
Definition: widgetbase.cpp:1512
Uml::ID::Type
std::string Type
Definition: basictypes.h:371
DiagramProxyWidget::showLinkedDiagram
bool showLinkedDiagram() const
Definition: diagramproxywidget.cpp:304
DiagramProxyWidget::m_clientRect
QRectF m_clientRect
widget area for embedded diagram
Definition: diagramproxywidget.h:69
ListPopupMenu::mt_RemoveStateDiagram
@ mt_RemoveStateDiagram
Definition: listpopupmenu.h:137
DiagramProxyWidget::mousePressEvent
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event)
Definition: diagramproxywidget.cpp:246
Widget_Utils::defaultWidgetName
QString defaultWidgetName(WidgetBase::WidgetType type)
Definition: widget_utils.cpp:821
DiagramProxyWidget::getProxiedWidget
UMLWidget * getProxiedWidget(const QPointF &p) const
Definition: diagramproxywidget.cpp:120
diagram_utils.h
StateWidget::setStateType
void setStateType(StateType stateType)
Definition: statewidget.cpp:406
UMLDoc::createDiagramName
QString createDiagramName(Uml::DiagramType::Enum type, bool askForName=true)
Definition: umldoc.cpp:1675
DiagramProxyWidget
Definition: diagramproxywidget.h:25
DiagramProxyWidget::setDiagramLink
bool setDiagramLink(const Uml::ID::Type &id)
Definition: diagramproxywidget.cpp:46
DiagramProxyWidget::activate
bool activate(IDChangeLog *changeLog=0)
Definition: diagramproxywidget.cpp:93
Uml::ID::fromString
ID::Type fromString(const QString &id)
Definition: basictypes.cpp:1311
IDChangeLog
Definition: idchangelog.h:21
UMLDoc::changeCurrentView
void changeCurrentView(Uml::ID::Type id)
Definition: umldoc.cpp:1832
Uml::CmdCreateDiagram::view
UMLView * view()
Definition: cmdcreatediagram.h:27
DiagramProxyWidget::setIconRect
void setIconRect(const QRectF &iconRect)
Definition: diagramproxywidget.cpp:295
UMLView
Definition: umlview.h:29
ListPopupMenu::mt_CombinedState
@ mt_CombinedState
Definition: listpopupmenu.h:69
umlwidget.h
DiagramProxyWidget::DiagramProxyWidget
DiagramProxyWidget(UMLWidget *widget, qreal borderWidth=5)
Definition: diagramproxywidget.cpp:27
UMLScene::setWidgetLink
void setWidgetLink(WidgetBase *w)
Definition: umlscene.cpp:4574
ListPopupMenu::mt_SelectStateDiagram
@ mt_SelectStateDiagram
Definition: listpopupmenu.h:116
DiagramProxyWidget::mapToClient
QPointF mapToClient(const QPointF &pos) const
Definition: diagramproxywidget.cpp:153
DiagramProxyWidget::diagramLink
Uml::ID::Type diagramLink() const
Definition: diagramproxywidget.cpp:36
ListPopupMenu::mt_State_Diagram
@ mt_State_Diagram
Definition: listpopupmenu.h:49
basictypes.h
StateWidget::Combined
@ Combined
Definition: statewidget.h:53
DiagramProxyWidget::mouseDoubleClickEvent
virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
Definition: diagramproxywidget.cpp:225
DiagramProxyWidget::m_borderWidth
qreal m_borderWidth
Definition: diagramproxywidget.h:73
DiagramProxyWidget::mapFromClient
QPointF mapFromClient(const QPointF &p) const
Definition: diagramproxywidget.cpp:132
UMLApp::app
static UMLApp * app()
Definition: uml.cpp:349
widget_utils.h
DiagramProxyWidget::m_showLinkedDiagram
bool m_showLinkedDiagram
Definition: diagramproxywidget.h:74
WidgetBase
Common base class for UMLWidget and AssociationWidget.
Definition: widgetbase.h:100
DiagramProxyWidget::mouseReleaseEvent
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
Definition: diagramproxywidget.cpp:270
Uml
Definition: basictypes.cpp:22
SelectDiagramDialog
Definition: selectdiagramdialog.h:20
DiagramProxyWidget::m_iconRect
QRectF m_iconRect
widget area for diagram icon
Definition: diagramproxywidget.h:71
DiagramProxyWidget::m_widget
UMLWidget * m_widget
Definition: diagramproxywidget.h:72
DiagramProxyWidget::paint
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=0)
Definition: diagramproxywidget.cpp:325
Diagram_Utils::isUniqueDiagramName
bool isUniqueDiagramName(Uml::DiagramType::Enum type, QString &name)
Definition: diagram_utils.cpp:518
umlscene.h
uml.h
DiagramProxyWidget::m_linkedDiagram
QPointer< UMLScene > m_linkedDiagram
pointer to linked diagram
Definition: diagramproxywidget.h:68
DiagramProxyWidget::setupEvent
void setupEvent(QGraphicsSceneMouseEvent &e, const QGraphicsSceneMouseEvent *event, const QPointF &pos) const
Definition: diagramproxywidget.cpp:180
debug_utils.h
UMLScene
Definition: umlscene.h:64
ListPopupMenu::typeFromAction
static MenuType typeFromAction(QAction *action)
Definition: listpopupmenu.cpp:406
Icon_Utils::smallIcon
QPixmap smallIcon(Uml::DiagramType::Enum dt)
Definition: icon_utils.cpp:155
UMLWidget::updateGeometry
void updateGeometry(bool withAssocs=true)
Definition: umlwidget.cpp:1868
UMLView::umlScene
UMLScene * umlScene() const
Definition: umlview.cpp:51
listpopupmenu.h
Uml::ShowStereoType::None
@ None
no display of stereotype
Definition: basictypes.h:149
DiagramProxyWidget::linkedDiagram
UMLScene * linkedDiagram() const
Definition: diagramproxywidget.cpp:41
dialog_utils.h
UMLScene::ID
Uml::ID::Type ID() const
Definition: umlscene.cpp:448
UMLDoc::findView
UMLView * findView(Uml::ID::Type id) const
Definition: umldoc.cpp:1055
UMLApp::executeCommand
void executeCommand(QUndoCommand *cmd)
Definition: uml.cpp:3623
DiagramProxyWidget::m_sceneRect
QRectF m_sceneRect
scene rectangle used for internal calculations
Definition: diagramproxywidget.h:70
DiagramProxyWidget::saveToXMI
void saveToXMI(QXmlStreamWriter &writer)
Definition: diagramproxywidget.cpp:109
DiagramProxyWidget::iconRect
QRectF iconRect() const
Definition: diagramproxywidget.cpp:286
UMLApp::document
UMLDoc * document() const
Definition: uml.cpp:1139
umldoc.h
DiagramProxyWidget::operator=
DiagramProxyWidget & operator=(const DiagramProxyWidget &other)
Definition: diagramproxywidget.cpp:163
WidgetBase::id
Uml::ID::Type id() const
Definition: widgetbase.cpp:226
DiagramProxyWidget::slotMenuSelection
void slotMenuSelection(QAction *action)
Definition: diagramproxywidget.cpp:352
DiagramProxyWidget::loadFromXMI
bool loadFromXMI(QDomElement &qElement)
Definition: diagramproxywidget.cpp:102
ListPopupMenu::mt_GoToStateDiagram
@ mt_GoToStateDiagram
Definition: listpopupmenu.h:86