void tst_QMimeData::setText() const { QMimeData mimeData; // verify initial state QCOMPARE(mimeData.text(), QLatin1String("")); QVERIFY(mimeData.hasText() == false); // set, verify mimeData.setText("pirates"); QVERIFY(mimeData.hasText()); QCOMPARE(mimeData.text(), QLatin1String("pirates")); QCOMPARE(mimeData.text().toLatin1(), mimeData.data("text/plain")); // reset, verify mimeData.setText("ninjas"); QVERIFY(mimeData.hasText()); QCOMPARE(mimeData.text(), QLatin1String("ninjas")); QCOMPARE(mimeData.text().toLatin1(), mimeData.data("text/plain")); // clear, verify mimeData.clear(); QCOMPARE(mimeData.text(), QLatin1String("")); QVERIFY(mimeData.hasText() == false); }
void tst_QMimeData::data() const { QMimeData mimeData; // set text, verify mimeData.setData("text/plain", "pirates"); QCOMPARE(mimeData.data("text/plain"), QByteArray("pirates")); QVERIFY(mimeData.data("text/html").length() == 0); // html time mimeData.setData("text/html", "ninjas"); QCOMPARE(mimeData.data("text/html"), QByteArray("ninjas")); QCOMPARE(mimeData.data("text/plain"), QByteArray("pirates")); // make sure text not damaged QCOMPARE(mimeData.data("text/html"), mimeData.html().toLatin1()); }
bool ResourceMimeData::containsRelevantData( const QMimeData& data, const SerializableReflectionType& acceptedBaseType ) { QByteArray encodedData = data.data( "TamyEditor/ResourceMimeData" ); QDataStream stream( &encodedData, QIODevice::ReadOnly ); // check if the stream carries any data of interest to us if ( stream.atEnd() ) { return false; } // check if the stream contains an object of a class that derives from the one set for this encoder uint typeId; stream >> typeId; ReflectionTypesRegistry& typesRegistry = TSingleton< ReflectionTypesRegistry >::getInstance(); SerializableReflectionType* matchingType = typesRegistry.findSerializable( typeId ); if ( !matchingType ) { // this type wasn't defined in the registry - the stream must be corrupt return false; } bool typeMatches = matchingType->isA( acceptedBaseType ); return typeMatches; }
void ResourceMimeData::load( Resource*& outResourcePtr, const QMimeData& data ) { QByteArray encodedData = data.data( "TamyEditor/ResourceMimeData" ); QDataStream stream( &encodedData, QIODevice::ReadOnly ); uint typeId, ptr; stream >> typeId; stream >> ptr; outResourcePtr = (Resource*)ptr; }
/* * 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()); }
QByteArray getUtf8Data(const QMimeData &data, const QString &format) { if (format == mimeText || format == mimeHtml) return dataToText( data.data(format), format ).toUtf8(); if (format == mimeUriList) { QByteArray bytes; foreach ( const QUrl &url, data.urls() ) { if ( !bytes.isEmpty() ) bytes += '\n'; bytes += url.toString().toUtf8(); } return bytes; }
QMimeData* WGMergeProxy::mimeData(const QModelIndexList &indexes) const { QMimeData* data = new QMimeData(); for(const auto& index : indexes) { auto pair = mappingFromIndex(index); if(pair.first) { QMimeData* mimeData = pair.first->model_->mimeData({index}); for (auto& format : mimeData->formats()) { data->setData(format, mimeData->data(format)); } } } return data; }
void DataDeviceManager::overrideSelection(const QMimeData &mimeData) { QStringList formats = mimeData.formats(); if (formats.isEmpty()) return; m_retainedData.clear(); foreach (const QString &format, formats) m_retainedData.setData(format, mimeData.data(format)); m_compositor->feedRetainedSelectionData(&m_retainedData); m_compositorOwnsSelection = true; InputDevice *dev = m_compositor->defaultInputDevice(); Surface *focusSurface = dev->keyboardFocus(); if (focusSurface) offerFromCompositorToClient( dev->dataDevice(focusSurface->base()->resource.client)->dataDeviceResource()); }
void DataDeviceManager::overrideSelection(const QMimeData &mimeData) { QStringList formats = mimeData.formats(); if (formats.isEmpty()) return; m_retainedData.clear(); foreach (const QString &format, formats) m_retainedData.setData(format, mimeData.data(format)); QWaylandCompositorPrivate::get(m_compositor)->feedRetainedSelectionData(&m_retainedData); m_compositorOwnsSelection = true; QWaylandSeat *dev = m_compositor->defaultSeat(); QWaylandSurface *focusSurface = dev->keyboardFocus(); if (focusSurface) offerFromCompositorToClient( QWaylandSeatPrivate::get(dev)->dataDevice()->resourceMap().value(focusSurface->waylandClient())->handle); }
void ColumnNameView::mousePressEvent(QMouseEvent *press) { QModelIndex atClick = indexAt(press->pos()); if (!atClick.isValid()) return; QRect indexRect = visualRect(atClick); QPixmap pix(indexRect.width(), indexRect.height()); pix.fill(QColor(0,0,0,0)); render(&pix, QPoint(0, 0),QRegion(indexRect)); QDrag *drag = new QDrag(this); QMimeData *mimeData = new QMimeData; mimeData->setData(subsurface_mimedata, atClick.data().toByteArray()); model()->removeRow(atClick.row()); drag->setPixmap(pix); drag->setMimeData(mimeData); if (drag->exec() == Qt::IgnoreAction){ model()->insertRow(model()->rowCount()); QModelIndex idx = model()->index(model()->rowCount()-1, 0); model()->setData(idx, mimeData->data(subsurface_mimedata)); } }
void PlayListW::mousePressEvent(QMouseEvent *event) { QListWidget::mousePressEvent(event); if ( event->button() == Qt::LeftButton ) { QListWidgetItem *item = currentItem(); QDrag *drag = new QDrag(this); QMimeData *mimeData = new QMimeData(); //Playlist Id, convoluted? indeed QByteArray playlistba; playlistba.append(item->text()); mimeData->setText(item->text()); mimeData->setData("application/playlist-id", playlistba); drag->setMimeData(mimeData); qDebug() << "Start Playlist Drag: " << mimeData->text() << " " << mimeData->data("application/playlist-id").toInt(); Qt::DropAction dropAction = drag->start(Qt::CopyAction); // [WTF] } }
void PasteData(const QMimeData& data) { if (data.hasUrls()) { const QList<QUrl>& urls = data.urls(); QStringList files; std::for_each(urls.begin(), urls.end(), boost::bind(&QStringList::push_back, &files, boost::bind(&QUrl::toLocalFile, _1))); AddItems(files); } else if (data.hasFormat(ITEMS_MIMETYPE)) { const QByteArray& encodedData = data.data(ITEMS_MIMETYPE); QStringList items; { QDataStream stream(encodedData); stream >> items; } //pasting is done immediately, so update UI right here const Playlist::Scanner::Ptr scanner = Controller->GetScanner(); scanner->PasteItems(items); } else if (data.hasText())