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 KisNodeList loadNodesFast(
61 const QMimeData *data,
62 KisImageSP image,
63 KisShapeController *shapeController,
64 bool &copyNode);
65
66 static KisNodeList loadNodesFastAndRecenter(const QPoint &preferredCenter,
67 const QMimeData *data,
68 KisImageSP image,
69 KisShapeController *shapeController,
70 bool &copyNode);
71
81 static KisDisplayConfig displayConfigForMimePastes();
82
83private:
88 static KisNodeList loadNonNativeNodes(const QMimeData *data,
89 KisImageWSP image);
90
95 static KisNodeList tryLoadInternalNodes(const QMimeData *data,
96 KisImageSP image,
97 KisShapeController *shapeController,
98 bool /* IN-OUT */ &copyNode);
99
100public:
101 static QMimeData* mimeForLayers(const KisNodeList &nodes, KisImageSP image, bool forceCopy = false);
102 static QMimeData* mimeForLayersDeepCopy(const KisNodeList &nodes, KisImageSP image, bool forceCopy);
103 static bool insertMimeLayers(const QMimeData *data,
104 KisImageSP image,
105 KisShapeController *shapeController,
106 KisNodeDummy *parentDummy,
107 KisNodeDummy *aboveThisDummy,
108 bool copyNode,
109 KisNodeInsertionAdapter *nodeInsertionAdapter,
110 bool changeOffset = false,
111 QPointF offset = QPointF(),
112 KisProcessingApplicator *applicator = nullptr);
113
114protected:
115#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
116 QVariant retrieveData(const QString &mimetype, QVariant::Type preferredType) const override;
117#else
118 QVariant retrieveData(const QString &mimetype, QMetaType preferredType) const override;
119#endif
120
121private:
122 static void initializeExternalNode(KisNodeSP *nodes,
123 KisImageSP srcImage, KisImageSP dstImage,
124 KisShapeController *shapeController);
125
126private:
127
132};
133
134#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