umbrello  2.39.2
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
combinedfragmentwidget.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 COMBINEDFRAGMENTWIDGET_H
7 #define COMBINEDFRAGMENTWIDGET_H
8 
9 #include "umlwidget.h"
10 #include "worktoolbar.h"
11 #include "floatingdashlinewidget.h"
12 
13 #include <QList>
14 
28 {
29  Q_OBJECT
30 
31 public:
33  {
34  Ref = 0,
35  Opt,
38  Neg,
40  Ass,
41  Alt,
42  Par
43  };
44 
45  explicit CombinedFragmentWidget(UMLScene * scene,
46  CombinedFragmentType combinedfragmentType = Ref,
48  virtual ~CombinedFragmentWidget();
49 
50  virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
51 
53  CombinedFragmentType combinedFragmentType(const QString& combinedfragmentType) const;
54  void setCombinedFragmentType(CombinedFragmentType combinedfragmentType);
55  void setCombinedFragmentType(const QString& combinedfragmentType);
56 
57  void askNameForWidgetType(UMLWidget* &targetWidget, const QString& dialogTitle,
58  const QString& dialogPrompt, const QString& defaultName);
59 
60  void saveToXMI(QXmlStreamWriter& writer);
61  bool loadFromXMI(QDomElement & qElement);
63 
64  virtual void cleanup();
65 
66  virtual bool activate(IDChangeLog* ChangeLog = 0);
67 
68  virtual QRectF boundingRect() const;
69  virtual QPainterPath shape() const;
70 
71 public slots:
72  void slotMenuSelection(QAction* action);
73 
74 
75 protected:
76  QSizeF minimumSize() const;
77  void toForeground();
78 
81 
82 private:
83  void setDashLineGeometryAndPosition() const;
84 
86  QList<FloatingDashLineWidget*> m_dashLines;
87  qreal m_labelWidth;
88 };
89 
90 #endif
A graphical version of a UML combined fragment.
Definition: combinedfragmentwidget.h:28
void toForeground()
Definition: combinedfragmentwidget.cpp:484
void slotMenuSelection(QAction *action)
Definition: combinedfragmentwidget.cpp:401
CombinedFragmentType combinedFragmentType() const
Definition: combinedfragmentwidget.cpp:215
void askNameForWidgetType(UMLWidget *&targetWidget, const QString &dialogTitle, const QString &dialogPrompt, const QString &defaultName)
Definition: combinedfragmentwidget.cpp:275
void setCombinedFragmentType(CombinedFragmentType combinedfragmentType)
Definition: combinedfragmentwidget.cpp:223
CombinedFragmentWidget(UMLScene *scene, CombinedFragmentType combinedfragmentType=Ref, Uml::ID::Type id=Uml::ID::None)
Definition: combinedfragmentwidget.cpp:41
QList< FloatingDashLineWidget * > m_dashLines
Dash lines of an alternative or parallel combined fragment.
Definition: combinedfragmentwidget.h:86
virtual QPainterPath shape() const
Definition: combinedfragmentwidget.cpp:494
virtual ~CombinedFragmentWidget()
Definition: combinedfragmentwidget.cpp:52
void saveToXMI(QXmlStreamWriter &writer)
Definition: combinedfragmentwidget.cpp:318
void setDashLineGeometryAndPosition() const
Definition: combinedfragmentwidget.cpp:471
void removeDashLine(FloatingDashLineWidget *line)
Definition: combinedfragmentwidget.cpp:374
virtual QRectF boundingRect() const
Definition: combinedfragmentwidget.cpp:488
CombinedFragmentType m_CombinedFragment
Type of CombinedFragment.
Definition: combinedfragmentwidget.h:80
virtual bool activate(IDChangeLog *ChangeLog=0)
Definition: combinedfragmentwidget.cpp:457
virtual void cleanup()
Definition: combinedfragmentwidget.cpp:384
QSizeF minimumSize() const
Definition: combinedfragmentwidget.cpp:193
bool loadFromXMI(QDomElement &qElement)
Definition: combinedfragmentwidget.cpp:337
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=0)
Definition: combinedfragmentwidget.cpp:62
CombinedFragmentType
Definition: combinedfragmentwidget.h:33
@ Opt
Definition: combinedfragmentwidget.h:35
@ Loop
Definition: combinedfragmentwidget.h:37
@ Ref
Definition: combinedfragmentwidget.h:34
@ Neg
Definition: combinedfragmentwidget.h:38
@ Break
Definition: combinedfragmentwidget.h:36
@ Par
Definition: combinedfragmentwidget.h:42
@ Alt
Definition: combinedfragmentwidget.h:41
@ Crit
Definition: combinedfragmentwidget.h:39
@ Ass
Definition: combinedfragmentwidget.h:40
qreal m_labelWidth
Definition: combinedfragmentwidget.h:87
A dash line for UML combined fragments.
Definition: floatingdashlinewidget.h:29
Definition: idchangelog.h:22
Definition: umlscene.h:65
The base class for graphical UML objects.
Definition: umlwidget.h:36
const Type None
special value for uninitialized ID
Definition: basictypes.h:373
std::string Type
Definition: basictypes.h:371