void ResultsJsInterface::pushImageToClipboard(const QByteArray &base64, const QString &html) { QMimeData *mimeData = new QMimeData(); QByteArray byteArray = QByteArray::fromBase64(base64); QImage pm; if(pm.loadFromData(byteArray)) { #ifdef __WIN32__ //needed because jpegs/clipboard doesn't support transparency in windows QImage image2(pm.size(), QImage::Format_ARGB32); image2.fill(Qt::white); QPainter painter(&image2); painter.drawImage(0, 0, pm); mimeData->setImageData(image2); #else mimeData->setImageData(pm); #endif } if ( ! html.isEmpty()) mimeData->setHtml(html); if (mimeData->hasImage() || mimeData->hasHtml()) { QClipboard *clipboard = QApplication::clipboard(); clipboard->setMimeData(mimeData, QClipboard::Clipboard); } }
void TerrainProfileGraph::onCopyToClipboard() { const osgEarth::Util::TerrainProfile profile = _calculator->getProfile(); if (profile.getNumElevations() > 0) { const QLatin1String fieldSeparator(","); GeoPoint startPt = _calculator->getStart(ALTMODE_ABSOLUTE); GeoPoint endPt = _calculator->getEnd(ALTMODE_ABSOLUTE); QString profileInfo = QString("Start:,%1,%2\nEnd:,%3,%4\n") .arg(_coordinateFormatter->format(startPt).c_str()).arg(startPt.alt()) .arg(_coordinateFormatter->format(endPt).c_str()).arg(endPt.alt()); QString distanceInfo("Distance:"); QString elevationInfo("Elevation:"); for (unsigned int i = 0; i < profile.getNumElevations(); i++) { distanceInfo += fieldSeparator + QString::number(profile.getDistance(i)); elevationInfo += fieldSeparator + QString::number(profile.getElevation(i)); } profileInfo += distanceInfo + QString("\n") + elevationInfo; QImage graphImage(_graphWidth, _graphHeight, QImage::Format_RGB32); QPainter p; p.begin(&graphImage); _scene->render(&p); p.end(); QMimeData* clipData = new QMimeData(); clipData->setText(profileInfo); clipData->setImageData(graphImage); QApplication::clipboard()->setMimeData(clipData); } }
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 Document::copyFromLayer(int layer) { if(!m_canvas) { qWarning("copyFromLayer: no canvas!"); return; } QMimeData *data = new QMimeData; data->setImageData(m_canvas->selectionToImage(layer)); // Store also original coordinates QPoint srcpos; if(m_canvas->selection()) { srcpos = m_canvas->selection()->boundingRect().center(); } else { QSize s = m_canvas->layerStack()->size(); srcpos = QPoint(s.width()/2, s.height()/2); } QByteArray srcbuf = QByteArray::number(srcpos.x()) + "," + QByteArray::number(srcpos.y()); data->setData("x-drawpile/pastesrc", srcbuf); QApplication::clipboard()->setMimeData(data); }
void LayerEditScene::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { if(!event->buttons() & Qt::LeftButton) { return; } if((event->scenePos() - _dragStartPosition).manhattanLength() < QApplication::startDragDistance()) { return; } qDebug() << "LayerEditScene::mouseMoveEvent - Starting a drag"; // Get the pixmap item related to the start of the drag. QGraphicsItem *item = itemAt(_dragStartPosition, QTransform()); if(item == 0) { // Couldn't find an item at the location for some reason. qDebug() << "LayerEditScene::mouseMoveEvent - Could not find a sprite at the drag location."; return; } // Static cast is safe because this scene only adds QGraphicsPixmapItem QGraphicsPixmapItem *pixmapItem = static_cast<QGraphicsPixmapItem *>(item); // Remove item from scene Sprite sprite = _pixmapToSprite[pixmapItem]; // Save sprite before it's removed. qDebug() << "LayerEditScene::mouseMoveEvent - Dragging " << sprite.getFileInfo().fileName(); int index = _previews.indexOf(pixmapItem); if(index != -1) { removeSprite(index); recalculatePositions(); } // Create a new drag event and put the source image into the mime data. QDrag *drag = new QDrag((QObject *)event->widget()); QMimeData *data = new QMimeData(); data->setImageData(sprite.getTexture()); data->setText(sprite.getFileInfo().absoluteFilePath()); drag->setMimeData(data); // Put the pixmap that was selected onto the cursor QPixmap pixmap = pixmapItem->pixmap(); drag->setPixmap(pixmap); drag->setHotSpot(QPoint(pixmap.width() / 2, pixmap.height() / 2)); // Execute the drag with a move action. qDebug() << "LayerEditScene::mouseMoveEvent - Executing drag as MoveAction"; Qt::DropAction action = drag->exec(Qt::MoveAction, Qt::MoveAction); if(action != Qt::MoveAction) { // Put sprite back qDebug() << "LayerEditScene::mouseMoveEvent - Move action failed, putting sprite back where it was."; insertSprite(index, sprite); recalculatePositions(); } else { // Delete the old item qDebug() << "LayerEditScene::mouseMoveEvent - Move succeeded, deleting old sprite."; delete pixmapItem; } }
QMimeData* PictureImage::dragObject(QWidget *dragSource, const char *name) { Q_UNUSED(dragSource); // Was used in Qt3? QMimeData* mimeData = new QMimeData(); mimeData->setImageData(m_originalImage); mimeData->setObjectName(name); return mimeData; }
void MainWindow::mouseMoveEvent(QMouseEvent *event) { if(drag_start_ && (event->buttons() & Qt::LeftButton) && (event->pos() - drag_start_pos_).manhattanLength() >= QApplication::startDragDistance()) { QDrag *d = new QDrag(this); QMimeData *m = new QMimeData(); if(drag_use_rc_) m->setImageData(this->img_transview_); else m->setImageData(this->img_original_); d->setMimeData(m); ignore_drops_ = true; d->exec(Qt::CopyAction); ignore_drops_ = drag_start_ = false; } }
//! [2] void MyWidget::mousePressEvent(QMouseEvent *event) { //! [2] QString text = dataLabel->text(); QPixmap iconPixmap(32, 32); iconPixmap.fill(qRgba(255, 0, 0, 127)); QImage image(100, 100, QImage::Format_RGB32); image.fill(qRgb(0, 0, 255)); //! [3] if (event->button() == Qt::LeftButton) { QDrag *drag = new QDrag(this); QMimeData *mimeData = new QMimeData; mimeData->setText(text); mimeData->setImageData(image); drag->setMimeData(mimeData); drag->setPixmap(iconPixmap); Qt::DropAction dropAction = drag->exec(); //! [3] // ... //! [4] event->accept(); } //! [4] else if (event->button() == Qt::MidButton) { QDrag *drag = new QDrag(this); QMimeData *mimeData = new QMimeData; mimeData->setImageData(image); drag->setMimeData(mimeData); drag->setPixmap(iconPixmap); Qt::DropAction dropAction = drag->exec(); // ... event->accept(); } //! [5] }
void TeamPokeButton::startDrag() { QMimeData * data = new QMimeData(); data->setText(this->text()); data->setImageData(*pokeIcon->pixmap()); QDrag * drag = new QDrag(this); drag->setMimeData(data); drag->setPixmap(*pokeIcon->pixmap()); drag->exec(Qt::MoveAction); emit clicked(); }
QMimeData* PictureBase::dragObject(QWidget * dragSource, const char * name) { Q_UNUSED(dragSource); QImage image(generateImage(getOriginalSize())); if (image.isNull()) return 0; else { QMimeData* mimeData = new QMimeData(); mimeData->setImageData(image); mimeData->setObjectName(name); return mimeData; // XXX: Qt3 use dragsource here? } }
void TB_PokemonItem::startDrag() { QMimeData * data = new QMimeData(); QVariant v; v.setValue(box); data->setProperty("Box", v); data->setProperty("Item", box->getNumOf(this)); data->setImageData(pixmap()); QDrag * drag = new QDrag(box->parentWidget()); drag->setMimeData(data); drag->setPixmap(pixmap()); drag->setHotSpot(QPoint(pixmap().width()/2,pixmap().height()/2)); drag->exec(Qt::MoveAction); }
void PokemonBoxButton::startDrag() { QMimeData * data = new QMimeData(); data->setProperty("TeamSlot", num); data->setImageData(px); QDrag * drag = new QDrag(this); drag->setMimeData(data); drag->setPixmap(px); drag->setHotSpot(QPoint(px.width()/2,px.height()/2)); drag->exec(Qt::MoveAction); emit dragStarted(num); }
void UBGraphicsPixmapItem::mousePressEvent(QGraphicsSceneMouseEvent *event) { QMimeData* pMime = new QMimeData(); pMime->setImageData(pixmap().toImage()); mDelegate->setMimeData(pMime); if (mDelegate->mousePressEvent(event)) { //NOOP } else { QGraphicsPixmapItem::mousePressEvent(event); } }
void QDragLabel::mousePressEvent(QMouseEvent *event) { if (event->button() == Qt::LeftButton){ QDrag* drag = new QDrag(this); QMimeData* mime = new QMimeData; mime->setText(this->class_name); mime->setImageData(this->pixmap()->toImage()); drag->setMimeData(mime); drag->setPixmap(*this->pixmap()); Qt::DropAction dropAction = drag->exec(); } }
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); }
//! [5] void ColorItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { if (QLineF(event->screenPos(), event->buttonDownScreenPos(Qt::LeftButton)) .length() < QApplication::startDragDistance()) { return; } QDrag *drag = new QDrag(event->widget()); QMimeData *mime = new QMimeData; drag->setMimeData(mime); //! [5] //! [6] static int n = 0; if (n++ > 2 && (qrand() % 3) == 0) { QImage image(":/images/head.png"); mime->setImageData(image); drag->setPixmap(QPixmap::fromImage(image).scaled(30, 40)); drag->setHotSpot(QPoint(15, 30)); //! [6] //! [7] } else { mime->setColorData(color); mime->setText(QString("#%1%2%3") .arg(color.red(), 2, 16, QLatin1Char('0')) .arg(color.green(), 2, 16, QLatin1Char('0')) .arg(color.blue(), 2, 16, QLatin1Char('0'))); QPixmap pixmap(34, 34); pixmap.fill(Qt::white); QPainter painter(&pixmap); painter.translate(15, 15); painter.setRenderHint(QPainter::Antialiasing); paint(&painter, 0, 0); painter.end(); pixmap.setMask(pixmap.createHeuristicMask()); drag->setPixmap(pixmap); drag->setHotSpot(QPoint(15, 20)); } //! [7] //! [8] drag->exec(); setCursor(Qt::OpenHandCursor); }
void QRImageWidget::mousePressEvent(QMouseEvent *event) { if(event->button() == Qt::LeftButton && pixmap()) { event->accept(); QMimeData *mimeData = new QMimeData; mimeData->setImageData(exportImage()); QDrag *drag = new QDrag(this); drag->setMimeData(mimeData); drag->exec(); } else { QLabel::mousePressEvent(event); } }
QMimeData* CFormulatorDoc::copyToMimeData( CRootNode *pRootNode, QImage *pImage ) { Q_ASSERT( pRootNode ); if( !QApplication::clipboard() ) return 0; QString mmlTextData = exportMathML( pRootNode ); QByteArray mmlBinaryData; QDataStream ar( &mmlBinaryData, QIODevice::WriteOnly ); pRootNode->Store( ar ); QMimeData *mimeData = new QMimeData(); mimeData->setText( mmlTextData ); mimeData->setData( FORMULATOR_MIME_FORMAT, mmlBinaryData ); if( pImage ) mimeData->setImageData( *pImage ); return mimeData; }
//----------------------------------------------------------------------------- // Function: onCopyAction() //----------------------------------------------------------------------------- void CellEditTableView::onCopyAction() { // if nothing was selected then don't copy anything. if (!indexAt(pressedPoint_).isValid()) { return; } QApplication::setOverrideCursor(Qt::WaitCursor); QMimeData* mime = new QMimeData(); mime->setImageData(model()->data(indexAt(pressedPoint_), Qt::DisplayRole)); QApplication::clipboard()->setMimeData(mime); QApplication::restoreOverrideCursor(); }
void TB_PokeChoice::startDrag() { QMimeData * data = new QMimeData(); if(dragIndex.isValid()) { QVariant num = dragIndex.data(CustomModel::PokenumRole); data->setText(num.toString()); data->setImageData(dragIndex.data(CustomModel::PokeimageRole).value<QPixmap>()); QDrag * drag = new QDrag(this); drag->setMimeData(data); drag->setPixmap(dragIndex.data(CustomModel::PokeimageRole).value<QPixmap>()); drag->exec(Qt::MoveAction); } }
void tst_QMimeData::imageData() const { QMimeData mimeData; // initial state QCOMPARE(mimeData.imageData(), QVariant()); // set, test mimeData.setImageData(QImage()); QVERIFY(mimeData.hasImage()); QCOMPARE(mimeData.imageData(), QVariant(QImage())); // clear, verify mimeData.clear(); QCOMPARE(mimeData.imageData(), QVariant()); }
void tst_QMimeData::hasImage() const { QMimeData mimeData; // initial state QVERIFY(mimeData.hasImage() == false); // add text, verify false mimeData.setData("text/plain", "pirates"); QVERIFY(mimeData.hasImage() == false); // add image mimeData.setImageData(QImage()); QVERIFY(mimeData.hasImage()); // clear, verify mimeData.clear(); QVERIFY(mimeData.hasImage() == false); }
void AvatarButton::dragAvatar() { QPixmap currentPixmap = getSourcePicture(false); // Arrange data QMimeData *data = new QMimeData; data->setImageData(currentPixmap.toImage()); QPixmap preview = getSourcePicture(true); // 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); }
void UBGraphicsPixmapItem::mousePressEvent(QGraphicsSceneMouseEvent *event) { QMimeData* pMime = new QMimeData(); pMime->setImageData(pixmap().toImage()); Delegate()->setMimeData(pMime); qreal k = (qreal)pixmap().width() / 100.0; QSize newSize((int)(pixmap().width() / k), (int)(pixmap().height() / k)); Delegate()->setDragPixmap(pixmap().scaled(newSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); if (Delegate()->mousePressEvent(event)) { //NOOP } else { // QGraphicsPixmapItem::mousePressEvent(event); } }
void TextEdit::imageOpen() { QString fn = QFileDialog::getOpenFileName(this, tr("Open File..."), QString(), tr("images (*.png *.bmp *.jpg *.jpeg);;All Files (*)")); if (!fn.isEmpty()) { QMimeData mimeData; mimeData.setImageData(QImage(fn)); QTextCursor cursor = this->textEdit->textCursor(); QTextDocument *document = this->textEdit->document(); QString newfile, imageName; do { imageName = name + "/img_" + QTime::currentTime().toString("mmsszzz.") + fn.section(".",-1); newfile = path + imageName; } while(QFile::exists(newfile)); QFile::copy(fn, newfile); document->addResource(QTextDocument::ImageResource, newfile, QImage(newfile)); cursor.insertImage(imageName); listAddedImages<<newfile; } }
QMimeData *SpriteModel::mimeData(const QModelIndexList &indexes) const { QMimeData *mimeData = new QMimeData(); QByteArray encodedData; QDataStream stream(&encodedData, QIODevice::WriteOnly); QVariant img; foreach (const QModelIndex &index, indexes) { if (index.isValid()) { img = data(index, Qt::DecorationRole); stream << img; } } mimeData->setData("PolyEdit/DnD", encodedData); mimeData->setImageData(img); return mimeData; }
void SiteIcon::mouseMoveEvent(QMouseEvent* e) { if (!m_locationBar) { return; } int manhattanLength = (e->pos() - m_dragStartPosition).manhattanLength(); if (manhattanLength <= QApplication::startDragDistance()) { ToolButton::mouseMoveEvent(e); return; } QDrag* drag = new QDrag(this); QMimeData* mime = new QMimeData; mime->setUrls(QList<QUrl>() << m_locationBar->webView()->url()); mime->setText(m_locationBar->webView()->title()); mime->setImageData(icon().pixmap(16, 16).toImage()); drag->setMimeData(mime); drag->setPixmap(icon().pixmap(16, 16)); drag->exec(); }
bool KviIconWidget::eventFilter(QObject * pObject, QEvent * pEvent) { if(pEvent->type() == QEvent::MouseButtonPress) { if(pObject->inherits("QLabel")) { KviCString szName = ((QLabel *)pObject)->objectName(); bool bOk; KviIconManager::SmallIcon eIcon = (KviIconManager::SmallIcon) szName.toInt(&bOk); if(bOk) emit selected(eIcon); if(parentWidget() && isVisible() && parentWidget()->inherits("QMenu")) { parentWidget()->close(); return true; } else { if(const QPixmap * pPix = ((QLabel *)pObject)->pixmap()) { QDrag * pDrag = new QDrag(this); QMimeData * pMime = new QMimeData; pMime->setText(pObject->objectName()); pMime->setImageData(*pPix); pDrag->setMimeData(pMime); pDrag->setPixmap(*pPix); } } } } else if(pEvent->type() == QEvent::DragEnter) { ((QDragEnterEvent *)pEvent)->setAccepted(true); return true; } return QWidget::eventFilter(pObject,pEvent); }
void Palette::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { if(!event->buttons() & Qt::LeftButton) { return; } if((event->scenePos() - _dragStartPosition).manhattanLength() < QApplication::startDragDistance()) { return; } // Get the pixmap item related to the start of the drag. QGraphicsItem *item = itemAt(_dragStartPosition, QTransform()); if(item == 0) { // Couldn't find an item at the location for some reason. return; } // Static cast is safe because this scene only adds QGraphicsPixmapItem QGraphicsPixmapItem *pixmapItem = static_cast<QGraphicsPixmapItem *>(item); Sprite sprite = _pixmapToSprite[pixmapItem]; // Create a new drag event and put the source image into the mime data. QDrag *drag = new QDrag((QObject *)event->widget()); QMimeData *data = new QMimeData(); data->setImageData(sprite.getTexture()); data->setText(sprite.getFileInfo().absoluteFilePath()); drag->setMimeData(data); // Put the pixmap that was selected onto the cursor QPixmap pixmap = pixmapItem->pixmap(); drag->setPixmap(pixmap); drag->setHotSpot(QPoint(pixmap.width() / 2, pixmap.height() / 2)); // Execute the drag with a copy action. drag->exec(Qt::CopyAction, Qt::CopyAction); }
/* ------- Копировать в буфер ЗОЗ ------- */ void ViewPlot::copyToBuffer() { QBuffer b; QClipboard *clipboard = QApplication::clipboard(); QSvgGenerator p; p.setOutputDevice(&b); p.setSize(QSize(800,800)); p.setViewBox(QRect(0,0,800,800)); QPainter painter; QwtPlotRenderer renderer; painter.begin(&p); painter.setRenderHint(QPainter::Antialiasing); renderer.render(ui->qwtPlot_spectrogram,&painter,QRect(0,0,800,800)); painter.end(); QMimeData * d = new QMimeData(); d->setData("image/svg+xml",b.buffer()); d->setData("image/svg+xml-compressed", b.buffer()); d->setImageData(QPixmap::grabWidget(ui->qwtPlot_spectrogram, 0,0,-1,-1)); clipboard->setMimeData(d,QClipboard::Clipboard); }