umbrello  2.34.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  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
DiagramProxyWidget::setClientRect
void setClientRect(const QRectF &rect)
Definition: diagramproxywidget.cpp:88
StateWidget::removeActivity
bool removeActivity(const QString &activity)
Definition: statewidget.cpp:429
UMLWidget::height
qreal height() const
Definition: umlwidget.h:112
cmdcreatediagram.h
DiagramProxyWidget::sceneRect
const QRectF & sceneRect() const
Definition: diagramproxywidget.cpp:78
DiagramProxyWidget::mouseMoveEvent
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event)
Definition: diagramproxywidget.cpp:258
STATE_WIDTH
#define STATE_WIDTH
Definition: statewidget.h:15
x
int x
Definition: cxx11-lambda-functions-and-expressions.h:4
WidgetBase::textColor
QColor textColor() const
Definition: widgetbase.cpp:347
ListPopupMenu::mt_Properties
@ mt_Properties
Definition: listpopupmenu.h:177
statewidget.h
StateWidget::renameActivity
bool renameActivity(const QString &activity, const QString &newName)
Definition: statewidget.cpp:440
StateWidget::~StateWidget
virtual ~StateWidget()
Definition: statewidget.cpp:52
statedialog.h
docwindow.h
umlview.h
StateWidget::showPropertiesDialog
virtual bool showPropertiesDialog()
Definition: statewidget.cpp:488
StateWidget::paint
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=0)
Definition: statewidget.cpp:59
UMLWidget
The base class for graphical UML objects.
Definition: umlwidget.h:35
StateWidget::ShallowHistory
@ ShallowHistory
Definition: statewidget.h:48
WidgetBase::name
QString name() const
Definition: widgetbase.cpp:321
StateWidget::setActivities
void setActivities(const QStringList &list)
Definition: statewidget.cpp:452
UMLWidget::setPenFromSettings
void setPenFromSettings(QPainter &p)
Definition: umlwidget.cpp:1401
UMLWidget::FT_NORMAL
@ FT_NORMAL
Definition: umlwidget.h:218
UMLScene::activeView
UMLView * activeView() const
Definition: umlscene.cpp:354
UMLWidget::FT_BOLD
@ FT_BOLD
Definition: umlwidget.h:219
DiagramProxyWidget::contextMenuEvent
virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
Definition: diagramproxywidget.cpp:213
UMLWidget::mouseDoubleClickEvent
virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
Definition: umlwidget.cpp:590
WidgetBase::useFillColor
bool useFillColor() const
Definition: widgetbase.cpp:431
StateWidget
A graphical version of a UML State.
Definition: statewidget.h:33
DEBUG_REGISTER_DISABLED
#define DEBUG_REGISTER_DISABLED(src)
Definition: debug_utils.h:135
Uml::ID::None
const Type None
special value for uninitialized ID
Definition: basictypes.h:373
StateWidget::loadFromXMI
virtual bool loadFromXMI(QDomElement &qElement)
Definition: statewidget.cpp:531
UMLWidget::maximumSize
virtual QSizeF maximumSize()
Definition: umlwidget.cpp:237
Dialog_Utils::askNewName
bool askNewName(WidgetBase::WidgetType type, QString &name)
Definition: dialog_utils.cpp:246
StateWidget::m_Activities
QStringList m_Activities
List of activities for the state.
Definition: statewidget.h:96
DocWindow::updateDocumentation
void updateDocumentation(bool clear=false, bool startup=false)
Definition: docwindow.cpp:268
StateWidget::stateTypeStr
QString stateTypeStr() const
Definition: statewidget.cpp:397
StateWidget::saveToXMI
virtual void saveToXMI(QXmlStreamWriter &writer)
Definition: statewidget.cpp:506
UMLWidget::loadFromXMI
virtual bool loadFromXMI(QDomElement &qElement)
Definition: umlwidget.cpp:2213
StateWidget::maximumSize
QSizeF maximumSize()
Definition: statewidget.cpp:287
Dialog_Utils::askName
bool askName(const QString &title, const QString &prompt, QString &name)
Definition: dialog_utils.cpp:191
WidgetBase::rect
QRectF rect() const
Definition: widgetbase.cpp:844
Uml::ID::Type
std::string Type
Definition: basictypes.h:371
StateWidget::StateType
StateType
Enumeration that codes the different types of state.
Definition: statewidget.h:39
ENUM_NAME
#define ENUM_NAME(o, e, v)
Definition: debug_utils.h:151
DiagramProxyWidget::mousePressEvent
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event)
Definition: diagramproxywidget.cpp:246
StateDialog
Definition: statedialog.h:27
StateWidget::Junction
@ Junction
Definition: statewidget.h:46
StateWidget::setStateType
void setStateType(StateType stateType)
Definition: statewidget.cpp:405
StateWidget::Fork
@ Fork
Definition: statewidget.h:44
StateWidget::m_stateType
StateType m_stateType
Type of state.
Definition: statewidget.h:94
StateWidget::mousePressEvent
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event)
Definition: statewidget.cpp:355
StateWidget::End
@ End
Definition: statewidget.h:43
UMLWidget::mouseReleaseEvent
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
Definition: umlwidget.cpp:534
StateWidget::m_drawVertical
bool m_drawVertical
whether to draw the fork/join horizontally or vertically
Definition: statewidget.h:95
UMLWidget::getFontMetrics
QFontMetrics & getFontMetrics(UMLWidget::FontType fontType) const
Definition: umlwidget.cpp:2041
WidgetBase::font
virtual QFont font() const
Definition: widgetbase.cpp:555
StateWidget::slotMenuSelection
virtual void slotMenuSelection(QAction *action)
Definition: statewidget.cpp:564
WidgetBase::fillColor
QColor fillColor() const
Definition: widgetbase.cpp:389
StateWidget::contextMenuEvent
virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
Definition: statewidget.cpp:335
StateWidget::mouseReleaseEvent
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
Definition: statewidget.cpp:375
it
and that you know you can do these things To protect your we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights These restrictions translate to certain responsibilities for you if you distribute copies of the or if you modify it For if you distribute copies of such a whether gratis or for a you must give the recipients all the rights that you have You must make sure that receive or can get the source code And you must show them these terms so they know their rights We protect your rights with two distribute and or modify the software for each author s protection and we want to make certain that everyone understands that there is no warranty for this free software If the software is modified by someone else and passed we want its recipients to know that what they have is not the so that any problems introduced by others will not reflect on the original authors reputations any free program is threatened constantly by software patents We wish to avoid the danger that redistributors of a free program will individually obtain patent in effect making the program proprietary To prevent we have made it clear that any patent must be licensed for everyone s free use or not licensed at all The precise terms and conditions for distribution and modification follow TERMS AND CONDITIONS FOR DISTRIBUTION AND MODIFICATION This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License The refers to any such program or and a work based on the Program means either the Program or any derivative work under copyright a work containing the Program or a portion of it
Definition: GPL-2.0-only.txt:64
UMLApp::docWindow
DocWindow * docWindow() const
Definition: uml.cpp:1919
UMLWidget::contextMenuEvent
virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
Definition: umlwidget.cpp:256
number
it is up to the author donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License If the distribution and or use of the Library is restricted in certain countries either by patents or by copyrighted the original copyright holder who places the Library under this License may add an geographical distribution limitation excluding those so that distribution is permitted only in or among countries not thus excluded In such this License incorporates the limitation as if written in the body of this License The Free Software Foundation may publish revised and or new versions of the Library General Public License from time to time Such new versions will be similar in spirit to the present but may differ in detail to address new problems or concerns Each version is given a distinguishing version number If the Library specifies a version number of this License which applies to it and any later you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation If the Library does not specify a license version number
Definition: LGPL-2.0-only.txt:368
umlwidget.h
ListPopupMenu::MenuType
MenuType
< This type hosts all possible menu entry types
Definition: listpopupmenu.h:38
UMLWidget::saveToXMI
virtual void saveToXMI(QXmlStreamWriter &writer)
Definition: umlwidget.cpp:2191
i18n
#define i18n
Definition: main.cpp:35
UMLWidget::setFixedAspectRatio
void setFixedAspectRatio(bool state)
Definition: umlwidget.h:205
StateWidget::Combined
@ Combined
Definition: statewidget.h:53
WidgetBase::m_scene
UMLScene * m_scene
Definition: widgetbase.h:345
DiagramProxyWidget::mouseDoubleClickEvent
virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
Definition: diagramproxywidget.cpp:225
WidgetBase::setAutoResize
void setAutoResize(bool state)
Definition: widgetbase.cpp:581
StateWidget::minimumSize
QSizeF minimumSize() const
Definition: statewidget.cpp:223
logWarn1
#define logWarn1(s, a)
Definition: uml.h:542
StateWidget::mouseDoubleClickEvent
virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
Definition: statewidget.cpp:345
UMLApp::app
static UMLApp * app()
Definition: uml.cpp:276
StateWidget::setAspectRatioMode
void setAspectRatioMode()
Definition: statewidget.cpp:316
StateWidget::Join
@ Join
Definition: statewidget.h:45
UMLDoc::setModified
void setModified(bool modified=true)
Definition: umldoc.cpp:3147
WidgetBase
Common base class for UMLWidget and AssociationWidget.
Definition: widgetbase.h:100
UMLWidget::mousePressEvent
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event)
Definition: umlwidget.cpp:361
DiagramProxyWidget::mouseReleaseEvent
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
Definition: diagramproxywidget.cpp:270
Uml
Definition: basictypes.cpp:22
UMLWidget::adjustAssocs
virtual void adjustAssocs(qreal dx, qreal dy)
Definition: umlwidget.cpp:1317
StateWidget::Initial
@ Initial
Definition: statewidget.h:41
ListPopupMenu::mt_FlipHorizontal
@ mt_FlipHorizontal
Definition: listpopupmenu.h:214
DocWindow::showDocumentation
void showDocumentation(UMLObject *object, bool overwrite=false)
Definition: docwindow.cpp:125
DiagramProxyWidget::paint
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=0)
Definition: diagramproxywidget.cpp:325
StateWidget::mouseMoveEvent
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event)
Definition: statewidget.cpp:365
WidgetBase::lineColor
QColor lineColor() const
Definition: widgetbase.cpp:368
StateWidget::StateWidget
StateWidget(UMLScene *scene, StateType stateType=Normal, Uml::ID::Type id=Uml::ID::None)
Definition: statewidget.cpp:39
umlscene.h
uml.h
UMLWidget::setSize
void setSize(qreal width, qreal height)
Definition: umlwidget.cpp:1834
StateWidget::stateType
StateType stateType() const
Definition: statewidget.cpp:389
STATE_MARGIN
#define STATE_MARGIN
Definition: statewidget.h:14
debug_utils.h
StateWidget::drawVertical
bool drawVertical() const
Definition: statewidget.cpp:469
StateWidget::m_size
QSizeF m_size
widget size used by combined state
Definition: statewidget.h:97
UMLScene
Definition: umlscene.h:64
ListPopupMenu::typeFromAction
static MenuType typeFromAction(QAction *action)
Definition: listpopupmenu.cpp:406
UMLWidget::updateGeometry
void updateGeometry(bool withAssocs=true)
Definition: umlwidget.cpp:1871
WidgetBase::m_Doc
QString m_Doc
Only used if m_umlObject is not set.
Definition: widgetbase.h:347
ListPopupMenu::mt_Rename
@ mt_Rename
Definition: listpopupmenu.h:178
ListPopupMenu::mt_FlipVertical
@ mt_FlipVertical
Definition: listpopupmenu.h:215
listpopupmenu.h
DiagramProxyWidget::linkedDiagram
UMLScene * linkedDiagram() const
Definition: diagramproxywidget.cpp:41
WidgetBase::setName
virtual void setName(const QString &strName)
Definition: widgetbase.cpp:334
dialog_utils.h
StateWidget::addActivity
bool addActivity(const QString &activity)
Definition: statewidget.cpp:419
STATE_HEIGHT
#define STATE_HEIGHT
Definition: statewidget.h:16
UMLWidget::mouseMoveEvent
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event)
Definition: umlwidget.cpp:455
StateWidget::Choice
@ Choice
Definition: statewidget.h:49
UMLWidget::width
qreal width() const
Definition: umlwidget.h:119
StateWidget::setDrawVertical
void setDrawVertical(bool to=true)
Definition: statewidget.cpp:477
ListPopupMenu::mt_New_Activity
@ mt_New_Activity
Definition: listpopupmenu.h:129
WidgetBase::m_Text
QString m_Text
Definition: widgetbase.h:348
UMLApp::document
UMLDoc * document() const
Definition: uml.cpp:1063
umldoc.h
StateWidget::Normal
@ Normal
Definition: statewidget.h:42
UMLWidget::setResizable
void setResizable(bool state)
Definition: umlwidget.h:213
DiagramProxyWidget::slotMenuSelection
void slotMenuSelection(QAction *action)
Definition: diagramproxywidget.cpp:352
StateWidget::DeepHistory
@ DeepHistory
Definition: statewidget.h:47
UMLWidget::paint
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=0)
Definition: umlwidget.cpp:1961
StateWidget::activities
QStringList activities() const
Definition: statewidget.cpp:461