umbrello  2.34.3
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:171
notewidget.h
UMLObject::id
virtual Uml::ID::Type id() const
Definition: umlobject.cpp:421
UMLScene::saveToXMI
virtual void saveToXMI(QXmlStreamWriter &writer)
Definition: umlscene.cpp:3790
UMLApp::currentView
UMLView * currentView() const
Definition: uml.cpp:3275
UMLScene::createAutoAttributeAssociations2
void createAutoAttributeAssociations2(UMLWidget *widget)
Definition: umlscene.cpp:2845
UMLDragData::executeCreateWidgetCommand
static void executeCreateWidgetCommand(UMLWidget *widget)
Definition: umldragdata.cpp:727
DEBUG_REGISTER
#define DEBUG_REGISTER(src)
Definition: debug_utils.h:129
umllistviewitemlist.h
AssociationWidget
This class represents an association inside a diagram. Bugs and comments to umbrello-devel@kde....
Definition: associationwidget.h:46
UMLObject::asUMLFolder
UMLFolder * asUMLFolder()
Definition: umlobject.cpp:1429
MessageWidget::floatingTextWidget
FloatingTextWidget * floatingTextWidget()
Definition: messagewidget.h:91
UMLDragData::decodeViews
static bool decodeViews(QDomNode &umlviewsNode, UMLViewList &diagrams)
Definition: umldragdata.cpp:840
UMLDragData::setUMLDataClip5
void setUMLDataClip5(UMLObjectList &Objects)
Definition: umldragdata.cpp:241
UMLDragData::decodeClip2
static bool decodeClip2(const QMimeData *mimeData, UMLObjectList &objects, UMLViewList &diagrams)
Definition: umldragdata.cpp:304
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:238
UMLListViewItem::umlObject
UMLObject * umlObject() const
Definition: umllistviewitem.cpp:316
AssociationWidget::saveToXMI
virtual void saveToXMI(QXmlStreamWriter &writer)
Definition: associationwidget.cpp:3451
Model_Utils::typeIsAllowedInDiagram
bool typeIsAllowedInDiagram(UMLObject *o, UMLScene *scene)
Definition: model_utils.cpp:2200
AssociationWidget::create
static AssociationWidget * create(UMLScene *scene)
Definition: associationwidget.cpp:105
UMLObject::resolveRef
virtual bool resolveRef()
Definition: umlobject.cpp:744
UMLListViewItem
Items used by UMLListView.
Definition: umllistviewitem.h:35
WidgetBase::localID
Uml::ID::Type localID() const
Definition: widgetbase.cpp:250
WidgetBase::setID
void setID(Uml::ID::Type id)
Definition: widgetbase.cpp:212
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:263
UMLObject::setID
virtual void setID(Uml::ID::Type NewID)
Definition: umlobject.cpp:179
UMLDoc::addUMLObject
bool addUMLObject(UMLObject *object)
Definition: umldoc.cpp:1193
logError0
#define logError0(s)
Definition: uml.h:537
UMLObject::saveToXMI
virtual void saveToXMI(QXmlStreamWriter &writer)
Definition: umlobject.cpp:840
Uml::DiagramType::Enum
Enum
Definition: basictypes.h:63
object_factory.h
PreconditionWidget::resolveObjectWidget
void resolveObjectWidget(IDChangeLog *log)
Definition: preconditionwidget.cpp:173
AssociationWidget::loadFromXMI
bool loadFromXMI(QDomElement &qElement, const UMLWidgetList &widgets, const MessageWidgetList *messages)
Definition: associationwidget.cpp:3508
Uml::ID::toString
QString toString(const ID::Type &id)
Definition: basictypes.cpp:1306
UMLClassifier::makeChildObject
virtual UMLClassifierListItem * makeChildObject(const QString &xmiTag)
Definition: classifier.cpp:1461
cmds.h
Model_Utils::hasAssociations
bool hasAssociations(UMLObject::ObjectType type)
Definition: model_utils.cpp:2335
umlwidgetlist.h
UMLDragData
Definition: umldragdata.h:32
Model_Utils::getXmiId
QString getXmiId(QDomElement element)
Definition: model_utils.cpp:772
Uml::ID::Type
std::string Type
Definition: basictypes.h:371
UMLDragData::getClip3TypeAndID
static bool getClip3TypeAndID(const QMimeData *mimeData, LvTypeAndID_List &typeAndIdList)
Definition: umldragdata.cpp:356
UMLScene::loadFromXMI
virtual bool loadFromXMI(QDomElement &qElement)
Definition: umlscene.cpp:3864
model_utils.h
WidgetBase::isObjectWidget
bool isObjectWidget() const
Definition: widgetbase.h:256
UMLObject
The base class for UML objects.
Definition: umlobject.h:69
UMLDragData::UMLDragData
UMLDragData(UMLObjectList &Objects, QWidget *dragSource=0)
Definition: umldragdata.cpp:45
UMLDragData::LvTypeAndID_It
QListIterator< LvTypeAndID * > LvTypeAndID_It
Definition: umldragdata.h:65
UMLObject::baseType
ObjectType baseType() const
Definition: umlobject.cpp:393
UMLDragData::LvTypeAndID::id
Uml::ID::Type id
Definition: umldragdata.h:62
floatingtextwidget.h
UMLDoc::signalUMLObjectCreated
void signalUMLObjectCreated(UMLObject *o)
Definition: umldoc.cpp:1998
UMLDragData::getCodingType
static int getCodingType(const QMimeData *mimeData)
Definition: umldragdata.cpp:884
UMLDragData::LvTypeAndID::type
UMLListViewItem::ListViewType type
Definition: umldragdata.h:61
UMLDragData::~UMLDragData
~UMLDragData()
Definition: umldragdata.cpp:110
Model_Utils::isCloneable
bool isCloneable(WidgetBase::WidgetType type)
Definition: model_utils.cpp:52
UMLDragData::decodeClip3
static bool decodeClip3(const QMimeData *mimeData, UMLListViewItemList &umlListViewItems, const UMLListView *parentListView=0)
Definition: umldragdata.cpp:418
Uml::ID::fromString
ID::Type fromString(const QString &id)
Definition: basictypes.cpp:1311
AssociationWidgetList
QList< QPointer< AssociationWidget > > AssociationWidgetList
Definition: associationwidgetlist.h:15
umldragdata.h
WidgetBase::umlObject
UMLObject * umlObject() const
Definition: widgetbase.cpp:194
IDChangeLog
Definition: idchangelog.h:21
UMLDragData::setUMLDataClip2
void setUMLDataClip2(UMLObjectList &Objects, UMLViewList &Diagrams)
Definition: umldragdata.cpp:141
NoteWidget::s_pCurrentNote
static QPointer< NoteWidget > s_pCurrentNote
Definition: notewidget.h:63
UMLObject::asUMLPackage
UMLPackage * asUMLPackage()
Definition: umlobject.cpp:1436
Uml::DiagramType::fromInt
Enum fromInt(int item)
Definition: basictypes.cpp:255
UMLView
Definition: umlview.h:29
uniqueid.h
UMLDoc::findObjectById
UMLObject * findObjectById(Uml::ID::Type id)
Definition: umldoc.cpp:1051
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
UMLScene::type
Uml::DiagramType::Enum type() const
Definition: umlscene.cpp:432
UMLWidget::saveToXMI
virtual void saveToXMI(QXmlStreamWriter &writer)
Definition: umlwidget.cpp:2191
UMLListViewItem::saveToXMI
void saveToXMI(QXmlStreamWriter &writer)
Definition: umllistviewitem.cpp:900
UMLObjectListIt
QListIterator< QPointer< UMLObject > > UMLObjectListIt
Definition: umlobjectlist.h:15
folder.h
UMLScene::loadWidgetFromXMI
UMLWidget * loadWidgetFromXMI(QDomElement &widgetElement)
Definition: umlscene.cpp:4141
messagewidget.h
basictypes.h
UMLWidgetList
QList< QPointer< UMLWidget > > UMLWidgetList
Definition: umlwidgetlist.h:13
logWarn1
#define logWarn1(s, a)
Definition: uml.h:542
umllistview.h
UMLDoc::assignNewID
Uml::ID::Type assignNewID(Uml::ID::Type oldID)
Definition: umldoc.cpp:3283
WidgetBase::setUMLObject
virtual void setUMLObject(UMLObject *obj)
Definition: widgetbase.cpp:204
UMLDoc::changeLog
virtual IDChangeLog * changeLog() const
Definition: umldoc.cpp:3247
UMLApp::app
static UMLApp * app()
Definition: uml.cpp:276
UMLDoc
Definition: umldoc.h:69
UMLFolder
Non-graphical management of objects and diagrams of a Folder.
Definition: folder.h:29
umllistviewitem.h
logWarn0
#define logWarn0(s)
Definition: uml.h:536
associationwidget.h
UMLListViewItem::loadFromXMI
bool loadFromXMI(QDomElement &qElement)
Definition: umllistviewitem.cpp:942
UMLListView::slotObjectCreated
void slotObjectCreated(UMLObject *object)
Definition: umllistview.cpp:970
classifier.h
WidgetBase::asMessageWidget
MessageWidget * asMessageWidget()
Definition: widgetbase.cpp:1500
UMLObject::loadFromXMI
virtual bool loadFromXMI(QDomElement &element)
Definition: umlobject.cpp:1027
umlscene.h
uml.h
WidgetBase::asPreconditionWidget
PreconditionWidget * asPreconditionWidget()
Definition: widgetbase.cpp:1509
UMLObject::setUMLPackage
bool setUMLPackage(UMLPackage *pPkg)
Definition: umlobject.cpp:620
Object_Factory::makeObjectFromXMI
UMLObject * makeObjectFromXMI(const QString &xmiTag, const QString &stereoID)
Definition: object_factory.cpp:380
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:2445
umlobject.h
UMLDragData::decodeClip5
static bool decodeClip5(const QMimeData *mimeData, UMLObjectList &objects, UMLClassifier *newParent)
Definition: umldragdata.cpp:668
UMLDragData::decodeClip4
static bool decodeClip4(const QMimeData *mimeData, UMLObjectList &objects, UMLWidgetList &widgets, AssociationWidgetList &associations, Uml::DiagramType::Enum &dType)
Definition: umldragdata.cpp:486
preconditionwidget.h
associationwidgetlist.h
Model_Utils::treeViewGetPackageFromCurrent
UMLPackage * treeViewGetPackageFromCurrent()
Definition: model_utils.cpp:492
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:823
idchangelog.h
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:448
UMLDoc::findView
UMLView * findView(Uml::ID::Type id) const
Definition: umldoc.cpp:1014
MessageWidget::resolveObjectWidget
void resolveObjectWidget(IDChangeLog *log)
Definition: messagewidget.cpp:919
logWarn2
#define logWarn2(s, a, b)
Definition: uml.h:548
UMLApp::executeCommand
void executeCommand(QUndoCommand *cmd)
Definition: uml.cpp:3547
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:735
UMLObjectList
Definition: umlobjectlist.h:24
WidgetBase::baseType
WidgetType baseType() const
Definition: widgetbase.cpp:127
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:883
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:193
umldoc.h
UMLDragData::setUMLDataClip1
void setUMLDataClip1(UMLObjectList &Objects)
Definition: umldragdata.cpp:118
UMLListViewItemList
QList< UMLListViewItem * > UMLListViewItemList
Definition: umllistviewitemlist.h:12
WidgetBase::id
Uml::ID::Type id() const
Definition: widgetbase.cpp:226
UMLObject::clone
virtual UMLObject * clone() const
Definition: umlobject.cpp:334
UMLPackage
Non-graphical information for a Package.
Definition: package.h:27
logDebug0
#define logDebug0(s)
Definition: uml.h:533