umbrello  2.39.2
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
umllistview.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 UMLLISTVIEW_H
7 #define UMLLISTVIEW_H
8 
9 #include "basictypes.h"
10 #include "umllistviewitem.h"
11 #include "umllistviewitemlist.h"
12 #include "icon_utils.h"
13 #include "umlobject.h"
14 
15 #include <QDomDocument>
16 #include <QDomElement>
17 #include <QTreeWidget>
18 #include <QTreeWidgetItem>
19 #include <QXmlStreamWriter>
20 
21 class QEvent;
22 class QMouseEvent;
23 class QFocusEvent;
24 class QKeyEvent;
25 class QDropEvent;
26 class UMLClassifier;
27 class UMLDoc;
28 class UMLView;
30 class UMLDragData;
31 
42 class UMLListView : public QTreeWidget
43 {
44  Q_OBJECT
45 public:
46  explicit UMLListView(QWidget *parent = 0);
47  ~UMLListView();
48 
49  void setDocument(UMLDoc * doc);
50  UMLDoc * document() const;
51 
52  void init();
53  void clean();
54 
55  void setView(UMLView* view);
56 
57  void setTitle(int column, const QString &text);
58 
61  int selectedItemsCount() const;
62 
64 
66 
68 
71 
72  static bool mayHaveChildItems(UMLObject::ObjectType type);
73 
75 
76  UMLListViewItem * findUMLObject(const UMLObject *p) const;
79 
81 
83 
84  bool isUnique(UMLListViewItem * item, const QString &name) const;
85 
86  void setStartedCut(bool startedCut);
87  void setStartedCopy(bool startedCopy);
88  bool startedCopy() const;
89 
91  UMLListViewItem *newParent);
92 
93  void closeDatatypesFolder();
94 
101 
103 
104  void saveToXMI(QXmlStreamWriter& writer);
105  bool loadFromXMI(QDomElement & element);
106  bool loadChildrenFromXMI(UMLListViewItem * parent, QDomElement & element);
107 
108  friend QDebug operator<<(QDebug out, const UMLListView& view);
109 
110 protected:
111  bool event(QEvent *e);
112  void mouseReleaseEvent(QMouseEvent *me);
113  void mousePressEvent(QMouseEvent *me);
114  void mouseMoveEvent(QMouseEvent *me);
115  void mouseDoubleClickEvent(QMouseEvent *me);
116  void focusOutEvent (QFocusEvent *fe);
117  void contextMenuEvent(QContextMenuEvent *event);
119 
120  bool acceptDrag(QDropEvent* event) const;
121  void keyPressEvent(QKeyEvent* ke);
122  void dragEnterEvent(QDragEnterEvent* event);
123  void dragMoveEvent(QDragMoveEvent* event);
124  void dropEvent(QDropEvent* event);
125  void commitData(QWidget *editor);
126 
128 
130 
131  void deleteChildrenOf(UMLListViewItem *parent);
132 
133  bool deleteItem(UMLListViewItem *temp);
134 
136 
137  void addAtContainer(UMLListViewItem *item, UMLListViewItem *parent);
138 
139 public slots:
143  void slotObjectCreated(UMLObject* object);
144  void slotObjectRemoved(UMLObject* object);
145 
146  void connectNewObjectsSlots(UMLObject* object);
147 
150 
151  void slotObjectChanged();
152 
153  void slotMenuSelection(QAction* action, const QPoint &position = QPoint());
154 
155  void slotDropped(QDropEvent* de, UMLListViewItem* target);
156 
157  void expandAll(UMLListViewItem *item);
158  void collapseAll(UMLListViewItem *item);
159 
160  void slotCutSuccessful();
162 
163 protected slots:
165  void slotExpanded(QTreeWidgetItem* item);
166  void slotCollapsed(QTreeWidgetItem* item);
167 
168 private:
171 
172  void setBackgroundColor(const QColor & color);
173 
183  QMimeData* m_dragCopyData;
184  QList<QTreeWidgetItem*> m_findItems;
185 };
186 
187 #endif
A base class for classifier list items (e.g. attributes)
Definition: classifierlistitem.h:25
Information for a non-graphical Concept/Class.
Definition: classifier.h:35
Definition: umldoc.h:63
Definition: umldragdata.h:33
Items used by UMLListView.
Definition: umllistviewitem.h:36
ListViewType
Definition: umllistviewitem.h:39
Displays the list view for the program.
Definition: umllistview.h:43
void setDocument(UMLDoc *doc)
Definition: umllistview.cpp:1197
void slotDropped(QDropEvent *de, UMLListViewItem *target)
Definition: umllistview.cpp:1936
UMLListViewItem * theUseCaseView()
Definition: umllistview.h:97
void slotExpanded(QTreeWidgetItem *item)
Definition: umllistview.cpp:2183
void setBackgroundColor(const QColor &color)
Definition: umllistview.cpp:2936
void dragEnterEvent(QDragEnterEvent *event)
Definition: umllistview.cpp:2865
UMLListViewItem * findView(UMLView *v)
Definition: umllistview.cpp:1334
UMLDoc * document() const
Definition: umllistview.cpp:2097
void slotCutSuccessful()
Definition: umllistview.cpp:2210
void init()
Definition: umllistview.cpp:1415
UMLListViewItem * moveObject(Uml::ID::Type srcId, UMLListViewItem::ListViewType srcType, UMLListViewItem *newParent)
Definition: umllistview.cpp:1630
void slotItemSelectionChanged()
Definition: umllistview.cpp:155
UMLListViewItem * theLogicalView()
Definition: umllistview.h:96
UMLListViewItem * m_settingsFolder
settings root
Definition: umllistview.h:177
void slotObjectRemoved(UMLObject *object)
Definition: umllistview.cpp:1215
void slotDiagramRemoved(Uml::ID::Type id)
Definition: umllistview.cpp:1230
void addNewItem(UMLListViewItem *parent, UMLListViewItem::ListViewType type)
Definition: umllistview.cpp:2236
void dropEvent(QDropEvent *event)
Definition: umllistview.cpp:2887
void slotDiagramRenamed(Uml::ID::Type id)
Definition: umllistview.cpp:1180
UMLListViewItem * theComponentView()
Definition: umllistview.h:98
static bool mayHaveChildItems(UMLObject::ObjectType type)
Definition: umllistview.cpp:920
bool loadChildrenFromXMI(UMLListViewItem *parent, QDomElement &element)
Definition: umllistview.cpp:2475
bool m_bStartedCopy
Definition: umllistview.h:180
void mousePressEvent(QMouseEvent *me)
Definition: umllistview.cpp:197
bool deleteItem(UMLListViewItem *temp)
Definition: umllistview.cpp:2802
bool event(QEvent *e)
Definition: umllistview.cpp:177
static bool isExpandable(UMLListViewItem::ListViewType lvt)
Definition: umllistview.cpp:2164
void keyPressEvent(QKeyEvent *ke)
Definition: umllistview.cpp:302
UMLListViewItem * findFolderForDiagram(Uml::DiagramType::Enum dt) const
Definition: umllistview.cpp:796
UMLListViewItem * createDiagramItem(UMLView *view)
Definition: umllistview.cpp:2017
bool acceptDrag(QDropEvent *event) const
Definition: umllistview.cpp:1527
void contextMenuEvent(QContextMenuEvent *event)
Definition: umllistview.cpp:2118
void focusOutEvent(QFocusEvent *fe)
Definition: umllistview.cpp:2106
bool loadFromXMI(QDomElement &element)
Definition: umllistview.cpp:2448
int selectedItemsCount() const
Definition: umllistview.cpp:2088
void slotDeleteSelectedItems()
Definition: umllistview.cpp:2223
void slotCollapsed(QTreeWidgetItem *item)
Definition: umllistview.cpp:2196
bool startedCopy() const
Definition: umllistview.cpp:2733
UMLListViewItem * recursiveSearchForView(UMLListViewItem *folder, UMLListViewItem::ListViewType type, Uml::ID::Type id)
Definition: umllistview.cpp:1374
void deleteChildrenOf(UMLListViewItem *parent)
Definition: umllistview.cpp:2777
UMLListViewItem * findItem(Uml::ID::Type id)
Definition: umllistview.cpp:1400
UMLListViewItem * m_datatypeFolder
Definition: umllistview.h:176
bool isUnique(UMLListViewItem *item, const QString &name) const
Definition: umllistview.cpp:2330
void setView(UMLView *view)
Definition: umllistview.cpp:1479
UMLListViewItem * theDeploymentView()
Definition: umllistview.h:99
bool m_bCreatingChildObject
when creating an attribute or an operation to stop it adding a second listViewItem
Definition: umllistview.h:181
~UMLListView()
Definition: umllistview.cpp:134
void childObjectAdded(UMLClassifierListItem *child, UMLClassifier *parent)
Definition: umllistview.cpp:1131
void connectNewObjectsSlots(UMLObject *object)
Definition: umllistview.cpp:1015
UMLListViewItem * findUMLObjectInFolder(UMLListViewItem *folder, UMLObject *obj)
Definition: umllistview.cpp:1265
UMLListViewItemList selectedItemsRoot() const
Definition: umllistview.cpp:1991
void commitData(QWidget *editor)
Definition: umllistview.cpp:2903
void expandAll(UMLListViewItem *item)
Definition: umllistview.cpp:2689
void childObjectRemoved(UMLClassifierListItem *obj)
Definition: umllistview.cpp:1165
void clean()
Definition: umllistview.cpp:1465
UMLListViewItem::ListViewType rootViewType(UMLListViewItem *item)
Definition: umllistview.cpp:2141
void mouseDoubleClickEvent(QMouseEvent *me)
Definition: umllistview.cpp:1491
bool createItem(UMLListViewItem *item)
void dragMoveEvent(QDragMoveEvent *event)
Definition: umllistview.cpp:2873
UMLListViewItem * determineParentItem(UMLObject *object) const
Definition: umllistview.cpp:856
UMLDoc * m_doc
Definition: umllistview.h:178
void slotObjectCreated(UMLObject *object)
Definition: umllistview.cpp:943
friend QDebug operator<<(QDebug out, const UMLListView &view)
Definition: umllistview.cpp:2946
UMLDragData * getDragData()
Definition: umllistview.cpp:1240
void saveToXMI(QXmlStreamWriter &writer)
Definition: umllistview.cpp:2438
QPoint m_dragStartPosition
Definition: umllistview.h:182
void setStartedCopy(bool startedCopy)
Definition: umllistview.cpp:2725
void setStartedCut(bool startedCut)
Definition: umllistview.cpp:2715
UMLListViewItem * m_rv
root view (home)
Definition: umllistview.h:174
UMLListView(QWidget *parent=0)
Definition: umllistview.cpp:89
QMimeData * m_dragCopyData
Definition: umllistview.h:183
void addAtContainer(UMLListViewItem *item, UMLListViewItem *parent)
Definition: umllistview.cpp:1601
UMLListViewItem * theRootView()
Definition: umllistview.h:95
UMLListViewItem * m_lv[Uml::ModelType::N_MODELTYPES]
predefined list view roots
Definition: umllistview.h:175
void closeDatatypesFolder()
Definition: umllistview.cpp:2792
QList< QTreeWidgetItem * > m_findItems
Definition: umllistview.h:184
void slotObjectChanged()
Definition: umllistview.cpp:1103
UMLListViewItem * theDatatypeFolder()
Definition: umllistview.h:100
void setTitle(int column, const QString &text)
Definition: umllistview.cpp:147
UMLListViewItem * rootView(UMLListViewItem::ListViewType type)
Definition: umllistview.cpp:2742
void mouseReleaseEvent(QMouseEvent *me)
Definition: umllistview.cpp:278
void slotDiagramCreated(Uml::ID::Type id)
Definition: umllistview.cpp:827
UMLListViewItemList selectedItems() const
Definition: umllistview.cpp:1970
void slotMenuSelection(QAction *action, const QPoint &position=QPoint())
Definition: umllistview.cpp:322
void collapseAll(UMLListViewItem *item)
Definition: umllistview.cpp:2701
void changeIconOf(UMLObject *o, Icon_Utils::IconType to)
Definition: umllistview.cpp:1322
bool m_bStartedCut
Definition: umllistview.h:179
UMLListViewItem * findUMLObject(const UMLObject *p) const
Definition: umllistview.cpp:1310
void mouseMoveEvent(QMouseEvent *me)
Definition: umllistview.cpp:243
The base class for UML objects.
Definition: umlobject.h:70
ObjectType
Definition: umlobject.h:76
Definition: umlview.h:30
std::vector< std::string > v
Definition: cxx11-initializer-lists.h:19
IconType
Definition: icon_utils.h:25
Enum
Definition: basictypes.h:63
std::string Type
Definition: basictypes.h:371
@ N_MODELTYPES
Definition: basictypes.h:33
@ Logical
Definition: basictypes.h:28
@ UseCase
Definition: basictypes.h:29
@ Deployment
Definition: basictypes.h:31
@ Component
Definition: basictypes.h:30
QList< UMLListViewItem * > UMLListViewItemList
Definition: umllistviewitemlist.h:12