umbrello  2.39.2
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
umldragdata.h
Go to the documentation of this file.
1 /*
2  SPDX-License-Identifier: GPL-2.0-or-later
3  SPDX-FileCopyrightText: 2002-2020 Umbrello UML Modeller Authors <umbrello-devel@kde.org>
4 */
5 
6 #ifndef UMLDRAGDATA_H
7 #define UMLDRAGDATA_H
8 
10 #include "basictypes.h"
11 #include "umllistviewitem.h"
12 #include "umllistviewitemlist.h"
13 #include "umlobjectlist.h"
14 #include "umlviewlist.h"
15 #include "umlwidgetlist.h"
16 
17 #include <QList>
18 #include <QMimeData>
19 
20 class UMLClassifier;
21 class UMLListView;
22 class UMLScene;
23 class QPixmap;
24 
32 class UMLDragData : public QMimeData
33 {
34  Q_OBJECT
35 public:
36 
37  explicit UMLDragData(UMLObjectList& Objects, QWidget* dragSource = 0);
38 
39  UMLDragData(UMLObjectList &Objects, UMLViewList& Diagrams, QWidget * dragSource = 0);
40 
41  explicit UMLDragData(UMLListViewItemList& UMLListViewItems, QWidget* dragSource = 0);
42 
43  UMLDragData(UMLObjectList& Objects, UMLWidgetList& Widgets, AssociationWidgetList& Associations,
44  QPixmap& PngImage, UMLScene *scene, QWidget* dragSource = 0);
45 
46  UMLDragData(UMLObjectList& Objects, int, QWidget* dragSource = 0);
47 
48  explicit UMLDragData(QWidget* dragSource = 0);
49 
50  ~UMLDragData();
51 
52  static bool decodeClip1(const QMimeData* mimeData, UMLObjectList& objects);
53 
54  static bool decodeClip2(const QMimeData* mimeData, UMLObjectList& objects, UMLViewList& diagrams);
55 
56  static bool decodeClip3(const QMimeData* mimeData,
57  UMLListViewItemList& umlListViewItems,
58  const UMLListView* parentListView=0);
59 
60  struct LvTypeAndID {
63  };
64  typedef QList<LvTypeAndID*> LvTypeAndID_List;
65  typedef QListIterator<LvTypeAndID*> LvTypeAndID_It;
66 
67  static bool getClip3TypeAndID(const QMimeData* mimeData,
68  LvTypeAndID_List& typeAndIdList);
69 
70  static bool decodeClip4(const QMimeData* mimeData, UMLObjectList& objects,
71  UMLWidgetList& widgets,
72  AssociationWidgetList& associations,
73  Uml::DiagramType::Enum & dType);
74 
75  static bool decodeClip5(const QMimeData* mimeData, UMLObjectList& objects,
76  UMLClassifier *newParent);
77 
78  static int getCodingType(const QMimeData* mimeData);
79 
80  private:
81 
82  void setUMLDataClip1(UMLObjectList& Objects);
83 
84  void setUMLDataClip2(UMLObjectList& Objects, UMLViewList& Diagrams);
85 
86  void setUMLDataClip3(UMLListViewItemList& UMLListViewItems);
87 
88  void setUMLDataClip4(UMLObjectList& Objects,
89  UMLWidgetList& WidgetDatas,
90  AssociationWidgetList& Associations, QPixmap& PngImage,
91  UMLScene *scene);
92 
93  void setUMLDataClip5(UMLObjectList& Objects);
94 
95  static void executeCreateWidgetCommand(UMLWidget* widget);
96 
97  static bool decodeObjects(QDomNode& objectsNode, UMLObjectList& objects,
98  bool skipIfObjectExists = false);
99 
100  static bool decodeViews(QDomNode& umlviewsNode, UMLViewList& diagrams);
101 };
102 
103 #endif
QList< QPointer< AssociationWidget > > AssociationWidgetList
Definition: associationwidgetlist.h:15
Information for a non-graphical Concept/Class.
Definition: classifier.h:35
Definition: umldragdata.h:33
static void executeCreateWidgetCommand(UMLWidget *widget)
Definition: umldragdata.cpp:727
QList< LvTypeAndID * > LvTypeAndID_List
Definition: umldragdata.h:64
static bool decodeClip4(const QMimeData *mimeData, UMLObjectList &objects, UMLWidgetList &widgets, AssociationWidgetList &associations, Uml::DiagramType::Enum &dType)
Definition: umldragdata.cpp:486
static bool decodeClip5(const QMimeData *mimeData, UMLObjectList &objects, UMLClassifier *newParent)
Definition: umldragdata.cpp:668
static int getCodingType(const QMimeData *mimeData)
Definition: umldragdata.cpp:884
QListIterator< LvTypeAndID * > LvTypeAndID_It
Definition: umldragdata.h:65
void setUMLDataClip3(UMLListViewItemList &UMLListViewItems)
Definition: umldragdata.cpp:171
static bool decodeClip2(const QMimeData *mimeData, UMLObjectList &objects, UMLViewList &diagrams)
Definition: umldragdata.cpp:304
static bool decodeObjects(QDomNode &objectsNode, UMLObjectList &objects, bool skipIfObjectExists=false)
Definition: umldragdata.cpp:735
static bool decodeClip3(const QMimeData *mimeData, UMLListViewItemList &umlListViewItems, const UMLListView *parentListView=0)
Definition: umldragdata.cpp:418
static bool getClip3TypeAndID(const QMimeData *mimeData, LvTypeAndID_List &typeAndIdList)
Definition: umldragdata.cpp:356
void setUMLDataClip2(UMLObjectList &Objects, UMLViewList &Diagrams)
Definition: umldragdata.cpp:141
static bool decodeClip1(const QMimeData *mimeData, UMLObjectList &objects)
Definition: umldragdata.cpp:263
~UMLDragData()
Definition: umldragdata.cpp:110
static bool decodeViews(QDomNode &umlviewsNode, UMLViewList &diagrams)
Definition: umldragdata.cpp:840
void setUMLDataClip5(UMLObjectList &Objects)
Definition: umldragdata.cpp:241
UMLDragData(UMLObjectList &Objects, QWidget *dragSource=0)
Definition: umldragdata.cpp:45
void setUMLDataClip1(UMLObjectList &Objects)
Definition: umldragdata.cpp:118
void setUMLDataClip4(UMLObjectList &Objects, UMLWidgetList &WidgetDatas, AssociationWidgetList &Associations, QPixmap &PngImage, UMLScene *scene)
Definition: umldragdata.cpp:193
ListViewType
Definition: umllistviewitem.h:39
Displays the list view for the program.
Definition: umllistview.h:43
Definition: umlobjectlist.h:25
Definition: umlscene.h:65
The base class for graphical UML objects.
Definition: umlwidget.h:36
Enum
Definition: basictypes.h:63
std::string Type
Definition: basictypes.h:371
Definition: umldragdata.h:60
Uml::ID::Type id
Definition: umldragdata.h:62
UMLListViewItem::ListViewType type
Definition: umldragdata.h:61
QList< UMLListViewItem * > UMLListViewItemList
Definition: umllistviewitemlist.h:12
QList< QPointer< UMLView > > UMLViewList
Definition: umlviewlist.h:14
QList< QPointer< UMLWidget > > UMLWidgetList
Definition: umlwidgetlist.h:13