void KUrlMimeTest::testMostLocalUrlList() { QMimeData* mimeData = new QMimeData; KUrl::List urls; urls.append(KUrl("desktop:/foo")); urls.append(KUrl("desktop:/bar")); KUrl::List localUrls; localUrls.append(KUrl("file:/home/dfaure/Desktop/foo")); localUrls.append(KUrl("file:/home/dfaure/Desktop/bar")); urls.populateMimeData(localUrls, mimeData); QVERIFY(KUrl::List::canDecode(mimeData)); QVERIFY(mimeData->hasUrls()); QVERIFY(mimeData->hasText()); QVERIFY(mimeData->hasFormat("text/plain")); // KUrl decodes the real "kde" urls by default KUrl::List decodedURLs = KUrl::List::fromMimeData(mimeData); QVERIFY(!decodedURLs.isEmpty()); QCOMPARE(decodedURLs.toStringList().join(" "), urls.toStringList().join(" ") ); // KUrl can also be told to decode the "most local" urls decodedURLs = KUrl::List::fromMimeData(mimeData, 0, KUrl::List::PreferLocalUrls); QVERIFY(!decodedURLs.isEmpty()); QCOMPARE(decodedURLs.toStringList().join(" "), localUrls.toStringList().join(" ") ); // QMimeData decodes the "most local" urls const QList<QUrl> qurls = mimeData->urls(); QCOMPARE(qurls.count(), localUrls.count()); for (int i = 0; i < qurls.count(); ++i ) QCOMPARE(qurls[i], static_cast<QUrl>(localUrls[i])); }
void tst_QMimeData::hasFormat() const { QMimeData mimeData; // initial state QVERIFY(mimeData.hasFormat("text/plain") == false); // add, verify mimeData.setData("text/plain", "pirates"); QVERIFY(mimeData.hasFormat("text/plain")); QVERIFY(mimeData.hasFormat("text/html") == false); // clear, verify mimeData.clear(); QVERIFY(mimeData.hasFormat("text/plain") == false); QVERIFY(mimeData.hasFormat("text/html") == false); }
void TreeView::startDrag( Qt::DropActions supportedActions ) { QList<QPersistentModelIndex> pindexes; QModelIndexList indexes; foreach( const QModelIndex& idx, selectedIndexes() ) { if ( ( m_proxyModel->flags( idx ) & Qt::ItemIsDragEnabled ) ) { indexes << idx; pindexes << idx; } } if ( indexes.count() == 0 ) return; qDebug() << "Dragging" << indexes.count() << "indexes"; QMimeData* data = m_proxyModel->mimeData( indexes ); if ( !data ) return; QDrag* drag = new QDrag( this ); drag->setMimeData( data ); QPixmap p; if ( data->hasFormat( "application/tomahawk.metadata.artist" ) ) p = TomahawkUtils::createDragPixmap( TomahawkUtils::MediaTypeArtist, indexes.count() ); else if ( data->hasFormat( "application/tomahawk.metadata.album" ) ) p = TomahawkUtils::createDragPixmap( TomahawkUtils::MediaTypeAlbum, indexes.count() ); else p = TomahawkUtils::createDragPixmap( TomahawkUtils::MediaTypeTrack, indexes.count() ); drag->setPixmap( p ); drag->setHotSpot( QPoint( -20, -20 ) ); drag->exec( supportedActions, Qt::CopyAction ); }
SectionContainer::SectionContainer(const SectionContainer& _rhs, Section* _section) : m_section(0), m_layer(0), m_rootSection(0), m_sectionModel(0) { initContainer(_section, _rhs.m_rootSection); KoShapeOdfSaveHelper saveHelper(_rhs.m_layer->shapes()); KoDrag drag; drag.setOdf(KoOdf::mimeType(KoOdf::Text), saveHelper); QMimeData* mimeData = drag.mimeData(); Q_ASSERT(mimeData->hasFormat(KoOdf::mimeType(KoOdf::Text))); SectionContainerShapePaste paste(this, m_layer, _section->layout()); bool success = paste.paste(KoOdf::Text, mimeData); Q_ASSERT(success); Q_UNUSED(success) delete mimeData; }
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())
void tst_QMimeData::removeFormat() const { QMimeData mimeData; // add, verify mimeData.setData("text/plain", "pirates"); QVERIFY(mimeData.hasFormat("text/plain")); // add another, verify mimeData.setData("text/html", "ninjas"); QVERIFY(mimeData.hasFormat("text/html")); // remove, verify mimeData.removeFormat("text/plain"); QVERIFY(mimeData.hasFormat("text/plain") == false); QVERIFY(mimeData.hasFormat("text/html")); // remove, verify mimeData.removeFormat("text/html"); QVERIFY(mimeData.hasFormat("text/plain") == false); QVERIFY(mimeData.hasFormat("text/html") == false); }