6#include <QtCore/qbuffer.h>
7#include <QtGui/qimage.h>
8#include <QtGui/qimagereader.h>
9#include <QtGui/qimagewriter.h>
19 for (
const auto &
format : imageFormats)
24 if (pngIndex != -1 && pngIndex != 0)
52 if (!foundFormat &&
mimeType ==
"application/x-qt-image"_L1) {
54 for (
int i = 0;
i < imageFormats.size(); ++
i) {
65 if (!realFormats.contains(
"application/x-qt-image"_L1)) {
67 for (
int i = 0;
i < imageFormats.size(); ++
i) {
68 if (realFormats.contains(imageFormats.at(
i))) {
69 realFormats +=
"application/x-qt-image"_L1;
80 if (
mimeType ==
"application/x-qt-image"_L1) {
81 if (
data.isNull() || (
data.metaType().id() == QMetaType::QByteArray &&
data.toByteArray().isEmpty())) {
84 for (
int i = 0;
i < imageFormats.size(); ++
i) {
86 if (
data.isNull() || (
data.metaType().id() == QMetaType::QByteArray &&
data.toByteArray().isEmpty()))
91 int typeId =
type.id();
93 if (
data.metaType().id() == QMetaType::QByteArray
94 && (typeId == QMetaType::QImage || typeId == QMetaType::QPixmap || typeId == QMetaType::QBitmap))
97 }
else if (
mimeType ==
"application/x-color"_L1 &&
data.metaType().id() == QMetaType::QByteArray) {
108 qWarning(
"Qt: Invalid color format");
110 }
else if (
data.metaType() !=
type &&
data.metaType().id() == QMetaType::QByteArray) {
129 if (realFormats.contains(
"application/x-qt-image"_L1)) {
132 for (
int i = 0;
i < imageFormats.size(); ++
i) {
133 if (!realFormats.contains(imageFormats.at(
i)))
134 realFormats.append(imageFormats.at(
i));
145 if (
mimeType ==
"application/x-qt-image"_L1) {
148 for (
int i = 0;
i < imageFormats.size(); ++
i) {
149 if ((foundFormat =
data->hasFormat(imageFormats.at(
i))))
152 }
else if (
mimeType.startsWith(
"image/"_L1)) {
162 if (
mimeType ==
"application/x-color"_L1) {
176 QColor c = qvariant_cast<QColor>(
data->colorData());
177 colBuf[0] =
ushort(
c.redF() * 0xFFFF);
178 colBuf[1] =
ushort(
c.greenF() * 0xFFFF);
179 colBuf[2] =
ushort(
c.blueF() * 0xFFFF);
180 colBuf[3] =
ushort(
c.alphaF() * 0xFFFF);
184 if (
mimeType ==
"application/x-qt-image"_L1 &&
data->hasImage()) {
190 }
else if (
mimeType.startsWith(
"image/"_L1) &&
data->hasImage()) {
203#include "moc_qinternalmimedata_p.cpp"
\inmodule QtCore \reentrant
char * data()
\macro QT_NO_CAST_FROM_BYTEARRAY
qsizetype size() const noexcept
Returns the number of bytes in this byte array.
bool isEmpty() const noexcept
Returns true if the byte array has size 0; otherwise returns false.
void resize(qsizetype size)
Sets the size of the byte array to size bytes.
The QColor class provides colors based on RGB, HSV or CMYK values.
static QList< QByteArray > supportedImageFormats()
Returns the list of image formats supported by QImageReader.
static QList< QByteArray > supportedImageFormats()
Returns the list of image formats supported by QImageWriter.
static QImage fromData(QByteArrayView data, const char *format=nullptr)
static bool hasFormatHelper(const QString &mimeType, const QMimeData *data)
virtual bool hasFormat_sys(const QString &mimeType) const =0
static QByteArray renderDataHelper(const QString &mimeType, const QMimeData *data)
QStringList formats() const override
Returns a list of formats supported by the object.
QVariant retrieveData(const QString &mimeType, QMetaType type) const override
Returns a variant with the given type containing data for the MIME type specified by mimeType.
virtual QStringList formats_sys() const =0
bool hasFormat(const QString &mimeType) const override
Returns true if the object can return data for the MIME type specified by mimeType; otherwise returns...
virtual QVariant retrieveData_sys(const QString &mimeType, QMetaType type) const =0
static bool canReadData(const QString &mimeType)
static QStringList formatsHelper(const QMimeData *data)
qsizetype size() const noexcept
void setData(const QString &mimetype, const QByteArray &data)
Sets the data associated with the MIME type given by mimeType to the specified data.
virtual QVariant retrieveData(const QString &mimetype, QMetaType preferredType) const
Returns a variant with the given type containing data for the MIME type specified by mimeType.
void clear()
Removes all the MIME type and data entries in the object.
\macro QT_RESTRICTED_CAST_FROM_ASCII
Combined button and popup list for selecting options.
static QStringList imageReadMimeFormats()
static QStringList imageMimeFormats(const QList< QByteArray > &imageFormats)
static QStringList imageWriteMimeFormats()
GLenum GLuint GLenum GLsizei const GLchar * buf
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLint GLsizei GLsizei GLenum format