umbrello  2.32.3
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  * This program is free software; you can redistribute it and/or modify *
3  * it under the terms of the GNU General Public License as published by *
4  * the Free Software Foundation; either version 2 of the License, or *
5  * (at your option) any later version. *
6  * *
7  * copyright (C) 2002-2020 *
8  * Umbrello UML Modeller Authors <umbrello-devel@kde.org> *
9 ***************************************************************************/
10 
11 #ifndef STATEWIDGET_H
12 #define STATEWIDGET_H
13 
14 #include "umlwidget.h"
15 
16 #include <QPainter>
17 #include <QStringList>
18 
19 #define STATE_MARGIN 5
20 #define STATE_WIDTH 30
21 #define STATE_HEIGHT 10
22 
38 class StateWidget : public UMLWidget
39 {
40  Q_OBJECT
41  Q_ENUMS(StateType)
42 public:
44  enum StateType
45  {
46  Initial = 0, // Pseudostate
48  End,
49  Fork, // Pseudostate
50  Join, // Pseudostate
51  Junction, // Pseudostate
52  DeepHistory, // Pseudostate
53  ShallowHistory, // Pseudostate
54  Choice, // Pseudostate
55  //Terminate // Pseudostate
56  //EntryPoint // Pseudostate
57  //ExitPoint // Pseudostate
58  Combined // Pseudostate
59  };
60 
62  virtual ~StateWidget();
63 
64  virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
65 
66  StateType stateType() const;
67  QString stateTypeStr() const;
69 
70  bool addActivity(const QString &activity);
71  bool removeActivity(const QString &activity);
72  bool renameActivity(const QString &activity, const QString &newName);
73 
74  QStringList activities() const;
75  void setActivities(const QStringList &list);
76 
77  bool drawVertical() const;
78  void setDrawVertical(bool to = true);
79 
80  virtual bool showPropertiesDialog();
81 
82  virtual bool loadFromXMI1(QDomElement & qElement);
83  virtual void saveToXMI1(QDomDocument & qDoc, QDomElement & qElement);
84 
85 protected:
86  QSizeF minimumSize() const;
87  QSizeF maximumSize();
88  void setAspectRatioMode();
89  virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event);
90  virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event);
91  virtual void mousePressEvent(QGraphicsSceneMouseEvent *event);
92  virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
93  virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
94 
95 public Q_SLOTS:
96  virtual void slotMenuSelection(QAction* action);
97 
98 private:
101  QStringList m_Activities;
102  QSizeF m_size;
103 };
104 
105 #endif
A graphical version of a UML State.
Definition: statewidget.h:39
QSizeF minimumSize() const
Definition: statewidget.cpp:227
bool renameActivity(const QString &activity, const QString &newName)
Definition: statewidget.cpp:444
virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
Definition: statewidget.cpp:349
virtual ~StateWidget()
Definition: statewidget.cpp:56
StateType stateType() const
Definition: statewidget.cpp:393
bool removeActivity(const QString &activity)
Definition: statewidget.cpp:433
QString stateTypeStr() const
Definition: statewidget.cpp:401
QStringList activities() const
Definition: statewidget.cpp:465
virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
Definition: statewidget.cpp:339
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event)
Definition: statewidget.cpp:359
void setActivities(const QStringList &list)
Definition: statewidget.cpp:456
QSizeF maximumSize()
Definition: statewidget.cpp:291
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
Definition: statewidget.cpp:379
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event)
Definition: statewidget.cpp:369
bool drawVertical() const
Definition: statewidget.cpp:473
QSizeF m_size
widget size used by combined state
Definition: statewidget.h:102
StateType
Enumeration that codes the different types of state.
Definition: statewidget.h:45
@ Junction
Definition: statewidget.h:51
@ Fork
Definition: statewidget.h:49
@ ShallowHistory
Definition: statewidget.h:53
@ Join
Definition: statewidget.h:50
@ DeepHistory
Definition: statewidget.h:52
@ Combined
Definition: statewidget.h:58
@ Choice
Definition: statewidget.h:54
@ Initial
Definition: statewidget.h:46
@ End
Definition: statewidget.h:48
@ Normal
Definition: statewidget.h:47
virtual void slotMenuSelection(QAction *action)
Definition: statewidget.cpp:568
void setStateType(StateType stateType)
Definition: statewidget.cpp:409
bool m_drawVertical
whether to draw the fork/join horizontally or vertically
Definition: statewidget.h:100
virtual bool loadFromXMI1(QDomElement &qElement)
Definition: statewidget.cpp:535
virtual bool showPropertiesDialog()
Definition: statewidget.cpp:492
bool addActivity(const QString &activity)
Definition: statewidget.cpp:423
void setAspectRatioMode()
Definition: statewidget.cpp:320
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=0)
Definition: statewidget.cpp:63
StateType m_stateType
Type of state.
Definition: statewidget.h:99
StateWidget(UMLScene *scene, StateType stateType=Normal, Uml::ID::Type id=Uml::ID::None)
Definition: statewidget.cpp:43
void setDrawVertical(bool to=true)
Definition: statewidget.cpp:481
QStringList m_Activities
List of activities for the state.
Definition: statewidget.h:101
virtual void saveToXMI1(QDomDocument &qDoc, QDomElement &qElement)
Definition: statewidget.cpp:510
Definition: umlscene.h:69
The base class for graphical UML objects.
Definition: umlwidget.h:41
const Type None
special value for uninitialized ID
Definition: basictypes.h:353
std::string Type
Definition: basictypes.h:351