Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_mimedata.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2011 Boudewijn Rempt <boud@valdyas.org>
3 *
4 * SPDX-License-Identifier: LGPL-2.1-or-later
5 */
6
7#ifndef KIS_MIMEDATA_H
8#define KIS_MIMEDATA_H
9
10#include <QMimeData>
11#include <QRect>
12
13#include <kis_types.h>
14#include <kritaui_export.h>
15
17class KisNodeDummy;
22
28class KRITAUI_EXPORT KisMimeData : public QMimeData
29{
30 Q_OBJECT
31public:
32 KisMimeData(QList<KisNodeSP> nodes, KisImageSP image, bool forceCopy = false);
33
35 QList<KisNodeSP> nodes() const;
36
47 void deepCopyNodes();
48
58 QStringList formats() const override;
59
60 static bool isNodeMimeDataFromSameImage(const QMimeData *data, KisImageSP image);
61
62 static KisNodeList loadNodesFast(
63 const QMimeData *data,
64 KisImageSP image,
65 KisShapeController *shapeController,
66 bool &copyNode);
67
68 static KisNodeList loadNodesFastAndRecenter(const QPoint &preferredCenter,
69 const QMimeData *data,
70 KisImageSP image,
71 KisShapeController *shapeController,
72 bool &copyNode);
73
83 static KisDisplayConfig displayConfigForMimePastes();
84
85private:
90 static KisNodeList loadNonNativeNodes(const QMimeData *data,
91 KisImageWSP image);
92
97 static KisNodeList tryLoadInternalNodes(const QMimeData *data,
98 KisImageSP image,
99 KisShapeController *shapeController,
100 bool /* IN-OUT */ &copyNode);
101
102public:
103 static QMimeData* mimeForLayers(const KisNodeList &nodes, KisImageSP image, bool forceCopy = false);
104 static QMimeData* mimeForLayersDeepCopy(const KisNodeList &nodes, KisImageSP image, bool forceCopy);
105 static bool insertMimeLayers(const QMimeData *data,
106 KisImageSP image,
107 KisShapeController *shapeController,
108 KisNodeDummy *parentDummy,
109 KisNodeDummy *aboveThisDummy,
110 bool copyNode,
111 KisNodeInsertionAdapter *nodeInsertionAdapter,
112 bool changeOffset = false,
113 QPointF offset = QPointF(),
114 KisProcessingApplicator *applicator = nullptr);
115
116protected:
117#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
118 QVariant retrieveData(const QString &mimetype, QVariant::Type preferredType) const override;
119#else
120 QVariant retrieveData(const QString &mimetype, QMetaType preferredType) const override;
121#endif
122
123private:
124 static void initializeExternalNode(KisNodeSP *nodes,
125 KisImageSP srcImage, KisImageSP dstImage,
126 KisShapeController *shapeController);
127
128private:
129
134};
135
136#endif // KIS_MIMEDATA_H
KisDisplayConfig This class keeps track of the color management configuration for image to display....
QRect m_copiedBounds
KisImageSP m_image
QList< KisNodeSP > m_nodes