umbrello  2.32.0
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  * 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 UMLLISTVIEW_H
12 #define UMLLISTVIEW_H
13 
14 #include "basictypes.h"
15 #include "umllistviewitem.h"
16 #include "umllistviewitemlist.h"
17 #include "icon_utils.h"
18 #include "umlobject.h"
19 
20 #include <QDomDocument>
21 #include <QDomElement>
22 #include <QTreeWidget>
23 #include <QTreeWidgetItem>
24 
25 class QEvent;
26 class QMouseEvent;
27 class QFocusEvent;
28 class QKeyEvent;
29 class QDropEvent;
30 class UMLClassifier;
31 class UMLDoc;
32 class UMLView;
34 class UMLDragData;
35 
46 class UMLListView : public QTreeWidget
47 {
48  Q_OBJECT
49 public:
50  explicit UMLListView(QWidget *parent = 0);
51  ~UMLListView();
52 
53  void setDocument(UMLDoc * doc);
54  UMLDoc * document() const;
55 
56  void init();
57  void clean();
58 
59  void setView(UMLView* view);
60 
61  void setTitle(int column, const QString &text);
62 
65  int selectedItemsCount();
66 
68 
69  bool createItem(UMLListViewItem *item);
70 
72 
75 
76  static bool mayHaveChildItems(UMLObject::ObjectType type);
77 
79 
80  UMLListViewItem * findUMLObject(const UMLObject *p) const;
83 
85 
87 
88  bool isUnique(UMLListViewItem * item, const QString &name);
89 
90  void setStartedCut(bool startedCut);
91  void setStartedCopy(bool startedCopy);
92  bool startedCopy() const;
93 
95  UMLListViewItem *newParent);
96 
97  void closeDatatypesFolder();
98 
105 
107 
108  void saveToXMI1(QDomDocument & qDoc, QDomElement & qElement);
109  bool loadFromXMI1(QDomElement & element);
110  bool loadChildrenFromXMI(UMLListViewItem * parent, QDomElement & element);
111 
112  friend QDebug operator<<(QDebug out, const UMLListView& view);
113 
114 protected:
115  bool event(QEvent *e);
116  void mouseReleaseEvent(QMouseEvent *me);
117  void mousePressEvent(QMouseEvent *me);
118  void mouseMoveEvent(QMouseEvent *me);
119  void mouseDoubleClickEvent(QMouseEvent *me);
120  void focusOutEvent (QFocusEvent *fe);
121  void contextMenuEvent(QContextMenuEvent *event);
123 
124  bool acceptDrag(QDropEvent* event) const;
125  void keyPressEvent(QKeyEvent* ke);
126  void dragEnterEvent(QDragEnterEvent* event);
127  void dragMoveEvent(QDragMoveEvent* event);
128  void dropEvent(QDropEvent* event);
129  void commitData(QWidget *editor);
130 
132 
134 
135  void deleteChildrenOf(UMLListViewItem *parent);
136 
137  bool deleteItem(UMLListViewItem *temp);
138 
140 
141  void addAtContainer(UMLListViewItem *item, UMLListViewItem *parent);
142 
143 public slots:
147  void slotObjectCreated(UMLObject* object);
148  void slotObjectRemoved(UMLObject* object);
149 
150  void connectNewObjectsSlots(UMLObject* object);
151 
154 
155  void slotObjectChanged();
156 
157  void slotMenuSelection(QAction* action, const QPoint &position = QPoint());
158 
159  void slotDropped(QDropEvent* de, UMLListViewItem* target);
160 
161  void expandAll(UMLListViewItem *item);
162  void collapseAll(UMLListViewItem *item);
163 
164  void slotCutSuccessful();
166 
167 protected slots:
169  void slotExpanded(QTreeWidgetItem* item);
170  void slotCollapsed(QTreeWidgetItem* item);
171 
172 private:
175 
176  void setBackgroundColor(const QColor & color);
177 
187  QMimeData* m_dragCopyData;
188  QList<QTreeWidgetItem*> m_findItems;
189 };
190 
191 #endif
void setStartedCut(bool startedCut)
Definition: umllistview.cpp:2657
Items used by UMLListView.
Definition: umllistviewitem.h:39
void commitData(QWidget *editor)
Definition: umllistview.cpp:2845
void slotDeleteSelectedItems()
Definition: umllistview.cpp:2202
Information for a non-graphical Concept/Class.
Definition: classifier.h:39
UMLDoc * m_doc
Definition: umllistview.h:182
void slotItemSelectionChanged()
Definition: umllistview.cpp:166
UMLListViewItem * m_datatypeFolder
Definition: umllistview.h:180
UMLListViewItem * determineParentItem(UMLObject *object) const
Definition: umllistview.cpp:879
void deleteChildrenOf(UMLListViewItem *parent)
Definition: umllistview.cpp:2719
void slotObjectRemoved(UMLObject *object)
Definition: umllistview.cpp:1219
void slotMenuSelection(QAction *action, const QPoint &position=QPoint())
Definition: umllistview.cpp:329
A base class for classifier list items (e.g. attributes)
Definition: classifierlistitem.h:29
bool m_bCreatingChildObject
when creating an attribute or an operation to stop it adding a second listViewItem ...
Definition: umllistview.h:185
std::vector< std::string > v
Definition: cxx11-initializer-lists.h:19
Definition: basictypes.h:44
~UMLListView()
Definition: umllistview.cpp:145
Definition: umlview.h:34
bool acceptDrag(QDropEvent *event) const
Definition: umllistview.cpp:1532
UMLListViewItem * findFolderForDiagram(Uml::DiagramType::Enum dt)
Definition: umllistview.cpp:820
void clean()
Definition: umllistview.cpp:1471
bool m_bStartedCopy
Definition: umllistview.h:184
void dragEnterEvent(QDragEnterEvent *event)
Definition: umllistview.cpp:2807
void addAtContainer(UMLListViewItem *item, UMLListViewItem *parent)
Definition: umllistview.cpp:1601
void mouseDoubleClickEvent(QMouseEvent *me)
Definition: umllistview.cpp:1496
UMLListViewItemList selectedItemsRoot()
Definition: umllistview.cpp:1972
static bool mayHaveChildItems(UMLObject::ObjectType type)
Definition: umllistview.cpp:937
void childObjectRemoved(UMLClassifierListItem *obj)
Definition: umllistview.cpp:1169
UMLListViewItem * findUMLObjectInFolder(UMLListViewItem *folder, UMLObject *obj)
Definition: umllistview.cpp:1269
void init()
Definition: umllistview.cpp:1419
UMLListView(QWidget *parent=0)
Definition: umllistview.cpp:100
void dropEvent(QDropEvent *event)
Definition: umllistview.cpp:2829
void slotDiagramRenamed(Uml::ID::Type id)
Definition: umllistview.cpp:1184
void expandAll(UMLListViewItem *item)
Definition: umllistview.cpp:2631
The base class for UML objects.
Definition: umlobject.h:73
void focusOutEvent(QFocusEvent *fe)
Definition: umllistview.cpp:2085
bool event(QEvent *e)
Definition: umllistview.cpp:188
void slotDiagramRemoved(Uml::ID::Type id)
Definition: umllistview.cpp:1234
Displays the list view for the program.
Definition: umllistview.h:46
void setStartedCopy(bool startedCopy)
Definition: umllistview.cpp:2667
UMLListViewItem * theComponentView()
Definition: umllistview.h:102
UMLDoc * document() const
Definition: umllistview.cpp:2076
UMLListViewItem * theDatatypeFolder()
Definition: umllistview.h:104
UMLListViewItem * theLogicalView()
Definition: umllistview.h:100
UMLListViewItem * theUseCaseView()
Definition: umllistview.h:101
void addNewItem(UMLListViewItem *parent, UMLListViewItem::ListViewType type)
Definition: umllistview.cpp:2215
Enum
Definition: basictypes.h:77
bool isUnique(UMLListViewItem *item, const QString &name)
Definition: umllistview.cpp:2290
void closeDatatypesFolder()
Definition: umllistview.cpp:2735
void slotCollapsed(QTreeWidgetItem *item)
Definition: umllistview.cpp:2175
UMLListViewItemList selectedItems()
Definition: umllistview.cpp:1952
void slotCutSuccessful()
Definition: umllistview.cpp:2189
bool createItem(UMLListViewItem *item)
UMLListViewItem * rootView(UMLListViewItem::ListViewType type)
Definition: umllistview.cpp:2684
bool startedCopy() const
Definition: umllistview.cpp:2675
void contextMenuEvent(QContextMenuEvent *event)
Definition: umllistview.cpp:2097
UMLListViewItem * findItem(Uml::ID::Type id)
Definition: umllistview.cpp:1404
Definition: basictypes.h:43
UMLDragData * getDragData()
Definition: umllistview.cpp:1244
std::string Type
Definition: basictypes.h:351
void collapseAll(UMLListViewItem *item)
Definition: umllistview.cpp:2643
UMLListViewItem * moveObject(Uml::ID::Type srcId, UMLListViewItem::ListViewType srcType, UMLListViewItem *newParent)
Definition: umllistview.cpp:1630
UMLListViewItem * recursiveSearchForView(UMLListViewItem *folder, UMLListViewItem::ListViewType type, Uml::ID::Type id)
Definition: umllistview.cpp:1378
QList< QTreeWidgetItem * > m_findItems
Definition: umllistview.h:188
QPoint m_dragStartPosition
Definition: umllistview.h:186
void slotDiagramCreated(Uml::ID::Type id)
Definition: umllistview.cpp:851
void connectNewObjectsSlots(UMLObject *object)
Definition: umllistview.cpp:1022
void dragMoveEvent(QDragMoveEvent *event)
Definition: umllistview.cpp:2815
ObjectType
Definition: umlobject.h:79
bool loadFromXMI1(QDomElement &element)
Definition: umllistview.cpp:2409
Definition: basictypes.h:47
bool deleteItem(UMLListViewItem *temp)
Definition: umllistview.cpp:2745
void slotObjectChanged()
Definition: umllistview.cpp:1108
UMLListViewItem * findView(UMLView *v)
Definition: umllistview.cpp:1338
UMLListViewItem * m_rv
root view (home)
Definition: umllistview.h:178
void setView(UMLView *view)
Definition: umllistview.cpp:1484
void saveToXMI1(QDomDocument &qDoc, QDomElement &qElement)
Definition: umllistview.cpp:2399
static bool isExpandable(UMLListViewItem::ListViewType lvt)
Definition: umllistview.cpp:2143
void slotDropped(QDropEvent *de, UMLListViewItem *target)
Definition: umllistview.cpp:1918
friend QDebug operator<<(QDebug out, const UMLListView &view)
Definition: umllistview.cpp:2887
Definition: basictypes.h:42
void changeIconOf(UMLObject *o, Icon_Utils::IconType to)
Definition: umllistview.cpp:1326
QMimeData * m_dragCopyData
Definition: umllistview.h:187
void mouseMoveEvent(QMouseEvent *me)
Definition: umllistview.cpp:251
UMLListViewItem * theDeploymentView()
Definition: umllistview.h:103
bool m_bStartedCut
Definition: umllistview.h:183
void slotExpanded(QTreeWidgetItem *item)
Definition: umllistview.cpp:2162
void setBackgroundColor(const QColor &color)
Definition: umllistview.cpp:2877
void setTitle(int column, const QString &text)
Definition: umllistview.cpp:158
ListViewType
Definition: umllistviewitem.h:42
int selectedItemsCount()
Definition: umllistview.cpp:2067
Definition: umldragdata.h:37
UMLListViewItem * m_settingsFolder
settings root
Definition: umllistview.h:181
IconType
Definition: icon_utils.h:46
void mouseReleaseEvent(QMouseEvent *me)
Definition: umllistview.cpp:285
QList< UMLListViewItem * > UMLListViewItemList
Definition: umllistviewitemlist.h:24
void slotObjectCreated(UMLObject *object)
Definition: umllistview.cpp:958
Definition: basictypes.h:45
UMLListViewItem * m_lv[Uml::ModelType::N_MODELTYPES]
predefined list view roots
Definition: umllistview.h:179
void mousePressEvent(QMouseEvent *me)
Definition: umllistview.cpp:208
UMLListViewItem * theRootView()
Definition: umllistview.h:99
void setDocument(UMLDoc *doc)
Definition: umllistview.cpp:1201
UMLListViewItem::ListViewType rootViewType(UMLListViewItem *item)
Definition: umllistview.cpp:2120
bool loadChildrenFromXMI(UMLListViewItem *parent, QDomElement &element)
Definition: umllistview.cpp:2436
UMLListViewItem * createDiagramItem(UMLView *view)
Definition: umllistview.cpp:1998
void childObjectAdded(UMLClassifierListItem *child, UMLClassifier *parent)
Definition: umllistview.cpp:1136
void keyPressEvent(QKeyEvent *ke)
Definition: umllistview.cpp:309
Definition: umldoc.h:74
UMLListViewItem * findUMLObject(const UMLObject *p) const
Definition: umllistview.cpp:1314