void tst_QMimeData::setUrls() const { QMimeData mimeData; QList<QUrl> shortUrlList; QList<QUrl> longUrlList; // set up shortUrlList += QUrl("http://qt-project.org"); longUrlList = shortUrlList; longUrlList += QUrl("http://www.google.com"); // verify initial state QCOMPARE(mimeData.hasUrls(), false); // set a few, verify mimeData.setUrls(shortUrlList); QCOMPARE(mimeData.urls(), shortUrlList); QCOMPARE(mimeData.text(), QString("http://qt-project.org")); // change them, verify mimeData.setUrls(longUrlList); QCOMPARE(mimeData.urls(), longUrlList); QCOMPARE(mimeData.text(), QString("http://qt-project.org\nhttp://www.google.com\n")); // clear, verify mimeData.clear(); QCOMPARE(mimeData.hasUrls(), false); QCOMPARE(mimeData.hasText(), false); }
void task_list::mouseMoveEvent(QMouseEvent *event) { // if not left button - return if (!(event->buttons() & Qt::LeftButton)) return; // if no item selected, return (else it would crash) if (currentItem() == NULL) return; if(currentItem()->type()==0) { QDrag *drag = new QDrag(this); QMimeData *mimeData = new QMimeData; // construct list of QUrls // other widgets accept this mime type, we can drop to them QList<QUrl> list; list.append(QUrl(this->currentItem()->text(0))); list.append(QUrl(this->currentItem()->text(1))); list.append(QUrl(this->currentItem()->text(2))); list.append(QUrl(this->currentItem()->text(3))); list.append(QUrl(this->currentItem()->text(4))); // mime stuff mimeData->setUrls(list); drag->setMimeData(mimeData); // start drag drag->start(Qt::CopyAction | Qt::MoveAction); } if(currentItem()->type()==1) { QDrag *drag = new QDrag(this); QMimeData *mimeData = new QMimeData; // construct list of QUrls // other widgets accept this mime type, we can drop to them QList<QUrl> list; list.append(QUrl(this->currentItem()->text(0))); list.append(QUrl(this->currentItem()->text(1))); list.append(QUrl(this->currentItem()->text(2))); list.append(QUrl(this->currentItem()->text(3))); list.append(QUrl(this->currentItem()->text(4))); // mime stuff mimeData->setUrls(list); drag->setMimeData(mimeData); // start drag drag->start( Qt::CopyAction | Qt::MoveAction); } }
void PlayListView::mouseMoveEvent(QMouseEvent *event){ // // if not left button - return if (!(event->buttons() & Qt::LeftButton)) return; // if no item selected, return (else it would crash) if (currentItem() == NULL) return; QDrag *drag = new QDrag(this); QMimeData *mimeData = new QMimeData; // construct list of QUrls // other widgets accept this mime type, we can drop to them QList<QUrl> list; QString line; line = currentItem()->text(0); // 0 == first Column of QTreeWidgetItem list.append( QUrl(line) ); // only QUrl in list will be text of actual item // mime stuff mimeData->setUrls(list); //mimeData->setData( line.toUtf8(), "text/uri-list" ); drag->setMimeData(mimeData); RG_DEBUG << "Starting drag from PlayListView::mouseMoveEvent() with mime : " << mimeData->formats() << " - " << mimeData->urls()[0] << endl; // start drag drag->start(Qt::CopyAction | Qt::MoveAction); }
void StudioPaletteTreeViewer::startDragDrop() { TRepetitionGuard guard; if (!guard.hasLock()) return; QDrag *drag = new QDrag(this); QMimeData *mimeData = new QMimeData; QList<QUrl> urls; QList<QTreeWidgetItem *> items = selectedItems(); int i; for (i = 0; i < items.size(); i++) { // Sposto solo le palette. TFilePath path = getItemPath(items[i]); if (!path.isEmpty() && (path.getType() == "tpl" || path.getType() == "pli" || path.getType() == "tlv" || path.getType() == "tnz")) urls.append(pathToUrl(path)); } if (urls.isEmpty()) return; mimeData->setUrls(urls); drag->setMimeData(mimeData); Qt::DropAction dropAction = drag->exec(Qt::CopyAction | Qt::MoveAction); viewport()->update(); }
// Copy/cut current file item(s) to clipboard. void qtractorFileListView::copyItem ( bool bCut ) { // Build URL list... QList<QUrl> urls; int iUpdate = 0; QList<QTreeWidgetItem *> items = selectedItems(); QListIterator<QTreeWidgetItem *> iter(items); while (iter.hasNext()) { QTreeWidgetItem *pItem = iter.next(); if (pItem->type() == qtractorFileListView::FileItem) { qtractorFileListItem *pFileItem = static_cast<qtractorFileListItem *> (pItem); if (pFileItem) { urls.append(QUrl::fromLocalFile(pFileItem->path())); if (bCut) { delete pFileItem; ++iUpdate; } } } } // Copy it to system clipboard... if (!urls.isEmpty()) { QMimeData *pMimeData = new QMimeData(); pMimeData->setUrls(urls); QApplication::clipboard()->setMimeData(pMimeData); } // Make proper notifications... if (iUpdate > 0) emit contentsChanged(); }
void KIOPasteTest::testPasteActionText() { QFETCH(QList<QUrl>, urls); QFETCH(bool, data); QFETCH(bool, expectedEnabled); QFETCH(QString, expectedText); QMimeData mimeData; if (!urls.isEmpty()) { mimeData.setUrls(urls); } if (data) { mimeData.setText(QStringLiteral("foo")); } QCOMPARE(KIO::canPasteMimeData(&mimeData), expectedEnabled); bool canPaste; KFileItem destItem(QUrl::fromLocalFile(QDir::homePath())); QCOMPARE(KIO::pasteActionText(&mimeData, &canPaste, destItem), expectedText); QCOMPARE(canPaste, expectedEnabled); KFileItem nonWritableDestItem(QUrl::fromLocalFile(QStringLiteral("/nonwritable"))); QCOMPARE(KIO::pasteActionText(&mimeData, &canPaste, nonWritableDestItem), expectedText); QCOMPARE(canPaste, false); KFileItem emptyUrlDestItem = KFileItem(QUrl()); QCOMPARE(KIO::pasteActionText(&mimeData, &canPaste, emptyUrlDestItem), expectedText); QCOMPARE(canPaste, false); KFileItem nullDestItem; QCOMPARE(KIO::pasteActionText(&mimeData, &canPaste, nullDestItem), expectedText); QCOMPARE(canPaste, false); }
void SiteIcon::mouseMoveEvent(QMouseEvent* e) { if (!m_locationBar || !(e->buttons() & Qt::LeftButton)) { ToolButton::mouseMoveEvent(e); return; } int manhattanLength = (e->pos() - m_dragStartPosition).manhattanLength(); if (manhattanLength <= QApplication::startDragDistance()) { ToolButton::mouseMoveEvent(e); return; } const QUrl url = m_locationBar->webView()->url(); const QString title = m_locationBar->webView()->title(); if (url.isEmpty() || title.isEmpty()) { ToolButton::mouseMoveEvent(e); return; } QDrag* drag = new QDrag(this); QMimeData* mime = new QMimeData; mime->setUrls(QList<QUrl>() << url); mime->setText(title); mime->setImageData(icon().pixmap(16, 16).toImage()); drag->setMimeData(mime); drag->setPixmap(QzTools::createPixmapForSite(icon(), title, url.toString())); drag->exec(); }
void BookmarksToolBar::mouseMoveEvent(QMouseEvent *event) { if (!(event->buttons() & Qt::LeftButton)) { QToolBar::mouseMoveEvent(event); return; } if ((event->pos() - m_dragStartPosition).manhattanLength() < QApplication::startDragDistance()) { QToolBar::mouseMoveEvent(event); return; } QAction *action = actionAt(m_dragStartPosition); QModelIndex index = this->index(action); if (!index.isValid()) { QToolBar::mouseMoveEvent(event); return; } QString title = index.data().toString(); QUrl url = index.data(BookmarksModel::UrlRole).toUrl(); QDrag *drag = new QDrag(this); QMimeData *mimeData = new QMimeData(); mimeData->setText(title); mimeData->setUrls(QList<QUrl>() << url); drag->setMimeData(mimeData); drag->exec(Qt::CopyAction); }
bool PlaylistModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) { // Internal reorder if (action == Qt::MoveAction) { m_dropRow = row; return true; } // Dragged from player or file manager else if (data->hasFormat("application/mlt+xml") || data->hasUrls()) { emit dropped(data, row); return true; } // Dragged from Recent dock else if (data->hasFormat("application/x-qabstractitemmodeldatalist")) { QByteArray encoded = data->data("application/x-qabstractitemmodeldatalist"); QDataStream stream(&encoded, QIODevice::ReadOnly); QMap<int, QVariant> roleDataMap; while (!stream.atEnd()) { int row, col; stream >> row >> col >> roleDataMap; } if (roleDataMap.contains(Qt::ToolTipRole)) { QMimeData *mimeData = new QMimeData; QList<QUrl> urls; // DisplayRole is just basename, ToolTipRole contains full path urls.append(roleDataMap[Qt::ToolTipRole].toUrl()); mimeData->setUrls(urls); emit dropped(mimeData, row); return true; } }
void CTreeView::mousePressEvent(QMouseEvent *event) { // if not left button - return QTreeView::mousePressEvent(event); if (!(event->buttons() & Qt::LeftButton)) { return; } // if no item selected, return (else it would crash) QModelIndex index = currentIndex(); if (index.isValid() == false) { return; } if (index.parent().isValid() == false) { return; } QDrag *drag = new QDrag(this); QMimeData *mimeData = new QMimeData; // construct list of QUrls // other widgets accept this mime type, we can drop to them QList<QUrl> list; list.push_back(index.parent().child(index.row(), 0).data().toUrl()); list.push_back(index.parent().child(index.row(), 1).data().toUrl()); // mime stuff mimeData->setUrls(list); mimeData->setText("Item"); drag->setMimeData(mimeData); // start drag drag->start(Qt::CopyAction | Qt::MoveAction); }
QMimeData* BrowseTableModel::mimeData(const QModelIndexList &indexes) const { QMimeData *mimeData = new QMimeData(); QList<QUrl> urls; // Ok, so the list of indexes we're given contains separates indexes for // each column, so even if only one row is selected, we'll have like 7 // indexes. We need to only count each row once: QList<int> rows; foreach (QModelIndex index, indexes) { if (index.isValid()) { if (!rows.contains(index.row())) { rows.push_back(index.row()); QUrl url = QUrl::fromLocalFile(getTrackLocation(index)); if (!url.isValid()) { qDebug() << "ERROR invalid url\n"; } else { urls.append(url); qDebug() << "Appending URL:" << url; } } } } mimeData->setUrls(urls); return mimeData; }
void TabBar::mouseMoveEvent(QMouseEvent *event) { if (event->buttons() == Qt::LeftButton) { #if QT_VERSION >= 0x040500 int diffX = event->pos().x() - m_dragStartPos.x(); int diffY = event->pos().y() - m_dragStartPos.y(); #endif if ((event->pos() - m_dragStartPos).manhattanLength() > QApplication::startDragDistance() #if QT_VERSION >= 0x040500 && diffX < 3 && diffX > -3 && diffY < -10 #endif ) { QDrag *drag = new QDrag(this); QMimeData *mimeData = new QMimeData; QList<QUrl> urls; int index = tabAt(event->pos()); QUrl url = tabData(index).toUrl(); urls.append(url); mimeData->setUrls(urls); mimeData->setText(tabText(index)); mimeData->setData(QLatin1String("action"), "tab-reordering"); drag->setMimeData(mimeData); drag->exec(); } } QTabBar::mouseMoveEvent(event); }
QMimeData* BookmarksModel::mimeData(const QModelIndexList &indexes) const { QMimeData *mimeData = new QMimeData(); QStringList texts; QList<QUrl> urls; if (indexes.count() == 1) { mimeData->setProperty("x-item-index", indexes.at(0)); } for (int i = 0; i < indexes.count(); ++i) { if (indexes.at(i).isValid() && static_cast<BookmarkType>(indexes.at(i).data(TypeRole).toInt()) == UrlBookmark) { texts.append(indexes.at(i).data(UrlRole).toString()); urls.append(indexes.at(i).data(UrlRole).toUrl()); } } mimeData->setText(texts.join(QLatin1String(", "))); mimeData->setUrls(urls); return mimeData; }
void FormPlaylist::kopiuj() { QMimeData *mimeData = new QMimeData; QList<QUrl> urls = getCopyData(); mimeData->setUrls( urls ); urls.clear(); clipboard->setMimeData(mimeData); }
static QMimeData* mimeDataFor(const KUrl& url) { QMimeData* data = new QMimeData(); QList<QUrl> urlList; urlList.append(QUrl(url)); data->setUrls(urlList); return data; }
QMimeData* TreeWidget::mimeData( const QList<QTreeWidgetItem*> items ) const { QList<QUrl> list; Q_FOREACH( QTreeWidgetItem *item, items ) list << url( indexFromItem( item ) ); QMimeData *data = new QMimeData(); data->setUrls( list ); return data; }
QMimeData* DeclarativeDragItemWithUrl::mimeData() const { QMimeData* data = new QMimeData; if (!m_url.isEmpty()) { QList<QUrl> urls; urls.append(decodeUri(m_url)); data->setUrls(urls); } return data; }
QMimeData * RecentDocuments::mimeDataForMatch(const Plasma::QueryMatch * match) { QMimeData * result = new QMimeData(); QList<QUrl> urls; urls << QUrl(match->data().toString()); result->setUrls(urls); result->setText(match->data().toString()); return result; }
/*! \reimp */ QMimeData *QUrlModel::mimeData(const QModelIndexList &indexes) const { QList<QUrl> list; for (int i = 0; i < indexes.count(); ++i) { if (indexes.at(i).column() == 0) list.append(indexes.at(i).data(UrlRole).toUrl()); } QMimeData *data = new QMimeData(); data->setUrls(list); return data; }
/*! \reimp */ QMimeData *QUrlModel::mimeData(const QModelIndexList &indexes) const { QList<QUrl> list; for (const auto &index : indexes) { if (index.column() == 0) list.append(index.data(UrlRole).toUrl()); } QMimeData *data = new QMimeData(); data->setUrls(list); return data; }
QMimeData * BookmarksRunner::mimeDataForMatch(const Plasma::QueryMatch &match) { QMimeData * result = new QMimeData(); QList<QUrl> urls; urls << QUrl(match.data().toString()); result->setUrls(urls); result->setText(match.data().toString()); return result; }
QMimeData* Drive::mimeData(const QModelIndexList &indexes) const { QList<QUrl> urls; QList<QModelIndex>::const_iterator it = indexes.begin(); for (; it != indexes.end(); ++it) if ((*it).column() == 0) urls << QUrl::fromLocalFile(this->results_[it->row()].absoluteFilePath()); QMimeData *data = new QMimeData(); data->setUrls(urls); return data; }
void Pasteboard::writeURL(const KURL& url, const String&, Frame*) { ASSERT(!url.isEmpty()); #ifndef QT_NO_CLIPBOARD QMimeData* md = new QMimeData; QString urlString = url.string(); md->setText(urlString); md->setUrls(QList<QUrl>() << url); QGuiApplication::clipboard()->setMimeData(md, m_selectionMode ? QClipboard::Selection : QClipboard::Clipboard); #endif }
void AsemanDevices::setClipboardUrl(const QList<QUrl> &urls) { QString data = "copy"; foreach( const QUrl &url, urls ) data += "\nfile://" + url.toLocalFile(); QMimeData *mime = new QMimeData(); mime->setUrls(urls); mime->setData( "x-special/gnome-copied-files", data.toUtf8() ); QGuiApplication::clipboard()->setMimeData(mime); }
void DraggableLabel::dragPixmap() { const QPixmap *currentPixmap = pixmap(); if (currentPixmap == NULL) return; // Make temp file QTemporaryFile *tempFile = new QTemporaryFile(AppTools::addPathSeparator(QDir::tempPath()) + DRAG_LABEL_FILENAME_TEMPLATE); tempFile->setAutoRemove(false); if (!tempFile->open()) { delete tempFile; return; } // Arrange data QMimeData *data = new QMimeData; data->setImageData(currentPixmap->toImage()); // Save pixmap QString tempFileName = tempFile->fileName(); currentPixmap->save(tempFileName); delete tempFile; QDEBUG("Dragged file saved to " << tempFileName); // Keep its name QList <QUrl> urls; urls.append(QUrl::fromLocalFile(tempFileName)); data->setUrls(urls); QPixmap preview = currentPixmap->scaled(DRAG_LABEL_PREVIEW_WIDTH, DRAG_LABEL_PREVIEW_HEIGHT, Qt::KeepAspectRatio); QPixmap preview2(preview.width(), preview.height()); preview2.fill(QColor(180, 180, 180)); preview.setAlphaChannel(preview2); // Go drag QDrag *drag = new QDrag(this); drag->setPixmap(preview); drag->setMimeData(data); drag->setHotSpot(QPoint(preview.width() / 2, preview.height() / 2)); // Let's go! drag->exec(Qt::MoveAction); }
QMimeData* FileSystemModel::mimeData(const QModelIndexList & indexes) const { QList<QUrl> urls; for (QList<QModelIndex>::const_iterator it = indexes.begin(); it != indexes.end(); ++it) { if ((*it).column() == 0) { urls << QUrl::fromLocalFile(absolutePath(*it)); } } QMimeData *data = new QMimeData(); data->setUrls(urls); return data; }
void WTrackText::mouseMoveEvent(QMouseEvent *event) { if ((event->buttons() & Qt::LeftButton) && m_pCurrentTrack) { QList<QUrl> locationUrls; locationUrls.append(QUrl::fromLocalFile(m_pCurrentTrack->getLocation())); QMimeData* mimeData = new QMimeData(); mimeData->setUrls(locationUrls); QDrag* drag = new QDrag(this); drag->setMimeData(mimeData); drag->setPixmap(QPixmap(":images/library/ic_library_drag_and_drop.png")); drag->exec(Qt::CopyAction); } }
void KIOPasteTest::testPasteJob() { QFETCH(QList<QUrl>, urls); QFETCH(bool, data); QFETCH(bool, cut); QFETCH(QString, expectedFileName); QMimeData mimeData; bool isDir = false; bool isFile = false; if (!urls.isEmpty()) { mimeData.setUrls(urls); QFileInfo fileInfo(urls.first().toLocalFile()); isDir = fileInfo.isDir(); isFile = fileInfo.isFile(); } if (data) { mimeData.setText(QStringLiteral("Hello world")); } KIO::setClipboardDataCut(&mimeData, cut); QTemporaryDir destTempDir; QVERIFY(destTempDir.isValid()); const QString destDir = destTempDir.path(); KIO::Job *job = KIO::paste(&mimeData, QUrl::fromLocalFile(destDir), KIO::HideProgressInfo); QSignalSpy spy(job, SIGNAL(itemCreated(QUrl))); QVERIFY(spy.isValid()); job->setUiDelegate(0); const bool expectedSuccess = !expectedFileName.isEmpty(); QCOMPARE(job->exec(), expectedSuccess); if (expectedSuccess) { const QString destFile = destDir + '/' + expectedFileName; QVERIFY2(QFile::exists(destFile), qPrintable(expectedFileName)); if (isDir) { QVERIFY(QFileInfo(destFile).isDir()); } else { QVERIFY(QFileInfo(destFile).isFile()); QFile file(destFile); QVERIFY(file.open(QIODevice::ReadOnly)); QCOMPARE(QString(file.readAll()), QString("Hello world")); } if (cut) { QVERIFY(!QFile::exists(urls.first().toLocalFile())); } else { QVERIFY(QFile::exists(urls.first().toLocalFile())); } QCOMPARE(spy.count(), isFile || cut ? 1 : 2); QCOMPARE(spy.at(0).at(0).value<QUrl>().toLocalFile(), destFile); } }
void UBLibraryAPI::startDrag(QString pUrl) { QDrag *drag = new QDrag(mWebView); QMimeData *mimeData = new QMimeData; QList<QUrl> urls; urls << QUrl(pUrl); mimeData->setUrls(urls); drag->setMimeData(mimeData); drag->exec(Qt::CopyAction); }
void UrlIconLabel::mouseMoveEvent(QMouseEvent *event) { if (event->buttons() == Qt::LeftButton && (event->pos() - m_dragStartPos).manhattanLength() > QApplication::startDragDistance() && m_webView) { QDrag *drag = new QDrag(this); QMimeData *mimeData = new QMimeData; mimeData->setText(QString::fromUtf8(m_webView->url().toEncoded())); QList<QUrl> urls; urls.append(m_webView->url()); mimeData->setUrls(urls); drag->setMimeData(mimeData); drag->exec(); } }