umbrello  2.39.2
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
statewidget.h
Go to the documentation of this file.
1 /*
2  SPDX-License-Identifier: GPL-2.0-or-later
3  SPDX-FileCopyrightText: 2002-2021 Umbrello UML Modeller Authors <umbrello-devel@kde.org>
4 */
5 
6 #ifndef STATEWIDGET_H
7 #define STATEWIDGET_H
8 
9 #include "umlwidget.h"
10 
11 #include <QPainter>
12 #include <QStringList>
13 
14 #define STATE_MARGIN 5
15 #define STATE_WIDTH 30
16 #define STATE_HEIGHT 10
17 
33 class StateWidget : public UMLWidget
34 {
35  Q_OBJECT
36  Q_ENUMS(StateType)
37 public:
39  enum StateType
40  {
41  Initial = 0, // Pseudostate
43  End,
44  Fork, // Pseudostate
45  Join, // Pseudostate
46  Junction, // Pseudostate
47  DeepHistory, // Pseudostate
48  ShallowHistory, // Pseudostate
49  Choice, // Pseudostate
50  //Terminate // Pseudostate
51  //EntryPoint // Pseudostate
52  //ExitPoint // Pseudostate
53  Combined // Pseudostate
54  };
55 
57  virtual ~StateWidget();
58 
59  virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
60 
61  StateType stateType() const;
62  QString stateTypeStr() const;
64 
65  bool addActivity(const QString &activity);
66  bool removeActivity(const QString &activity);
67  bool renameActivity(const QString &activity, const QString &newName);
68 
69  QStringList activities() const;
70  void setActivities(const QStringList &list);
71 
72  bool drawVertical() const;
73  void setDrawVertical(bool to = true);
74 
75  virtual bool showPropertiesDialog();
76 
77  virtual bool loadFromXMI(QDomElement & qElement);
78  virtual void saveToXMI(QXmlStreamWriter& writer);
79 
80 protected:
81  QSizeF minimumSize() const;
82  QSizeF maximumSize();
83  void setAspectRatioMode();
84  virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event);
85  virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event);
86  virtual void mousePressEvent(QGraphicsSceneMouseEvent *event);
87  virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
88  virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
89 
90 public Q_SLOTS:
91  virtual void slotMenuSelection(QAction* action);
92 
93 private:
96  QStringList m_Activities;
97  QSizeF m_size;
98 };
99 
100 #endif
A graphical version of a UML State.
Definition: statewidget.h:34
QSizeF minimumSize() const
Definition: statewidget.cpp:224
bool renameActivity(const QString &activity, const QString &newName)
Definition: statewidget.cpp:441
virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
Definition: statewidget.cpp:346
virtual void saveToXMI(QXmlStreamWriter &writer)
Definition: statewidget.cpp:507
virtual ~StateWidget()
Definition: statewidget.cpp:53
StateType stateType() const
Definition: statewidget.cpp:390
bool removeActivity(const QString &activity)
Definition: statewidget.cpp:430
QString stateTypeStr() const
Definition: statewidget.cpp:398
QStringList activities() const
Definition: statewidget.cpp:462
virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
Definition: statewidget.cpp:336
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event)
Definition: statewidget.cpp:356
void setActivities(const QStringList &list)
Definition: statewidget.cpp:453
QSizeF maximumSize()
Definition: statewidget.cpp:288
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
Definition: statewidget.cpp:376
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event)
Definition: statewidget.cpp:366
virtual bool loadFromXMI(QDomElement &qElement)
Definition: statewidget.cpp:532
bool drawVertical() const
Definition: statewidget.cpp:470
QSizeF m_size
widget size used by combined state
Definition: statewidget.h:97
StateType
Enumeration that codes the different types of state.
Definition: statewidget.h:40
@ Junction
Definition: statewidget.h:46
@ Fork
Definition: statewidget.h:44
@ ShallowHistory
Definition: statewidget.h:48
@ Join
Definition: statewidget.h:45
@ DeepHistory
Definition: statewidget.h:47
@ Combined
Definition: statewidget.h:53
@ Choice
Definition: statewidget.h:49
@ Initial
Definition: statewidget.h:41
@ End
Definition: statewidget.h:43
@ Normal
Definition: statewidget.h:42
virtual void slotMenuSelection(QAction *action)
Definition: statewidget.cpp:565
void setStateType(StateType stateType)
Definition: statewidget.cpp:406
bool m_drawVertical
whether to draw the fork/join horizontally or vertically
Definition: statewidget.h:95
virtual bool showPropertiesDialog()
Definition: statewidget.cpp:489
bool addActivity(const QString &activity)
Definition: statewidget.cpp:420
void setAspectRatioMode()
Definition: statewidget.cpp:317
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=0)
Definition: statewidget.cpp:60
StateType m_stateType
Type of state.
Definition: statewidget.h:94
StateWidget(UMLScene *scene, StateType stateType=Normal, Uml::ID::Type id=Uml::ID::None)
Definition: statewidget.cpp:39
void setDrawVertical(bool to=true)
Definition: statewidget.cpp:478
QStringList m_Activities
List of activities for the state.
Definition: statewidget.h:96
Definition: umlscene.h:65
The base class for graphical UML objects.
Definition: umlwidget.h:36
const Type None
special value for uninitialized ID
Definition: basictypes.h:373
std::string Type
Definition: basictypes.h:371