umbrello  2.31.90
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 #include <QXmlStreamWriter>
25 
26 class QEvent;
27 class QMouseEvent;
28 class QFocusEvent;
29 class QKeyEvent;
30 class QDropEvent;
31 class UMLClassifier;
32 class UMLDoc;
33 class UMLView;
35 class UMLDragData;
36 
47 class UMLListView : public QTreeWidget
48 {
49  Q_OBJECT
50 public:
51  explicit UMLListView(QWidget *parent = 0);
52  ~UMLListView();
53 
54  void setDocument(UMLDoc * doc);
55  UMLDoc * document() const;
56 
57  void init();
58  void clean();
59 
60  void setView(UMLView* view);
61 
62  void setTitle(int column, const QString &text);
63 
66  int selectedItemsCount();
67 
69 
71 
73 
76 
77  static bool mayHaveChildItems(UMLObject::ObjectType type);
78 
80 
81  UMLListViewItem * findUMLObject(const UMLObject *p) const;
84 
86 
88 
89  bool isUnique(UMLListViewItem * item, const QString &name);
90 
91  void setStartedCut(bool startedCut);
92  void setStartedCopy(bool startedCopy);
93  bool startedCopy() const;
94 
96  UMLListViewItem *newParent);
97 
98  void closeDatatypesFolder();
99 
106 
108 
109  void saveToXMI1(QXmlStreamWriter& writer);
110  bool loadFromXMI1(QDomElement & element);
111  bool loadChildrenFromXMI(UMLListViewItem * parent, QDomElement & element);
112 
113  friend QDebug operator<<(QDebug out, const UMLListView& view);
114 
115 protected:
116  bool event(QEvent *e);
117  void mouseReleaseEvent(QMouseEvent *me);
118  void mousePressEvent(QMouseEvent *me);
119  void mouseMoveEvent(QMouseEvent *me);
120  void mouseDoubleClickEvent(QMouseEvent *me);
121  void focusOutEvent (QFocusEvent *fe);
122  void contextMenuEvent(QContextMenuEvent *event);
124 
125  bool acceptDrag(QDropEvent* event) const;
126  void keyPressEvent(QKeyEvent* ke);
127  void dragEnterEvent(QDragEnterEvent* event);
128  void dragMoveEvent(QDragMoveEvent* event);
129  void dropEvent(QDropEvent* event);
130  void commitData(QWidget *editor);
131 
133 
135 
136  void deleteChildrenOf(UMLListViewItem *parent);
137 
138  bool deleteItem(UMLListViewItem *temp);
139 
141 
142  void addAtContainer(UMLListViewItem *item, UMLListViewItem *parent);
143 
144 public slots:
148  void slotObjectCreated(UMLObject* object);
149  void slotObjectRemoved(UMLObject* object);
150 
151  void connectNewObjectsSlots(UMLObject* object);
152 
155 
156  void slotObjectChanged();
157 
158  void slotMenuSelection(QAction* action, const QPoint &position = QPoint());
159 
160  void slotDropped(QDropEvent* de, UMLListViewItem* target);
161 
162  void expandAll(UMLListViewItem *item);
163  void collapseAll(UMLListViewItem *item);
164 
165  void slotCutSuccessful();
167 
168 protected slots:
170  void slotExpanded(QTreeWidgetItem* item);
171  void slotCollapsed(QTreeWidgetItem* item);
172 
173 private:
176 
177  void setBackgroundColor(const QColor & color);
178 
188  QMimeData* m_dragCopyData;
189  QList<QTreeWidgetItem*> m_findItems;
190 };
191 
192 #endif
A base class for classifier list items (e.g. attributes)
Definition: classifierlistitem.h:30
Information for a non-graphical Concept/Class.
Definition: classifier.h:40
Definition: umldoc.h:75
Definition: umldragdata.h:38
Items used by UMLListView.
Definition: umllistviewitem.h:41
ListViewType
Definition: umllistviewitem.h:44
Displays the list view for the program.
Definition: umllistview.h:48
void setDocument(UMLDoc *doc)
Definition: umllistview.cpp:1217
void slotDropped(QDropEvent *de, UMLListViewItem *target)
Definition: umllistview.cpp:1936
UMLListViewItem * theUseCaseView()
Definition: umllistview.h:102
void slotExpanded(QTreeWidgetItem *item)
Definition: umllistview.cpp:2180
void setBackgroundColor(const QColor &color)
Definition: umllistview.cpp:2934
void dragEnterEvent(QDragEnterEvent *event)
Definition: umllistview.cpp:2864
UMLListViewItem * findView(UMLView *v)
Definition: umllistview.cpp:1354
bool loadFromXMI1(QDomElement &element)
Definition: umllistview.cpp:2451
UMLDoc * document() const
Definition: umllistview.cpp:2094
void slotCutSuccessful()
Definition: umllistview.cpp:2207
void init()
Definition: umllistview.cpp:1435
UMLListViewItem * moveObject(Uml::ID::Type srcId, UMLListViewItem::ListViewType srcType, UMLListViewItem *newParent)
Definition: umllistview.cpp:1646
void slotItemSelectionChanged()
Definition: umllistview.cpp:168
UMLListViewItem * theLogicalView()
Definition: umllistview.h:101
UMLListViewItem * m_settingsFolder
settings root
Definition: umllistview.h:182
void slotObjectRemoved(UMLObject *object)
Definition: umllistview.cpp:1235
void slotDiagramRemoved(Uml::ID::Type id)
Definition: umllistview.cpp:1250
void addNewItem(UMLListViewItem *parent, UMLListViewItem::ListViewType type)
Definition: umllistview.cpp:2233
void dropEvent(QDropEvent *event)
Definition: umllistview.cpp:2886
UMLListViewItem * findFolderForDiagram(Uml::DiagramType::Enum dt)
Definition: umllistview.cpp:826
void slotDiagramRenamed(Uml::ID::Type id)
Definition: umllistview.cpp:1200
UMLListViewItem * theComponentView()
Definition: umllistview.h:103
static bool mayHaveChildItems(UMLObject::ObjectType type)
Definition: umllistview.cpp:943
bool loadChildrenFromXMI(UMLListViewItem *parent, QDomElement &element)
Definition: umllistview.cpp:2478
bool m_bStartedCopy
Definition: umllistview.h:185
void mousePressEvent(QMouseEvent *me)
Definition: umllistview.cpp:210
bool deleteItem(UMLListViewItem *temp)
Definition: umllistview.cpp:2802
UMLListViewItemList selectedItemsRoot()
Definition: umllistview.cpp:1990
bool event(QEvent *e)
Definition: umllistview.cpp:190
static bool isExpandable(UMLListViewItem::ListViewType lvt)
Definition: umllistview.cpp:2161
void keyPressEvent(QKeyEvent *ke)
Definition: umllistview.cpp:311
UMLListViewItem * createDiagramItem(UMLView *view)
Definition: umllistview.cpp:2016
bool acceptDrag(QDropEvent *event) const
Definition: umllistview.cpp:1548
void contextMenuEvent(QContextMenuEvent *event)
Definition: umllistview.cpp:2115
void focusOutEvent(QFocusEvent *fe)
Definition: umllistview.cpp:2103
void slotDeleteSelectedItems()
Definition: umllistview.cpp:2220
void slotCollapsed(QTreeWidgetItem *item)
Definition: umllistview.cpp:2193
bool startedCopy() const
Definition: umllistview.cpp:2732
UMLListViewItem * recursiveSearchForView(UMLListViewItem *folder, UMLListViewItem::ListViewType type, Uml::ID::Type id)
Definition: umllistview.cpp:1394
void deleteChildrenOf(UMLListViewItem *parent)
Definition: umllistview.cpp:2776
UMLListViewItem * findItem(Uml::ID::Type id)
Definition: umllistview.cpp:1420
UMLListViewItem * m_datatypeFolder
Definition: umllistview.h:181
void setView(UMLView *view)
Definition: umllistview.cpp:1500
UMLListViewItem * theDeploymentView()
Definition: umllistview.h:104
bool m_bCreatingChildObject
when creating an attribute or an operation to stop it adding a second listViewItem
Definition: umllistview.h:186
~UMLListView()
Definition: umllistview.cpp:147
void childObjectAdded(UMLClassifierListItem *child, UMLClassifier *parent)
Definition: umllistview.cpp:1152
void connectNewObjectsSlots(UMLObject *object)
Definition: umllistview.cpp:1037
UMLListViewItem * findUMLObjectInFolder(UMLListViewItem *folder, UMLObject *obj)
Definition: umllistview.cpp:1285
void commitData(QWidget *editor)
Definition: umllistview.cpp:2902
void expandAll(UMLListViewItem *item)
Definition: umllistview.cpp:2688
void childObjectRemoved(UMLClassifierListItem *obj)
Definition: umllistview.cpp:1185
UMLListViewItemList selectedItems()
Definition: umllistview.cpp:1970
void clean()
Definition: umllistview.cpp:1487
UMLListViewItem::ListViewType rootViewType(UMLListViewItem *item)
Definition: umllistview.cpp:2138
void mouseDoubleClickEvent(QMouseEvent *me)
Definition: umllistview.cpp:1512
bool createItem(UMLListViewItem *item)
void dragMoveEvent(QDragMoveEvent *event)
Definition: umllistview.cpp:2872
UMLListViewItem * determineParentItem(UMLObject *object) const
Definition: umllistview.cpp:885
UMLDoc * m_doc
Definition: umllistview.h:183
void slotObjectCreated(UMLObject *object)
Definition: umllistview.cpp:966
friend QDebug operator<<(QDebug out, const UMLListView &view)
Definition: umllistview.cpp:2944
UMLDragData * getDragData()
Definition: umllistview.cpp:1260
bool isUnique(UMLListViewItem *item, const QString &name)
Definition: umllistview.cpp:2331
QPoint m_dragStartPosition
Definition: umllistview.h:187
void setStartedCopy(bool startedCopy)
Definition: umllistview.cpp:2724
void setStartedCut(bool startedCut)
Definition: umllistview.cpp:2714
UMLListViewItem * m_rv
root view (home)
Definition: umllistview.h:179
UMLListView(QWidget *parent=0)
Definition: umllistview.cpp:102
QMimeData * m_dragCopyData
Definition: umllistview.h:188
void saveToXMI1(QXmlStreamWriter &writer)
Definition: umllistview.cpp:2441
void addAtContainer(UMLListViewItem *item, UMLListViewItem *parent)
Definition: umllistview.cpp:1617
UMLListViewItem * theRootView()
Definition: umllistview.h:100
UMLListViewItem * m_lv[Uml::ModelType::N_MODELTYPES]
predefined list view roots
Definition: umllistview.h:180
void closeDatatypesFolder()
Definition: umllistview.cpp:2792
QList< QTreeWidgetItem * > m_findItems
Definition: umllistview.h:189
void slotObjectChanged()
Definition: umllistview.cpp:1124
UMLListViewItem * theDatatypeFolder()
Definition: umllistview.h:105
void setTitle(int column, const QString &text)
Definition: umllistview.cpp:160
UMLListViewItem * rootView(UMLListViewItem::ListViewType type)
Definition: umllistview.cpp:2741
void mouseReleaseEvent(QMouseEvent *me)
Definition: umllistview.cpp:287
void slotDiagramCreated(Uml::ID::Type id)
Definition: umllistview.cpp:857
void slotMenuSelection(QAction *action, const QPoint &position=QPoint())
Definition: umllistview.cpp:331
void collapseAll(UMLListViewItem *item)
Definition: umllistview.cpp:2700
int selectedItemsCount()
Definition: umllistview.cpp:2085
void changeIconOf(UMLObject *o, Icon_Utils::IconType to)
Definition: umllistview.cpp:1342
bool m_bStartedCut
Definition: umllistview.h:184
UMLListViewItem * findUMLObject(const UMLObject *p) const
Definition: umllistview.cpp:1330
void mouseMoveEvent(QMouseEvent *me)
Definition: umllistview.cpp:253
The base class for UML objects.
Definition: umlobject.h:75
ObjectType
Definition: umlobject.h:81
Definition: umlview.h:35
std::vector< std::string > v
Definition: cxx11-initializer-lists.h:19
IconType
Definition: icon_utils.h:47
Enum
Definition: basictypes.h:77
std::string Type
Definition: basictypes.h:385
@ N_MODELTYPES
Definition: basictypes.h:47
@ Logical
Definition: basictypes.h:42
@ UseCase
Definition: basictypes.h:43
@ Deployment
Definition: basictypes.h:45
@ Component
Definition: basictypes.h:44
QList< UMLListViewItem * > UMLListViewItemList
Definition: umllistviewitemlist.h:24