umbrello  2.38.5
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
Definition: statewidget.h:47
virtual bool showPropertiesDialog()
Definition: statewidget.cpp:489
virtual bool loadFromXMI(QDomElement &qElement)
Definition: statewidget.cpp:532
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=0)
Definition: statewidget.cpp:60
QStringList m_Activities
List of activities for the state.
Definition: statewidget.h:96
virtual ~StateWidget()
Definition: statewidget.cpp:53
bool renameActivity(const QString &activity, const QString &newName)
Definition: statewidget.cpp:441
virtual void saveToXMI(QXmlStreamWriter &writer)
Definition: statewidget.cpp:507
QSizeF maximumSize()
Definition: statewidget.cpp:288
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event)
Definition: statewidget.cpp:356
Definition: statewidget.h:43
void setActivities(const QStringList &list)
Definition: statewidget.cpp:453
StateType m_stateType
Type of state.
Definition: statewidget.h:94
Definition: statewidget.h:44
Definition: statewidget.h:46
Definition: statewidget.h:45
virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
Definition: statewidget.cpp:336
Definition: statewidget.h:53
A graphical version of a UML State.
Definition: statewidget.h:33
StateType
Enumeration that codes the different types of state.
Definition: statewidget.h:39
QStringList activities() const
Definition: statewidget.cpp:462
void setAspectRatioMode()
Definition: statewidget.cpp:317
virtual void slotMenuSelection(QAction *action)
Definition: statewidget.cpp:565
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
Definition: statewidget.cpp:376
void setStateType(StateType stateType)
Definition: statewidget.cpp:406
Definition: statewidget.h:41
StateType stateType() const
Definition: statewidget.cpp:390
bool m_drawVertical
whether to draw the fork/join horizontally or vertically
Definition: statewidget.h:95
std::string Type
Definition: basictypes.h:371
QSizeF minimumSize() const
Definition: statewidget.cpp:224
Definition: statewidget.h:49
QString stateTypeStr() const
Definition: statewidget.cpp:398
bool drawVertical() const
Definition: statewidget.cpp:470
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event)
Definition: statewidget.cpp:366
virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
Definition: statewidget.cpp:346
StateWidget(UMLScene *scene, StateType stateType=Normal, Uml::ID::Type id=Uml::ID::None)
Definition: statewidget.cpp:39
Definition: statewidget.h:42
QSizeF m_size
widget size used by combined state
Definition: statewidget.h:97
Definition: statewidget.h:48
void setDrawVertical(bool to=true)
Definition: statewidget.cpp:478
const Type None
special value for uninitialized ID
Definition: basictypes.h:373
bool addActivity(const QString &activity)
Definition: statewidget.cpp:420
bool removeActivity(const QString &activity)
Definition: statewidget.cpp:430
Definition: umlscene.h:64
The base class for graphical UML objects.
Definition: umlwidget.h:35