umbrello  2.32.2
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
objectwidget.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 OBJECTWIDGET_H
12 #define OBJECTWIDGET_H
13 
14 #include "messagewidgetlist.h"
15 #include "umlwidget.h"
16 
17 class MessageWidget;
18 class SeqLineWidget;
19 class UMLScene;
20 
32 class ObjectWidget : public UMLWidget
33 {
34  Q_OBJECT
35 public:
36  ObjectWidget(UMLScene *scene, UMLObject *o);
37  virtual ~ObjectWidget();
38 
39  virtual void setX(qreal x);
40  virtual void setY(qreal y);
41 
42  qreal centerX();
43 
44  void setMultipleInstance(bool multiple);
45  bool multipleInstance() const;
46 
47  void setSelected(bool state);
48 
49  virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
50 
51  bool activate(IDChangeLog* ChangeLog = 0);
52 
53  void cleanup();
54 
55  virtual bool showPropertiesDialog();
56 
57  void setDrawAsActor(bool drawAsActor);
58  bool drawAsActor() const;
59 
60  void setShowDestruction(bool bShow);
61  bool showDestruction() const;
62 
63  int topMargin();
64 
65  void setEndLine(int yPosition);
66  int getEndLineY();
67 
68  void messageAdded(MessageWidget* message);
69  void messageRemoved(MessageWidget* message);
70 
71  bool canTabUp();
72 
73  bool messageOverlap(qreal y, MessageWidget* messageWidget);
74 
75  virtual void setLineColorCmd(const QColor &color);
76 
78 
79  virtual void resizeWidget(qreal newW, qreal newH);
80 
81  virtual void saveToXMI1(QXmlStreamWriter& writer);
82  virtual bool loadFromXMI1(QDomElement& qElement);
83 
84 public slots:
85  void slotMenuSelection(QAction* action);
86  virtual void slotFillColorChanged(Uml::ID::Type viewID);
87  void slotMessageMoved();
88 
89 protected:
90  virtual void mousePressEvent(QGraphicsSceneMouseEvent *me);
91  virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *me);
92 
93  QSizeF minimumSize() const;
94 
95  virtual void moveEvent(QGraphicsSceneMouseEvent *event);
96  virtual void moveWidgetBy(qreal diffX, qreal diffY);
97  virtual void constrainMovementForAllWidgets(qreal &diffX, qreal &diffY);
98 
99  virtual QCursor resizeCursor() const;
100 
101  void paintActor(QPainter *p);
102  void paintObject(QPainter *p);
103 
104 private:
105  void tabUp();
106  void tabDown();
107 
108  void moveDestructionBy(qreal diffY);
109 
116 
117  friend class SeqLineWidget;
118 };
119 
120 #endif
A_WIDTH
#define A_WIDTH
Definition: objectwidget.cpp:39
ObjectWidget::messageRemoved
void messageRemoved(MessageWidget *message)
Definition: objectwidget.cpp:578
UMLWidget::height
qreal height() const
Definition: umlwidget.h:117
messagewidgetlist.h
UMLWidget::resize
void resize()
Definition: umlwidget.cpp:1493
ObjectWidget::setMultipleInstance
void setMultipleInstance(bool multiple)
Definition: objectwidget.cpp:85
x
int x
Definition: cxx11-lambda-functions-and-expressions.h:4
WidgetBase::textColor
QColor textColor() const
Definition: widgetbase.cpp:347
ObjectWidget::m_multipleInstance
bool m_multipleInstance
draw an object as a multiple object
Definition: objectwidget.h:111
ObjectWidget::slotMessageMoved
void slotMessageMoved()
Definition: objectwidget.cpp:591
ListPopupMenu::mt_Properties
@ mt_Properties
Definition: listpopupmenu.h:182
seqlinewidget.h
docwindow.h
umlview.h
UMLWidget
The base class for graphical UML objects.
Definition: umlwidget.h:40
WidgetBase::name
QString name() const
Definition: widgetbase.cpp:321
ObjectWidget::topMargin
int topMargin()
Definition: objectwidget.cpp:495
ObjectWidget::tabUp
void tabUp()
Definition: objectwidget.cpp:470
UMLWidget::setPenFromSettings
void setPenFromSettings(QPainter &p)
Definition: umlwidget.cpp:1405
SeqLineWidget::setupDestructionBox
void setupDestructionBox()
Definition: seqlinewidget.cpp:138
ObjectWidget::messageAdded
void messageAdded(MessageWidget *message)
Definition: objectwidget.cpp:564
UMLWidget::saveToXMI1
virtual void saveToXMI1(QXmlStreamWriter &writer)
Definition: umlwidget.cpp:2145
sequenceLineMargin
static const int sequenceLineMargin
Definition: objectwidget.cpp:49
ObjectWidget::ObjectWidget
ObjectWidget(UMLScene *scene, UMLObject *o)
Definition: objectwidget.cpp:57
DEBUG_REGISTER_DISABLED
#define DEBUG_REGISTER_DISABLED(src)
Definition: debug_utils.h:132
ObjectWidget::resizeCursor
virtual QCursor resizeCursor() const
Definition: objectwidget.cpp:656
ObjectWidget::resizeWidget
virtual void resizeWidget(qreal newW, qreal newH)
Definition: objectwidget.cpp:669
ObjectWidget::tabDown
void tabDown()
Definition: objectwidget.cpp:482
UMLScene::backgroundColor
const QColor & backgroundColor() const
Definition: umlscene.cpp:1371
UMLWidget::setLineColor
virtual void setLineColor(const QColor &color)
Definition: umlwidget.cpp:1150
ObjectWidget::showDestruction
bool showDestruction() const
Definition: objectwidget.cpp:527
UMLWidget::cleanup
virtual void cleanup()
Definition: umlwidget.cpp:1752
DocWindow::updateDocumentation
void updateDocumentation(bool clear=false, bool startup=false)
Definition: docwindow.cpp:273
UMLScene::isCollaborationDiagram
bool isCollaborationDiagram()
Definition: umlscene.h:320
Uml::ID::Type
std::string Type
Definition: basictypes.h:402
ObjectWidget::setDrawAsActor
void setDrawAsActor(bool drawAsActor)
Definition: objectwidget.cpp:230
ObjectWidget::setSelected
void setSelected(bool state)
Definition: objectwidget.cpp:105
UMLWidget::m_oldPos
QPointF m_oldPos
The X/Y position the widget had when the movement started.
Definition: umlwidget.h:333
UMLScene::fillColor
const QColor & fillColor() const
Definition: umlscene.cpp:475
ObjectWidget::moveEvent
virtual void moveEvent(QGraphicsSceneMouseEvent *event)
Definition: objectwidget.cpp:296
ClassPropertiesDialog
Definition: classpropertiesdialog.h:34
UMLObject
The base class for UML objects.
Definition: umlobject.h:74
UMLWidget::FT_UNDERLINE
@ FT_UNDERLINE
Definition: umlwidget.h:224
ObjectWidget::setShowDestruction
void setShowDestruction(bool bShow)
Definition: objectwidget.cpp:515
SeqLineWidget::cleanup
void cleanup()
Definition: seqlinewidget.cpp:103
SeqLineWidget::getLineLength
int getLineLength()
Definition: seqlinewidget.h:54
ObjectWidget::slotMenuSelection
void slotMenuSelection(QAction *action)
Definition: objectwidget.cpp:173
A_MARGIN
#define A_MARGIN
Definition: objectwidget.cpp:41
UMLWidget::getFontMetrics
QFontMetrics & getFontMetrics(UMLWidget::FontType fontType) const
Definition: umlwidget.cpp:1995
WidgetBase::font
virtual QFont font() const
Definition: widgetbase.cpp:555
ObjectWidget::slotFillColorChanged
virtual void slotFillColorChanged(Uml::ID::Type viewID)
Definition: objectwidget.cpp:360
ObjectWidget::getEndLineY
int getEndLineY()
Definition: objectwidget.cpp:549
ObjectWidget::m_showDestruction
bool m_showDestruction
show object destruction on sequence diagram line
Definition: objectwidget.h:113
IDChangeLog
Definition: idchangelog.h:26
WidgetBase::fillColor
QColor fillColor() const
Definition: widgetbase.cpp:389
UMLWidget::sigWidgetMoved
void sigWidgetMoved(Uml::ID::Type id)
Definition: moc_umlwidget.cpp:176
UMLWidget::setX
virtual void setX(qreal x)
Definition: umlwidget.cpp:1731
ObjectWidget::setLineColorCmd
virtual void setLineColorCmd(const QColor &color)
Definition: objectwidget.cpp:631
MessageWidgetList
QList< QPointer< MessageWidget > > MessageWidgetList
Definition: messagewidgetlist.h:18
UMLWidget::setSelected
virtual void setSelected(bool _select)
Definition: umlwidget.cpp:1586
UMLApp::docWindow
DocWindow * docWindow() const
Definition: uml.cpp:1900
WidgetBase::m_nLocalID
Uml::ID::Type m_nLocalID
Definition: widgetbase.h:333
objectwidget.h
ObjectWidget::setX
virtual void setX(qreal x)
Definition: objectwidget.cpp:265
ObjectWidget::minimumSize
QSizeF minimumSize() const
Definition: objectwidget.cpp:201
umlwidget.h
UMLScene::type
Uml::DiagramType::Enum type() const
Definition: umlscene.cpp:427
SeqLineWidget
Widget class for graphical representation of sequence lines.
Definition: seqlinewidget.h:33
ListPopupMenu::MenuType
MenuType
< This type hosts all possible menu entry types
Definition: listpopupmenu.h:43
ListPopupMenu::mt_Down
@ mt_Down
Definition: listpopupmenu.h:218
messagewidget.h
ObjectWidget::centerX
qreal centerX()
Definition: objectwidget.cpp:288
UMLScene::lineColor
const QColor & lineColor() const
Definition: umlscene.cpp:494
UMLWidget::setFillColor
virtual void setFillColor(const QColor &color)
Definition: umlwidget.cpp:1181
A_HEIGHT
#define A_HEIGHT
Definition: objectwidget.cpp:40
ObjectWidget::showPropertiesDialog
virtual bool showPropertiesDialog()
Definition: objectwidget.cpp:385
int
int int y int
Definition: cxx11-lambda-functions-and-expressions.h:4
WidgetBase::m_scene
UMLScene * m_scene
Definition: widgetbase.h:317
ObjectWidget::mouseMoveEvent
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *me)
Definition: objectwidget.cpp:323
ObjectWidget::paintActor
void paintActor(QPainter *p)
Definition: objectwidget.cpp:437
UMLApp::app
static UMLApp * app()
Definition: uml.cpp:280
ObjectWidget::~ObjectWidget
virtual ~ObjectWidget()
Definition: objectwidget.cpp:75
WidgetBase::useFillColor
bool useFillColor()
Definition: widgetbase.cpp:431
O_WIDTH
#define O_WIDTH
Definition: objectwidget.cpp:38
UMLWidget::setLineColorCmd
virtual void setLineColorCmd(const QColor &color)
Definition: umlwidget.cpp:1141
UMLDoc::setModified
void setModified(bool modified=true)
Definition: umldoc.cpp:3098
ObjectWidget::moveWidgetBy
virtual void moveWidgetBy(qreal diffX, qreal diffY)
Definition: objectwidget.cpp:128
WidgetBase
Common base class for UMLWidget and AssociationWidget.
Definition: widgetbase.h:105
UMLWidget::mousePressEvent
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event)
Definition: umlwidget.cpp:366
ObjectWidget::m_drawAsActor
bool m_drawAsActor
object should be drawn as an Actor or an Object
Definition: objectwidget.h:112
ObjectWidget::constrainMovementForAllWidgets
virtual void constrainMovementForAllWidgets(qreal &diffX, qreal &diffY)
Definition: objectwidget.cpp:144
Uml::DiagramType::Sequence
@ Sequence
Definition: basictypes.h:100
ObjectWidget::activate
bool activate(IDChangeLog *ChangeLog=0)
Definition: objectwidget.cpp:249
UMLWidget::setY
virtual void setY(qreal y)
Definition: umlwidget.cpp:1743
UMLWidget::adjustAssocs
virtual void adjustAssocs(qreal dx, qreal dy)
Definition: umlwidget.cpp:1323
UMLWidget::m_instanceName
QString m_instanceName
instance name (used if on a deployment diagram)
Definition: umlwidget.h:299
ObjectWidget::messageOverlap
bool messageOverlap(qreal y, MessageWidget *messageWidget)
Definition: objectwidget.cpp:612
DocWindow::showDocumentation
void showDocumentation(UMLObject *object, bool overwrite=false)
Definition: docwindow.cpp:130
ObjectWidget::m_pLine
SeqLineWidget * m_pLine
Definition: objectwidget.h:110
ObjectWidget::moveDestructionBy
void moveDestructionBy(qreal diffY)
Definition: objectwidget.cpp:348
DEBUG
#define DEBUG(src)
Definition: debug_utils.h:129
WidgetBase::lineColor
QColor lineColor() const
Definition: widgetbase.cpp:368
UMLWidget::m_inResizeArea
bool m_inResizeArea
Definition: umlwidget.h:345
ObjectWidget
Displays an instance of a Concept.
Definition: objectwidget.h:32
uError
#define uError()
Definition: debug_utils.h:123
umlscene.h
uml.h
ListPopupMenu::mt_Up
@ mt_Up
Definition: listpopupmenu.h:217
UMLWidget::setSize
void setSize(qreal width, qreal height)
Definition: umlwidget.cpp:1791
ObjectWidget::loadFromXMI1
virtual bool loadFromXMI1(QDomElement &qElement)
Definition: objectwidget.cpp:691
debug_utils.h
UMLScene
Definition: umlscene.h:69
ListPopupMenu::typeFromAction
static MenuType typeFromAction(QAction *action)
Definition: listpopupmenu.cpp:412
DBG_SRC
#define DBG_SRC
Definition: import_utils.cpp:43
ObjectWidget::drawAsActor
bool drawAsActor() const
Definition: objectwidget.cpp:241
WidgetBase::lineWidth
uint lineWidth() const
Definition: widgetbase.cpp:410
UMLWidget::updateGeometry
void updateGeometry(bool withAssocs=true)
Definition: umlwidget.cpp:1827
ObjectWidget::saveToXMI1
virtual void saveToXMI1(QXmlStreamWriter &writer)
Definition: objectwidget.cpp:678
umlobject.h
classpropertiesdialog.h
SeqLineWidget::setStartPoint
void setStartPoint(int startX, int startY)
Definition: seqlinewidget.cpp:114
listpopupmenu.h
ObjectWidget::setY
virtual void setY(qreal y)
Definition: objectwidget.cpp:277
ObjectWidget::multipleInstance
bool multipleInstance() const
Definition: objectwidget.cpp:100
ObjectWidget::mousePressEvent
virtual void mousePressEvent(QGraphicsSceneMouseEvent *me)
Definition: objectwidget.cpp:308
ObjectWidget::setEndLine
void setEndLine(int yPosition)
Definition: objectwidget.cpp:537
O_MARGIN
#define O_MARGIN
Definition: objectwidget.cpp:37
UMLScene::isSequenceDiagram
bool isSequenceDiagram()
Definition: umlscene.h:319
dialog_utils.h
UMLWidget::mouseMoveEvent
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event)
Definition: umlwidget.cpp:465
ObjectWidget::paint
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=0)
Definition: objectwidget.cpp:155
ObjectWidget::canTabUp
bool canTabUp()
Definition: objectwidget.cpp:505
ObjectWidget::cleanup
void cleanup()
Definition: objectwidget.cpp:372
SeqLineWidget::onDestructionBox
bool onDestructionBox(const QPointF &p)
Definition: seqlinewidget.cpp:82
UMLWidget::width
qreal width() const
Definition: umlwidget.h:124
SeqLineWidget::setLineColorCmd
void setLineColorCmd(const QColor &color)
Definition: seqlinewidget.cpp:203
MessageWidget
Displays a message.
Definition: messagewidget.h:40
SeqLineWidget::setEndOfLine
void setEndOfLine(int yPosition)
Definition: seqlinewidget.cpp:187
UMLWidget::loadFromXMI1
virtual bool loadFromXMI1(QDomElement &qElement)
Definition: umlwidget.cpp:2168
UMLWidget::slotMenuSelection
virtual void slotMenuSelection(QAction *action)
Definition: umlwidget.cpp:781
UMLApp::document
UMLDoc * document() const
Definition: uml.cpp:1068
umldoc.h
ObjectWidget::sequentialLine
SeqLineWidget * sequentialLine() const
Definition: objectwidget.cpp:644
UMLWidget::activate
virtual bool activate(IDChangeLog *changeLog=0)
Definition: umlwidget.cpp:1205
ObjectWidget::paintObject
void paintObject(QPainter *p)
Definition: objectwidget.cpp:403
UMLWidget::paint
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=0)
Definition: umlwidget.cpp:1915
ObjectWidget::m_messages
MessageWidgetList m_messages
message widgets with an end on this widget
Definition: objectwidget.h:115
ObjectWidget::m_isOnDestructionBox
bool m_isOnDestructionBox
true when a click occurred on the destruction box
Definition: objectwidget.h:114