umbrello  2.32.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
UMLDragData::setUMLDataClip3
void setUMLDataClip3(UMLListViewItemList &UMLListViewItems)
Definition: umldragdata.cpp:168
notewidget.h
UMLObject::id
virtual Uml::ID::Type id() const
Definition: umlobject.cpp:420
UMLApp::currentView
UMLView * currentView() const
Definition: uml.cpp:3175
UMLScene::createAutoAttributeAssociations2
void createAutoAttributeAssociations2(UMLWidget *widget)
Definition: umlscene.cpp:2823
WidgetBase::asPreconditionWidget
PreconditionWidget * asPreconditionWidget()
Definition: widgetbase.cpp:1498
UMLDragData::executeCreateWidgetCommand
static void executeCreateWidgetCommand(UMLWidget *widget)
Definition: umldragdata.cpp:724
umllistviewitemlist.h
AssociationWidget
This class represents an association inside a diagram. Bugs and comments to umbrello-devel@kde....
Definition: associationwidget.h:46
MessageWidget::floatingTextWidget
FloatingTextWidget * floatingTextWidget()
Definition: messagewidget.h:91
UMLDragData::decodeViews
static bool decodeViews(QDomNode &umlviewsNode, UMLViewList &diagrams)
Definition: umldragdata.cpp:837
UMLDragData::setUMLDataClip5
void setUMLDataClip5(UMLObjectList &Objects)
Definition: umldragdata.cpp:238
UMLDragData::decodeClip2
static bool decodeClip2(const QMimeData *mimeData, UMLObjectList &objects, UMLViewList &diagrams)
Definition: umldragdata.cpp:301
Uml::CmdCreateWidget
Definition: cmdcreatewidget.h:18
umlview.h
UMLWidget
The base class for graphical UML objects.
Definition: umlwidget.h:35
IDChangeLog::findNewID
Uml::ID::Type findNewID(Uml::ID::Type OldID)
Definition: idchangelog.cpp:57
UMLListViewItem::ListViewType
ListViewType
Definition: umllistviewitem.h:38
WidgetBase::setLocalID
void setLocalID(Uml::ID::Type id)
Definition: widgetbase.cpp:233
UMLListViewItem::umlObject
UMLObject * umlObject() const
Definition: umllistviewitem.cpp:315
Model_Utils::typeIsAllowedInDiagram
bool typeIsAllowedInDiagram(UMLObject *o, UMLScene *scene)
Definition: model_utils.cpp:2168
UMLWidget::saveToXMI1
virtual void saveToXMI1(QXmlStreamWriter &writer)
Definition: umlwidget.cpp:2140
AssociationWidget::create
static AssociationWidget * create(UMLScene *scene)
Definition: associationwidget.cpp:98
UMLObject::resolveRef
virtual bool resolveRef()
Definition: umlobject.cpp:742
UMLListViewItem
Items used by UMLListView.
Definition: umllistviewitem.h:35
WidgetBase::localID
Uml::ID::Type localID() const
Definition: widgetbase.cpp:245
WidgetBase::setID
void setID(Uml::ID::Type id)
Definition: widgetbase.cpp:207
Uml::ID::None
const Type None
special value for uninitialized ID
Definition: basictypes.h:373
UMLDragData::LvTypeAndID
Definition: umldragdata.h:60
UMLDragData::decodeClip1
static bool decodeClip1(const QMimeData *mimeData, UMLObjectList &objects)
Definition: umldragdata.cpp:260
UMLObject::setID
virtual void setID(Uml::ID::Type NewID)
Definition: umlobject.cpp:178
UMLDoc::addUMLObject
bool addUMLObject(UMLObject *object)
Definition: umldoc.cpp:1181
Uml::DiagramType::Enum
Enum
Definition: basictypes.h:63
object_factory.h
PreconditionWidget::resolveObjectWidget
void resolveObjectWidget(IDChangeLog *log)
Definition: preconditionwidget.cpp:173
Uml::ID::toString
QString toString(const ID::Type &id)
Definition: basictypes.cpp:1300
UMLClassifier::makeChildObject
virtual UMLClassifierListItem * makeChildObject(const QString &xmiTag)
Definition: classifier.cpp:1428
cmds.h
Model_Utils::hasAssociations
bool hasAssociations(UMLObject::ObjectType type)
Definition: model_utils.cpp:2303
AssociationWidget::saveToXMI1
virtual void saveToXMI1(QXmlStreamWriter &writer)
Definition: associationwidget.cpp:3967
umlwidgetlist.h
UMLDragData
Definition: umldragdata.h:32
Uml::ID::Type
std::string Type
Definition: basictypes.h:371
UMLDragData::getClip3TypeAndID
static bool getClip3TypeAndID(const QMimeData *mimeData, LvTypeAndID_List &typeAndIdList)
Definition: umldragdata.cpp:353
WidgetBase::asMessageWidget
MessageWidget * asMessageWidget()
Definition: widgetbase.cpp:1489
model_utils.h
WidgetBase::isObjectWidget
bool isObjectWidget() const
Definition: widgetbase.h:256
UMLScene::saveToXMI1
virtual void saveToXMI1(QXmlStreamWriter &writer)
Definition: umlscene.cpp:3763
UMLObject
The base class for UML objects.
Definition: umlobject.h:69
UMLDragData::UMLDragData
UMLDragData(UMLObjectList &Objects, QWidget *dragSource=0)
Definition: umldragdata.cpp:42
UMLListViewItem::saveToXMI1
void saveToXMI1(QXmlStreamWriter &writer)
Definition: umllistviewitem.cpp:897
UMLDragData::LvTypeAndID_It
QListIterator< LvTypeAndID * > LvTypeAndID_It
Definition: umldragdata.h:65
UMLObject::baseType
ObjectType baseType() const
Definition: umlobject.cpp:392
UMLDragData::LvTypeAndID::id
Uml::ID::Type id
Definition: umldragdata.h:62
UMLObject::asUMLFolder
UMLFolder * asUMLFolder()
Definition: umlobject.cpp:1398
floatingtextwidget.h
UMLDoc::signalUMLObjectCreated
void signalUMLObjectCreated(UMLObject *o)
Definition: umldoc.cpp:1984
UMLDragData::getCodingType
static int getCodingType(const QMimeData *mimeData)
Definition: umldragdata.cpp:881
UMLDragData::LvTypeAndID::type
UMLListViewItem::ListViewType type
Definition: umldragdata.h:61
UMLDragData::~UMLDragData
~UMLDragData()
Definition: umldragdata.cpp:107
Model_Utils::isCloneable
bool isCloneable(WidgetBase::WidgetType type)
Definition: model_utils.cpp:49
UMLDragData::decodeClip3
static bool decodeClip3(const QMimeData *mimeData, UMLListViewItemList &umlListViewItems, const UMLListView *parentListView=0)
Definition: umldragdata.cpp:415
Uml::ID::fromString
ID::Type fromString(const QString &id)
Definition: basictypes.cpp:1305
AssociationWidgetList
QList< QPointer< AssociationWidget > > AssociationWidgetList
Definition: associationwidgetlist.h:15
umldragdata.h
WidgetBase::umlObject
UMLObject * umlObject() const
Definition: widgetbase.cpp:189
IDChangeLog
Definition: idchangelog.h:21
UMLDragData::setUMLDataClip2
void setUMLDataClip2(UMLObjectList &Objects, UMLViewList &Diagrams)
Definition: umldragdata.cpp:138
NoteWidget::s_pCurrentNote
static QPointer< NoteWidget > s_pCurrentNote
Definition: notewidget.h:63
Uml::DiagramType::fromInt
Enum fromInt(int item)
Definition: basictypes.cpp:253
UMLView
Definition: umlview.h:29
uniqueid.h
UMLDoc::findObjectById
UMLObject * findObjectById(Uml::ID::Type id)
Definition: umldoc.cpp:1039
umlviewlist.h
WidgetBase::isPreconditionWidget
bool isPreconditionWidget() const
Definition: widgetbase.h:260
number
it is up to the author donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License If the distribution and or use of the Library is restricted in certain countries either by patents or by copyrighted the original copyright holder who places the Library under this License may add an geographical distribution limitation excluding those so that distribution is permitted only in or among countries not thus excluded In such this License incorporates the limitation as if written in the body of this License The Free Software Foundation may publish revised and or new versions of the Library General Public License from time to time Such new versions will be similar in spirit to the present but may differ in detail to address new problems or concerns Each version is given a distinguishing version number If the Library specifies a version number of this License which applies to it and any later you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation If the Library does not specify a license version number
Definition: LGPL-2.0-only.txt:368
objectwidget.h
UMLApp::listView
UMLListView * listView() const
Definition: uml.cpp:1073
umlwidget.h
uWarning
#define uWarning()
Definition: debug_utils.h:110
UMLScene::type
Uml::DiagramType::Enum type() const
Definition: umlscene.cpp:422
UMLObjectListIt
QListIterator< QPointer< UMLObject > > UMLObjectListIt
Definition: umlobjectlist.h:15
folder.h
UMLScene::loadWidgetFromXMI
UMLWidget * loadWidgetFromXMI(QDomElement &widgetElement)
Definition: umlscene.cpp:3986
messagewidget.h
basictypes.h
UMLWidgetList
QList< QPointer< UMLWidget > > UMLWidgetList
Definition: umlwidgetlist.h:13
uDebug
#define uDebug()
Definition: debug_utils.h:108
AssociationWidget::loadFromXMI1
bool loadFromXMI1(QDomElement &qElement, const UMLWidgetList &widgets, const MessageWidgetList *messages)
Definition: associationwidget.cpp:4027
umllistview.h
UMLDoc::assignNewID
Uml::ID::Type assignNewID(Uml::ID::Type oldID)
Definition: umldoc.cpp:3243
WidgetBase::setUMLObject
virtual void setUMLObject(UMLObject *obj)
Definition: widgetbase.cpp:199
UMLDoc::changeLog
virtual IDChangeLog * changeLog() const
Definition: umldoc.cpp:3207
UMLApp::app
static UMLApp * app()
Definition: uml.cpp:275
UMLDoc
Definition: umldoc.h:69
UMLListViewItem::loadFromXMI1
bool loadFromXMI1(QDomElement &qElement)
Definition: umllistviewitem.cpp:938
UMLFolder
Non-graphical management of objects and diagrams of a Folder.
Definition: folder.h:29
umllistviewitem.h
associationwidget.h
UMLListView::slotObjectCreated
void slotObjectCreated(UMLObject *object)
Definition: umllistview.cpp:967
classifier.h
uError
#define uError()
Definition: debug_utils.h:109
UMLObject::loadFromXMI1
virtual bool loadFromXMI1(QDomElement &element)
Definition: umlobject.cpp:993
umlscene.h
uml.h
UMLObject::setUMLPackage
bool setUMLPackage(UMLPackage *pPkg)
Definition: umlobject.cpp:619
Object_Factory::makeObjectFromXMI
UMLObject * makeObjectFromXMI(const QString &xmiTag, const QString &stereoID)
Definition: object_factory.cpp:376
UMLClassifier
Information for a non-graphical Concept/Class.
Definition: classifier.h:34
debug_utils.h
UMLScene
Definition: umlscene.h:64
UMLScene::createAutoAssociations
void createAutoAssociations(UMLWidget *widget)
Definition: umlscene.cpp:2422
umlobject.h
UMLDragData::decodeClip5
static bool decodeClip5(const QMimeData *mimeData, UMLObjectList &objects, UMLClassifier *newParent)
Definition: umldragdata.cpp:665
UMLDragData::decodeClip4
static bool decodeClip4(const QMimeData *mimeData, UMLObjectList &objects, UMLWidgetList &widgets, AssociationWidgetList &associations, Uml::DiagramType::Enum &dType)
Definition: umldragdata.cpp:483
preconditionwidget.h
associationwidgetlist.h
Model_Utils::treeViewGetPackageFromCurrent
UMLPackage * treeViewGetPackageFromCurrent()
Definition: model_utils.cpp:464
PreconditionWidget
A graphical version of a UML Precondition (new in UML 2.0).
Definition: preconditionwidget.h:27
UMLView::umlScene
UMLScene * umlScene() const
Definition: umlview.cpp:51
UMLListView::findFolderForDiagram
UMLListViewItem * findFolderForDiagram(Uml::DiagramType::Enum dt) const
Definition: umllistview.cpp:821
UMLObject::saveToXMI1
virtual void saveToXMI1(QXmlStreamWriter &writer)
Definition: umlobject.cpp:837
idchangelog.h
UMLObject::asUMLPackage
UMLPackage * asUMLPackage()
Definition: umlobject.cpp:1405
UMLListView
Displays the list view for the program.
Definition: umllistview.h:42
umlobjectlist.h
WidgetBase::isMessageWidget
bool isMessageWidget() const
Definition: widgetbase.h:252
UMLScene::ID
Uml::ID::Type ID() const
Definition: umlscene.cpp:438
UMLDoc::findView
UMLView * findView(Uml::ID::Type id) const
Definition: umldoc.cpp:1001
UMLScene::loadFromXMI1
virtual bool loadFromXMI1(QDomElement &qElement)
Definition: umlscene.cpp:3838
MessageWidget::resolveObjectWidget
void resolveObjectWidget(IDChangeLog *log)
Definition: messagewidget.cpp:918
UMLApp::executeCommand
void executeCommand(QUndoCommand *cmd)
Definition: uml.cpp:3447
UMLObject::ot_Folder
@ ot_Folder
Definition: umlobject.h:99
UMLViewList
QList< QPointer< UMLView > > UMLViewList
Definition: umlviewlist.h:14
UMLDragData::LvTypeAndID_List
QList< LvTypeAndID * > LvTypeAndID_List
Definition: umldragdata.h:64
Uml::CmdCreateUMLObject
Definition: cmdcreateumlobject.h:17
UMLDragData::decodeObjects
static bool decodeObjects(QDomNode &objectsNode, UMLObjectList &objects, bool skipIfObjectExists=false)
Definition: umldragdata.cpp:732
UMLObjectList
Definition: umlobjectlist.h:24
WidgetBase::baseType
WidgetType baseType() const
Definition: widgetbase.cpp:122
UMLClassifierListItem
A base class for classifier list items (e.g. attributes)
Definition: classifierlistitem.h:24
MessageWidget
Displays a message.
Definition: messagewidget.h:35
UMLListView::determineParentItem
UMLListViewItem * determineParentItem(UMLObject *object) const
Definition: umllistview.cpp:880
UMLApp::document
UMLDoc * document() const
Definition: uml.cpp:1063
UMLDragData::setUMLDataClip4
void setUMLDataClip4(UMLObjectList &Objects, UMLWidgetList &WidgetDatas, AssociationWidgetList &Associations, QPixmap &PngImage, UMLScene *scene)
Definition: umldragdata.cpp:190
umldoc.h
UMLDragData::setUMLDataClip1
void setUMLDataClip1(UMLObjectList &Objects)
Definition: umldragdata.cpp:115
UMLListViewItemList
QList< UMLListViewItem * > UMLListViewItemList
Definition: umllistviewitemlist.h:12
WidgetBase::id
Uml::ID::Type id() const
Definition: widgetbase.cpp:221
UMLObject::clone
virtual UMLObject * clone() const
Definition: umlobject.cpp:333
UMLPackage
Non-graphical information for a Package.
Definition: package.h:27