1/*
2 SPDX-FileCopyrightText: 2015 Aleix Pol Gonzalez <aleixpol@kde.org>
3
4 SPDX-License-Identifier: MIT
5*/
6
7#ifndef MIMEDATAWRAPPER_H
8#define MIMEDATAWRAPPER_H
9
10#include <QJsonArray>
11#include <QObject>
12#include <QString>
13#include <qqmlregistration.h>
14
15class QMimeData;
16class QObject;
17/*!
18 * \qmltype MimeDataWrapper
19 * \inqmlmodule org.kde.draganddrop
20 * \brief Exposes a const QMimeData instance.
21 *
22 * In contrast to MimeData, doesn't create a copy of the QMimeData instance.
23 */
24class MimeDataWrapper : public QObject
25{
26 Q_OBJECT
27 QML_ELEMENT
28 QML_UNCREATABLE("MimeDataWrapper cannot be created from QML.")
29
30 /*!
31 * \qmlproperty string MimeDataWrapper::text
32 * A plain text (MIME type text/plain) representation of the data.
33 */
34 Q_PROPERTY(QString text READ text CONSTANT)
35
36 /*!
37 * \qmlproperty string MimeDataWrapper::html
38 * A string if the data stored in the object is HTML (MIME type text/html); otherwise returns an empty string.
39 */
40 Q_PROPERTY(QString html READ html CONSTANT)
41
42 /*!
43 * \qmlproperty url MimeDataWrapper::url
44 * Url contained in the mimedata
45 */
46 Q_PROPERTY(QUrl url READ url CONSTANT)
47
48 /*!
49 * \qmlproperty QJsonArray MimeDataWrapper::urls
50 * A list of URLs contained within the MIME data object.
51 * URLs correspond to the MIME type text/uri-list.
52 */
53 Q_PROPERTY(QJsonArray urls READ urls CONSTANT)
54
55 /*!
56 * \qmlproperty var MimeDataWrapper::color
57 * A color if the data stored in the object represents a color (MIME type application/x-color); otherwise QVariant().
58 */
59 Q_PROPERTY(QVariant color READ color CONSTANT)
60
61 /*!
62 * \qmlproperty var MimeDataWrapper::source
63 * The graphical item on the scene that started the drag event. It may be null.
64 */
65 Q_PROPERTY(QVariant source READ source CONSTANT)
66
67 /*!
68 * \qmlproperty list<string> MimeDataWrapper::formats
69 * Mimetypes provided by the mime data instance
70 *
71 * \sa QMimeData::formats
72 */
73 Q_PROPERTY(QStringList formats READ formats CONSTANT)
74
75 /*!
76 * \qmlproperty bool MimeDataWrapper::hasUrls
77 * \sa QMimeData::hasUrls
78 */
79 Q_PROPERTY(bool hasUrls READ hasUrls CONSTANT)
80
81 /*!
82 * \qmlproperty QMimeData* MimeDataWrapper::mimeData
83 * Returns the wrapped object
84 */
85 Q_PROPERTY(QMimeData *mimeData READ mimeData CONSTANT)
86
87public:
88 MimeDataWrapper(const QMimeData *data, QObject *parent);
89
90 QString text() const;
91 QString html() const;
92 QUrl url() const;
93 QJsonArray urls() const;
94 bool hasUrls() const;
95 QVariant color() const;
96 QStringList formats() const;
97 QVariant source() const;
98 QMimeData *mimeData() const;
99
100 /*! \qmlmethod QByteArray MimeDataWrapper::getDataAsByteArray(string format) */
101 Q_INVOKABLE QByteArray getDataAsByteArray(const QString &format);
102
103private:
104 const QMimeData *m_data;
105};
106
107#endif
108

source code of kdeclarative/src/qmlcontrols/draganddrop/MimeDataWrapper.h