void tst_QMimeData::colorData() const { QMimeData mimeData; QColor red = Qt::red; QColor blue = Qt::blue; // set, verify mimeData.setColorData(red); QVERIFY(mimeData.hasColor()); QCOMPARE(qvariant_cast<QColor>(mimeData.colorData()), red); // change, verify mimeData.setColorData(QColor(Qt::blue)); QVERIFY(mimeData.hasColor()); QCOMPARE(qvariant_cast<QColor>(mimeData.colorData()), blue); }
/* * This function is called when a standalone MimeData instance is passed as parameter to push() */ QMimeData *QQuickMimeData::toMimeData() { QMimeData *ret = m_mimeData; if (!m_refData) { m_mimeData = new QMimeData; // copy data so we keep the properties as they were Q_FOREACH(const QString &format, ret->formats()) { m_mimeData->setData(format, ret->data(format)); } // set teh color separately m_mimeData->setColorData(ret->colorData()); }
QDebug operator<<(QDebug d, const QMimeData &m) { QDebug nospace = d.nospace(); const QStringList formats = m.formats(); nospace << "QMimeData: " << formats.join(QStringLiteral(", ")) << '\n' << " Text=" << m.hasText() << " HTML=" << m.hasHtml() << " Color=" << m.hasColor() << " Image=" << m.hasImage() << " URLs=" << m.hasUrls() << '\n'; if (m.hasText()) nospace << " Text: '" << m.text() << "'\n"; if (m.hasHtml()) nospace << " HTML: '" << m.html() << "'\n"; if (m.hasColor()) nospace << " Color: " << qvariant_cast<QColor>(m.colorData()) << '\n'; if (m.hasImage()) nospace << " Image: " << qvariant_cast<QImage>(m.imageData()).size() << '\n'; if (m.hasUrls()) nospace << " URLs: " << m.urls() << '\n'; return d; }