umbrello 2.34.70-5524f40e1
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
Public Types | Public Slots | Public Member Functions | Protected Member Functions | Private Attributes | List of all members
StateWidget Class Reference

A graphical version of a UML State. More...

#include <statewidget.h>

Inheritance diagram for StateWidget:
Collaboration diagram for StateWidget:

Public Types

enum  StateType {
  Initial = 0 , Normal , End , Fork ,
  Join , Junction , DeepHistory , ShallowHistory ,
  Choice , Combined
}
 Enumeration that codes the different types of state. More...
 
- Public Types inherited from UMLWidget
enum  FontType {
  FT_NORMAL = 0 , FT_BOLD = 1 , FT_ITALIC = 2 , FT_UNDERLINE = 3 ,
  FT_BOLD_ITALIC = 4 , FT_BOLD_UNDERLINE = 5 , FT_ITALIC_UNDERLINE = 6 , FT_BOLD_ITALIC_UNDERLINE = 7 ,
  FT_INVALID = 8
}
 
enum  AddWidgetOption {
  NoOption = 0 , SetupSize = 1 , SwitchDirection = 2 , ShowProperties = 4 ,
  Default = SetupSize | ShowProperties
}
 
- Public Types inherited from WidgetBase
enum  WidgetType {
  wt_Min = 299 , wt_UMLWidget , wt_Actor , wt_UseCase ,
  wt_Class , wt_Interface , wt_Datatype , wt_Enum ,
  wt_Entity , wt_Package , wt_Object , wt_Note ,
  wt_Box , wt_Message , wt_Text , wt_State ,
  wt_Activity , wt_Component , wt_Artifact , wt_Node ,
  wt_Association , wt_ForkJoin , wt_Precondition , wt_CombinedFragment ,
  wt_FloatingDashLine , wt_Signal , wt_Pin , wt_ObjectNode ,
  wt_Region , wt_Category , wt_Port , wt_Instance ,
  wt_Max
}
 

Public Slots

virtual void slotMenuSelection (QAction *action)
 
- Public Slots inherited from UMLWidget
virtual void updateWidget ()
 
virtual void slotMenuSelection (QAction *action)
 
virtual void slotWidgetMoved (Uml::ID::Type id)
 
virtual void slotFillColorChanged (Uml::ID::Type viewID)
 
virtual void slotLineColorChanged (Uml::ID::Type viewID)
 
virtual void slotTextColorChanged (Uml::ID::Type viewID)
 
virtual void slotLineWidthChanged (Uml::ID::Type viewID)
 
void slotSnapToGrid ()
 
- Public Slots inherited from WidgetBase
virtual void slotMenuSelection (QAction *trigger)
 

Public Member Functions

 StateWidget (UMLScene *scene, StateType stateType=Normal, Uml::ID::Type id=Uml::ID::None)
 
virtual ~StateWidget ()
 
virtual void paint (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=0)
 
StateType stateType () const
 
QString stateTypeStr () const
 
void setStateType (StateType stateType)
 
bool addActivity (const QString &activity)
 
bool removeActivity (const QString &activity)
 
bool renameActivity (const QString &activity, const QString &newName)
 
QStringList activities () const
 
void setActivities (const QStringList &list)
 
bool drawVertical () const
 
void setDrawVertical (bool to=true)
 
virtual bool showPropertiesDialog ()
 
virtual bool loadFromXMI (QDomElement &qElement)
 
virtual void saveToXMI (QXmlStreamWriter &writer)
 
- Public Member Functions inherited from UMLWidget
 UMLWidget (UMLScene *scene, WidgetType type=wt_UMLWidget, UMLObject *o=0)
 
 UMLWidget (UMLScene *scene, WidgetType type=wt_UMLWidget, Uml::ID::Type id=Uml::ID::None)
 
virtual ~UMLWidget ()
 
UMLWidgetoperator= (const UMLWidget &other)
 
bool operator== (const UMLWidget &other) const
 
void setMinimumSize (const QSizeF &size)
 
void setMaximumSize (const QSizeF &size)
 
virtual void setUseFillColor (bool fc)
 
void setUseFillColorCmd (bool fc)
 
virtual void setTextColor (const QColor &color)
 
void setTextColorCmd (const QColor &color)
 
virtual void setLineColor (const QColor &color)
 
virtual void setLineColorCmd (const QColor &color)
 
virtual void setLineWidth (uint width)
 
void setLineWidthCmd (uint width)
 
virtual void setFillColor (const QColor &color)
 
void setFillColorCmd (const QColor &color)
 
void setSelectedFlag (bool _select)
 
virtual void setSelected (bool _select)
 
void setScene (UMLScene *scene)
 
virtual bool activate (IDChangeLog *changeLog=0)
 
void setPenFromSettings (QPainter &p)
 
void setPenFromSettings (QPainter *p)
 
virtual void setFont (const QFont &font)
 
void setFontCmd (const QFont &font)
 
bool getStartMove () const
 
virtual qreal getX () const
 
virtual qreal getY () const
 
virtual QPointF getPos () const
 
virtual void setX (qreal x)
 
virtual void setY (qreal y)
 
qreal height () const
 
qreal width () const
 
void setSize (qreal width, qreal height)
 
void setSize (const QSizeF &size)
 
virtual void resizeWidget (qreal newW, qreal newH)
 
virtual void notifyParentResize ()
 
bool getIgnoreSnapToGrid () const
 
void setIgnoreSnapToGrid (bool to)
 
virtual bool isLocatedIn (const UMLWidget *other) const
 
void moveByLocal (qreal dx, qreal dy)
 
virtual void removeAssoc (AssociationWidget *pAssoc)
 
virtual void addAssoc (AssociationWidget *pAssoc)
 
AssociationWidgetListassociationWidgetList () const
 
bool isInstance () const
 
void setIsInstance (bool isInstance)
 
void setInstanceName (const QString &instanceName)
 
QString instanceName () const
 
Uml::ShowStereoType::Enum showStereotype () const
 
virtual void setShowStereotype (Uml::ShowStereoType::Enum flag)
 
QString tags () const
 
virtual void adjustAssocs (qreal dx, qreal dy)
 
virtual void adjustUnselectedAssocs (qreal dx, qreal dy)
 
bool isActivated () const
 
void setActivated (bool active=true)
 
virtual void cleanup ()
 
void updateGeometry (bool withAssocs=true)
 
void clipSize ()
 
void forceUpdateFontMetrics (QPainter *painter)
 
void forceUpdateFontMetrics (QFont &font, QPainter *painter)
 
QPointF startMovePosition () const
 
void setStartMovePosition (const QPointF &position)
 
QSizeF startResizeSize () const
 
virtual QSizeF calculateSize (bool withExtensions=true) const
 
void resize ()
 
bool fixedAspectRatio () const
 
void setFixedAspectRatio (bool state)
 
bool resizable () const
 
void setResizable (bool state)
 
virtual void setDefaultFontMetrics (QFont &font, UMLWidget::FontType fontType)
 
virtual void setDefaultFontMetrics (QFont &font, UMLWidget::FontType fontType, QPainter &painter)
 
QFontMetrics & getFontMetrics (UMLWidget::FontType fontType) const
 
void setFontMetrics (UMLWidget::FontType fontType, QFontMetrics fm)
 
void setupFontType (QFont &font, UMLWidget::FontType fontType)
 
- Public Member Functions inherited from WidgetBase
 WidgetBase (UMLScene *scene, WidgetType type=wt_UMLWidget, Uml::ID::Type id=Uml::ID::None)
 
virtual ~WidgetBase ()
 
UMLObjectumlObject () const
 
virtual void setUMLObject (UMLObject *obj)
 
Uml::ID::Type id () const
 
void setID (Uml::ID::Type id)
 
void setLocalID (Uml::ID::Type id)
 
Uml::ID::Type localID () const
 
virtual UMLWidgetwidgetWithID (Uml::ID::Type id)
 
WidgetType baseType () const
 
void setBaseType (const WidgetType &baseType)
 
QLatin1String baseTypeStr () const
 
QString baseTypeStrWithoutPrefix () const
 
UMLSceneumlScene () const
 
UMLDocumlDoc () const
 
QString documentation () const
 
bool hasDocumentation () const
 
virtual void setDocumentation (const QString &doc)
 
QString name () const
 
virtual void setName (const QString &strName)
 
QColor lineColor () const
 
uint lineWidth () const
 
QColor textColor () const
 
QColor fillColor () const
 
bool usesDiagramLineColor () const
 
void setUsesDiagramLineColor (bool state)
 
bool usesDiagramLineWidth () const
 
void setUsesDiagramLineWidth (bool state)
 
bool useFillColor () const
 
bool usesDiagramTextColor () const
 
void setUsesDiagramTextColor (bool state)
 
bool usesDiagramFillColor () const
 
void setUsesDiagramFillColor (bool state)
 
bool usesDiagramUseFillColor () const
 
void setUsesDiagramUseFillColor (bool state)
 
virtual QFont font () const
 
bool autoResize () const
 
void setAutoResize (bool state)
 
bool changesShape () const
 
void setChangesShape (bool state)
 
WidgetBaseoperator= (const WidgetBase &other)
 
QRectF rect () const
 
void setRect (const QRectF &rect)
 
void setRect (qreal x, qreal y, qreal width, qreal height)
 
virtual QRectF boundingRect () const
 
virtual UMLWidgetonWidget (const QPointF &p)
 
bool isActivityWidget () const
 
bool isActorWidget () const
 
bool isArtifactWidget () const
 
bool isAssociationWidget () const
 
bool isBoxWidget () const
 
bool isCategoryWidget () const
 
bool isClassWidget () const
 
bool isCombinedFragmentWidget () const
 
bool isComponentWidget () const
 
bool isDatatypeWidget () const
 
bool isEntityWidget () const
 
bool isEnumWidget () const
 
bool isFloatingDashLineWidget () const
 
bool isForkJoinWidget () const
 
bool isInterfaceWidget () const
 
bool isMessageWidget () const
 
bool isNodeWidget () const
 
bool isNoteWidget () const
 
bool isObjectNodeWidget () const
 
bool isObjectWidget () const
 
bool isPackageWidget () const
 
bool isPinWidget () const
 
bool isPortWidget () const
 
bool isPreconditionWidget () const
 
bool isRegionWidget () const
 
bool isSignalWidget () const
 
bool isStateWidget () const
 
bool isTextWidget () const
 
bool isUseCaseWidget () const
 
ActivityWidgetasActivityWidget ()
 
ActorWidgetasActorWidget ()
 
ArtifactWidgetasArtifactWidget ()
 
AssociationWidgetasAssociationWidget ()
 
BoxWidgetasBoxWidget ()
 
CategoryWidgetasCategoryWidget ()
 
ClassifierWidgetasClassifierWidget ()
 
CombinedFragmentWidgetasCombinedFragmentWidget ()
 
ComponentWidgetasComponentWidget ()
 
DatatypeWidgetasDatatypeWidget ()
 
EntityWidgetasEntityWidget ()
 
EnumWidgetasEnumWidget ()
 
FloatingDashLineWidgetasFloatingDashLineWidget ()
 
ForkJoinWidgetasForkJoinWidget ()
 
InterfaceWidgetasInterfaceWidget ()
 
MessageWidgetasMessageWidget ()
 
NodeWidgetasNodeWidget ()
 
NoteWidgetasNoteWidget ()
 
ObjectNodeWidgetasObjectNodeWidget ()
 
ObjectWidgetasObjectWidget ()
 
PackageWidgetasPackageWidget ()
 
PinWidgetasPinWidget ()
 
PinPortBaseasPinPortBase ()
 
PortWidgetasPortWidget ()
 
PreconditionWidgetasPreconditionWidget ()
 
RegionWidgetasRegionWidget ()
 
SignalWidgetasSignalWidget ()
 
StateWidgetasStateWidget ()
 
FloatingTextWidgetasFloatingTextWidget ()
 
UseCaseWidgetasUseCaseWidget ()
 
UMLWidgetasUMLWidget ()
 
const ActivityWidgetasActivityWidget () const
 
const ActorWidgetasActorWidget () const
 
const ArtifactWidgetasArtifactWidget () const
 
const AssociationWidgetasAssociationWidget () const
 
const BoxWidgetasBoxWidget () const
 
const CategoryWidgetasCategoryWidget () const
 
const ClassifierWidgetasClassifierWidget () const
 
const CombinedFragmentWidgetasCombinedFragmentWidget () const
 
const ComponentWidgetasComponentWidget () const
 
const DatatypeWidgetasDatatypeWidget () const
 
const EntityWidgetasEntityWidget () const
 
const EnumWidgetasEnumWidget () const
 
const FloatingDashLineWidgetasFloatingDashLineWidget () const
 
const ForkJoinWidgetasForkJoinWidget () const
 
const InterfaceWidgetasInterfaceWidget () const
 
const MessageWidgetasMessageWidget () const
 
const NodeWidgetasNodeWidget () const
 
const NoteWidgetasNoteWidget () const
 
const ObjectNodeWidgetasObjectNodeWidget () const
 
const ObjectWidgetasObjectWidget () const
 
const PackageWidgetasPackageWidget () const
 
const PinWidgetasPinWidget () const
 
const PinPortBaseasPinPortBase () const
 
const PortWidgetasPortWidget () const
 
const PreconditionWidgetasPreconditionWidget () const
 
const RegionWidgetasRegionWidget () const
 
const SignalWidgetasSignalWidget () const
 
const StateWidgetasStateWidget () const
 
const FloatingTextWidgetasFloatingTextWidget () const
 
const UseCaseWidgetasUseCaseWidget () const
 
const UMLWidgetasUMLWidget () const
 
- Public Member Functions inherited from DiagramProxyWidget
 DiagramProxyWidget (UMLWidget *widget, qreal borderWidth=5)
 
virtual ~DiagramProxyWidget ()
 
Uml::ID::Type diagramLink () const
 
UMLScenelinkedDiagram () const
 
bool setDiagramLink (const Uml::ID::Type &id)
 
const QRectF & clientRect () const
 
const QRectF & sceneRect () const
 
void setClientRect (const QRectF &rect)
 
bool isProxyWidget () const
 
UMLWidgetgetProxiedWidget (const QPointF &p) const
 
QPointF mapFromClient (const QPointF &p) const
 
QRectF mapFromClient (const QRectF &r) const
 
QPointF mapToClient (const QPointF &pos) const
 
void paint (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=0)
 
bool showLinkedDiagram () const
 
void setShowLinkedDiagram (bool showLinkedDiagram)
 
QRectF iconRect () const
 
void setIconRect (const QRectF &iconRect)
 

Protected Member Functions

QSizeF minimumSize () const
 
QSizeF maximumSize ()
 
void setAspectRatioMode ()
 
virtual void contextMenuEvent (QGraphicsSceneContextMenuEvent *event)
 
virtual void mouseDoubleClickEvent (QGraphicsSceneMouseEvent *event)
 
virtual void mousePressEvent (QGraphicsSceneMouseEvent *event)
 
virtual void mouseMoveEvent (QGraphicsSceneMouseEvent *event)
 
virtual void mouseReleaseEvent (QGraphicsSceneMouseEvent *event)
 
- Protected Member Functions inherited from UMLWidget
virtual void moveEvent (QGraphicsSceneMouseEvent *event)
 
virtual void moveWidgetBy (qreal diffX, qreal diffY)
 
virtual void constrainMovementForAllWidgets (qreal &diffX, qreal &diffY)
 
virtual void constrain (qreal &width, qreal &height)
 
virtual bool isInResizeArea (QGraphicsSceneMouseEvent *me)
 
virtual QCursor resizeCursor () const
 
void selectSingle (QGraphicsSceneMouseEvent *me)
 
void selectMultiple (QGraphicsSceneMouseEvent *me)
 
void deselect (QGraphicsSceneMouseEvent *me)
 
void setSelectionBounds ()
 
void resize (QGraphicsSceneMouseEvent *me)
 
bool wasSizeChanged ()
 
bool wasPositionChanged ()
 
virtual void toForeground ()
 
void addConnectedWidget (UMLWidget *widget, Uml::AssociationType::Enum type=Uml::AssociationType::Association, AddWidgetOptions options=Default)
 
void addConnectedUMLObject (UMLObject::ObjectType otype, Uml::AssociationType::Enum type)
 
void addWidget (UMLWidget *widget, bool showProperties=true)
 
- Protected Member Functions inherited from QGraphicsObjectWrapper
QVariant itemChange (GraphicsItemChange change, const QVariant &value)
 
- Protected Member Functions inherited from DiagramProxyWidget
DiagramProxyWidgetoperator= (const DiagramProxyWidget &other)
 
bool activate (IDChangeLog *changeLog=0)
 
bool loadFromXMI (QDomElement &qElement)
 
void saveToXMI (QXmlStreamWriter &writer)
 
void setupEvent (QGraphicsSceneMouseEvent &e, const QGraphicsSceneMouseEvent *event, const QPointF &pos) const
 
void setupEvent (QGraphicsSceneContextMenuEvent &e, const QGraphicsSceneContextMenuEvent *event, const QPointF &pos) const
 
void slotMenuSelection (QAction *action)
 

Private Attributes

StateType m_stateType
 Type of state. More...
 
bool m_drawVertical
 whether to draw the fork/join horizontally or vertically More...
 
QStringList m_Activities
 List of activities for the state. More...
 
QSizeF m_size
 widget size used by combined state More...
 

Additional Inherited Members

- Signals inherited from UMLWidget
void sigWidgetMoved (Uml::ID::Type id)
 
- Static Public Member Functions inherited from WidgetBase
static QString toString (WidgetType wt)
 
static QString toI18nString (WidgetType wt)
 
static Icon_Utils::IconType toIcon (WidgetType wt)
 
static bool widgetHasUMLObject (WidgetBase::WidgetType type)
 
- Static Public Attributes inherited from UMLWidget
static const QSizeF DefaultMinimumSize
 
static const QSizeF DefaultMaximumSize
 
static const int defaultMargin = 5
 
static const int selectionMarkerSize = 4
 
static const int resizeMarkerLineCount = 3
 
- Protected Attributes inherited from UMLWidget
QString m_instanceName
 instance name (used if on a deployment diagram) More...
 
bool m_isInstance
 holds whether this widget is a component instance (i.e. on a deployment diagram) More...
 
Uml::ShowStereoType::Enum m_showStereotype
 if and how the stereotype should be displayed More...
 
bool m_startMove
 
QPointF m_startMovePostion
 
QSizeF m_startResizeSize
 
int m_nPosX
 
UMLDocm_doc
 shortcut for UMLApp::app()->document() More...
 
bool m_resizable
 
QFontMetrics * m_pFontMetrics [FT_INVALID]
 
QSizeF m_minimumSize
 
QSizeF m_maximumSize
 
bool m_activated
 true if the activate function has been called for this class instance More...
 
bool m_ignoreSnapToGrid
 
bool m_ignoreSnapComponentSizeToGrid
 
bool m_fixedAspectRatio
 
QString m_oldStatusBarMsg
 The text in the status bar when the cursor was pressed. More...
 
QPointF m_pressOffset
 
QPointF m_oldPos
 The X/Y position the widget had when the movement started. More...
 
qreal m_oldW
 The width/height the widget had when the resize started. More...
 
qreal m_oldH
 
bool m_shiftPressed
 If shift or control button were pressed in mouse press event. More...
 
bool m_inMoveArea
 
bool m_inResizeArea
 
bool m_moved
 
bool m_resized
 
- Protected Attributes inherited from WidgetBase
UMLScenem_scene
 
QPointer< UMLObjectm_umlObject
 
QString m_Doc
 Only used if m_umlObject is not set. More...
 
QString m_Text
 
QRectF m_rect
 Widget size. In this rectangle, the x and y coordinates are always 0. More...
 
Uml::ID::Type m_nId
 
Uml::ID::Type m_nLocalID
 
QColor m_textColor
 Color of the text of the widget. Is saved to XMI. More...
 
QColor m_lineColor
 Color of the lines of the widget. Is saved to XMI. More...
 
QColor m_fillColor
 color of the background of the widget More...
 
QBrush m_brush
 
QFont m_font
 
uint m_lineWidth
 Width of the lines of the widget. Is saved to XMI. More...
 
bool m_useFillColor
 flag indicates if the UMLWidget uses the Diagram FillColour More...
 
bool m_usesDiagramFillColor
 
bool m_usesDiagramLineColor
 
bool m_usesDiagramLineWidth
 
bool m_usesDiagramTextColor
 
bool m_usesDiagramUseFillColor
 
bool m_autoResize
 
bool m_changesShape
 The widget changes its shape when the number of connections or their positions are changed. More...
 
- Protected Attributes inherited from QGraphicsObjectWrapper
bool m_calledFromItemChange {false}
 

Detailed Description

A graphical version of a UML State.

This class is the graphical version of a UML State.

A StateWidget is created by a UMLView. A StateWidget belongs to only one UMLView instance. When the UMLView instance that this class belongs to is destroyed, it will be automatically deleted.

The StateWidget class inherits from the UMLWidget class which adds most of the functionality to this class.

Author
Paul Hensgen phens.nosp@m.gen@.nosp@m.techi.nosp@m.e.co.nosp@m.m Bugs and comments to umbre.nosp@m.llo-.nosp@m.devel.nosp@m.@kde.nosp@m..org or https://bugs.kde.org

Member Enumeration Documentation

◆ StateType

Enumeration that codes the different types of state.

Enumerator
Initial 
Normal 
End 
Fork 
Join 
Junction 
DeepHistory 
ShallowHistory 
Choice 
Combined 

Constructor & Destructor Documentation

◆ StateWidget()

StateWidget::StateWidget ( UMLScene scene,
StateType  stateType = Normal,
Uml::ID::Type  id = Uml::ID::None 
)
explicit

Creates a State widget.

Parameters
sceneThe parent of the widget.
stateTypeThe type of state.
idThe ID to assign (-1 will prompt a new ID.)

◆ ~StateWidget()

StateWidget::~StateWidget ( )
virtual

Destructor.

Member Function Documentation

◆ activities()

QStringList StateWidget::activities ( ) const

Returns the list of activities.

◆ addActivity()

bool StateWidget::addActivity ( const QString &  activity)

Adds an activity to this widget.

Returns
true on success
Here is the call graph for this function:

◆ contextMenuEvent()

void StateWidget::contextMenuEvent ( QGraphicsSceneContextMenuEvent *  event)
protectedvirtual

Event handler for context menu events.

Reimplemented from UMLWidget.

Here is the call graph for this function:

◆ drawVertical()

bool StateWidget::drawVertical ( ) const

Get whether to draw a fork or join vertically.

◆ loadFromXMI()

bool StateWidget::loadFromXMI ( QDomElement &  qElement)
virtual

Loads a "statewidget" XMI element.

Reimplemented from UMLWidget.

Here is the call graph for this function:

◆ maximumSize()

QSizeF StateWidget::maximumSize ( )
protectedvirtual

Overrides method from UMLWidget

Reimplemented from UMLWidget.

Here is the call graph for this function:

◆ minimumSize()

QSizeF StateWidget::minimumSize ( ) const
protectedvirtual

Overrides method from UMLWidget

Reimplemented from UMLWidget.

Here is the call graph for this function:

◆ mouseDoubleClickEvent()

void StateWidget::mouseDoubleClickEvent ( QGraphicsSceneMouseEvent *  event)
protectedvirtual

Event handler for mouse double click events.

Parameters
eventthe QGraphicsSceneMouseEvent event.

Reimplemented from UMLWidget.

Here is the call graph for this function:

◆ mouseMoveEvent()

void StateWidget::mouseMoveEvent ( QGraphicsSceneMouseEvent *  event)
protectedvirtual

Handles a mouse move event. It resizes or moves the widget, depending on where the cursor is pressed on the widget. Go on reading for more info about this.

If resizing, the widget is resized using UMLWidget::resizeWidget (where specific widget resize constraint can be applied), and then the associations are adjusted. The resizing can be constrained also to a specific axis using control and shift buttons. If one or another is pressed, it's constrained to X axis. If both are pressed, it's constrained to Y axis.

If not resizing, the widget is being moved. If the move is being started, the selection bounds are set (which includes updating the list of selected widgets). The difference between the previous position of the selection and the new one is calculated (taking in account the selection bounds so widgets don't go beyond the scene limits). Then, it's constrained to X or Y axis depending on shift and control buttons. A further constraint is made using constrainMovementForAllWidgets (for example, if the widget that receives the event can only be moved in Y axis, with this method the movement of all the widgets in the selection can be constrained to be moved only in Y axis). Then, all the selected widgets are moved using moveWidgetBy (where specific widget movement constraint can be applied) and, if a certain amount of time passed from the last move event, the associations are also updated (they're not updated always to be easy on the CPU). Finally, the scene is resized, and selection bounds updated.

Parameters
eventThe QGraphicsSceneMouseEvent event.

Reimplemented from UMLWidget.

Here is the call graph for this function:

◆ mousePressEvent()

void StateWidget::mousePressEvent ( QGraphicsSceneMouseEvent *  event)
protectedvirtual

Handles a mouse press event. It'll select the widget (or mark it to be deselected) and prepare it to be moved or resized. Go on reading for more info about this.

Widget values and message bar status are saved.

If shift or control buttons are pressed, we're in move area no matter where the button was pressed in the widget. Moreover, if the widget wasn't already selected, it's added to the selection. If already selected, it's marked to be deselected when releasing the button (provided it isn't moved). Also, if the widget is already selected with other widgets but shift nor control buttons are pressed, we're in move area. If finally we don't move the widget, it's selected and the other widgets deselected when releasing the left button.

If shift nor control buttons are pressed, we're facing a single selection. Depending on the position of the cursor, we're in move or in resize area. If the widget wasn't selected (both when there are no widgets selected, or when there're other widgets selected but not the one receiving the press event) it's selected and the others deselected, if any. If already selected, it's marked to be deselected when releasing the button (provided it wasn't moved or resized).

Parameters
eventThe QGraphicsSceneMouseEvent event.

Reimplemented from UMLWidget.

Here is the call graph for this function:

◆ mouseReleaseEvent()

void StateWidget::mouseReleaseEvent ( QGraphicsSceneMouseEvent *  event)
protectedvirtual

Handles a mouse release event. It selects or deselects the widget and cancels or confirms the move or resize. Go on reading for more info about this. No matter which tool is selected, Z position of widget is updated.

Middle button release resets the selection. Left button release, if it wasn't moved nor resized, selects the widget and deselect the others if it wasn't selected and there were other widgets selected. If the widget was marked to be deselected, deselects it. If it was moved or resized, the document is set to modified if position or size changed. Also, if moved, all the associations are adjusted because the timer could have prevented the adjustment in the last move event before the release. If mouse was pressed in resize area, cursor is set again to normal cursor Right button release if right button was pressed shows the pop up menu for the widget. If left button was pressed, it cancels the move or resize with a mouse move event at the same position than the cursor was when pressed. Another left button release is also sent.

Parameters
eventThe QGraphicsSceneMouseEvent event.

Reimplemented from UMLWidget.

Here is the call graph for this function:

◆ paint()

void StateWidget::paint ( QPainter *  painter,
const QStyleOptionGraphicsItem *  option,
QWidget *  widget = 0 
)
virtual

Overrides the standard paint event.

Reimplemented from UMLWidget.

Here is the call graph for this function:

◆ removeActivity()

bool StateWidget::removeActivity ( const QString &  activity)

Removes the given activity from the state.

Here is the call graph for this function:

◆ renameActivity()

bool StateWidget::renameActivity ( const QString &  activity,
const QString &  newName 
)

Renames the given activity.

◆ saveToXMI()

void StateWidget::saveToXMI ( QXmlStreamWriter &  writer)
virtual

Creates the "statewidget" XMI element.

Reimplemented from UMLWidget.

Here is the call graph for this function:

◆ setActivities()

void StateWidget::setActivities ( const QStringList &  list)

Sets the states activities to the ones given.

Here is the call graph for this function:

◆ setAspectRatioMode()

void StateWidget::setAspectRatioMode ( )
protected

Set the aspect ratio mode. Some state types have a fixed aspect ratio

Here is the call graph for this function:

◆ setDrawVertical()

void StateWidget::setDrawVertical ( bool  to = true)

Set whether to draw a fork or join vertically.

Here is the call graph for this function:

◆ setStateType()

void StateWidget::setStateType ( StateType  stateType)

Sets the type of state.

Here is the call graph for this function:

◆ showPropertiesDialog()

bool StateWidget::showPropertiesDialog ( )
virtual

Show a properties dialog for a StateWidget.

Reimplemented from UMLWidget.

Here is the call graph for this function:

◆ slotMenuSelection

void StateWidget::slotMenuSelection ( QAction *  action)
virtualslot

Captures any popup menu signals for menus it created.

Here is the call graph for this function:

◆ stateType()

StateWidget::StateType StateWidget::stateType ( ) const

Returns the type of state.

Returns
StateType

◆ stateTypeStr()

QString StateWidget::stateTypeStr ( ) const

Returns the type string of state.

Member Data Documentation

◆ m_Activities

QStringList StateWidget::m_Activities
private

List of activities for the state.

◆ m_drawVertical

bool StateWidget::m_drawVertical
private

whether to draw the fork/join horizontally or vertically

◆ m_size

QSizeF StateWidget::m_size
private

widget size used by combined state

◆ m_stateType

StateType StateWidget::m_stateType
private

Type of state.


The documentation for this class was generated from the following files: