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); }
void KisColorPatches::mouseMoveEvent(QMouseEvent *event) { event->ignore(); KisColorSelectorBase::mouseMoveEvent(event); if(event->isAccepted()) return; if (!(event->buttons() & Qt::LeftButton)) return; if ((event->pos() - m_dragStartPos).manhattanLength() < QApplication::startDragDistance()) return; KoColor koColor; if(!colorAt(m_dragStartPos, &koColor)) return; QDrag *drag = new QDrag(this); QMimeData *mimeData = new QMimeData; QColor color = koColor.toQColor(); mimeData->setColorData(color); mimeData->setText(color.name()); drag->setMimeData(mimeData); drag->exec(Qt::CopyAction); event->accept(); }
void Peg::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { if (QLineF(event->screenPos(), event->buttonDownScreenPos(Qt::LeftButton)) .length() < QApplication::startDragDistance()) { return; } dragged = true; QDrag *drag = new QDrag(event->widget()); QMimeData *mime = new QMimeData; drag->setMimeData(mime); 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)); drag->exec(); setCursor(Qt::OpenHandCursor); dragged = false; }
void DualColorButton::mouseMoveEvent(QMouseEvent *event) { if(dragSource_ != NODRAG && (event->buttons() & Qt::LeftButton) && (event->pos() - dragStart_).manhattanLength() > QApplication::startDragDistance()) { QDrag *drag = new QDrag(this); QMimeData *mimedata = new QMimeData; const QColor color = (dragSource_ == FOREGROUND)?foreground_:background_; mimedata->setColorData(color); drag->setMimeData(mimedata); drag->start(Qt::CopyAction); } // Higlight clickable areas QRectF fgr = foregroundRect(); QRectF bgr = backgroundRect(); if(fgr.contains(event->pos())) hilite_ = 1; else if(bgr.contains(event->pos())) hilite_ = 2; else if(event->pos().x() > fgr.right() && event->pos().y() < bgr.top()) hilite_ = 3; else if(event->pos().x() < bgr.left() && event->pos().y() > fgr.bottom()) hilite_ = 4; else hilite_ = 0; update(); }
void DraggablePiece::mousePressEvent(QGraphicsSceneMouseEvent *event) { QMimeData *data = new QMimeData; QVariant variant = QVariant::fromValue((int)Qt::green); data->setColorData(variant); QDrag *drag = new QDrag((QObject*)event->widget()); drag->setMimeData(data); drag->start(); }
//! [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 VColorButton::mouseMoveEvent(QMouseEvent *e) { if (!mousepressed) return; if ((presspos - e->pos()).manhattanLength() > QApplication::startDragDistance()) { mousepressed = false; setDown(false); QDrag *drag = new QDrag(this); QMimeData *data = new QMimeData; data->setColorData(color()); drag->setMimeData(data); drag->start(Qt::CopyAction); } }
void PaletteGrid::mouseMoveEvent(QMouseEvent* event) { VoxelFile* voxel = window->get_voxel(); if (!voxel) return; if (!(event->buttons() & Qt::LeftButton)) return; if ((event->pos() - drag_start).manhattanLength() < QApplication::startDragDistance()) return; QDrag* drag = new QDrag(this); QMimeData* mimeData = new QMimeData; RGBColor& col = global_palette[palette_index]; QColor col2(col.r, col.g, col.b); mimeData->setColorData(col2); drag->setMimeData(mimeData); //Qt::DropAction dropAction = drag->exec(Qt::CopyAction); }
void QtColorButton::mouseMoveEvent(QMouseEvent *event) { #ifndef QT_NO_DRAGANDDROP if (event->buttons() & Qt::LeftButton && (d_ptr->m_dragStart - event->pos()).manhattanLength() > QApplication::startDragDistance()) { QMimeData *mime = new QMimeData; mime->setColorData(color()); QDrag *drg = new QDrag(this); drg->setMimeData(mime); drg->setPixmap(d_ptr->generatePixmap()); setDown(false); event->accept(); drg->start(); return; } #endif QToolButton::mouseMoveEvent(event); }
//! [5] void ColorItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { QPoint pointStart = event->screenPos(); QPoint pointEnd = event->buttonDownScreenPos(Qt::LeftButton); QLineF lineStarEnd(pointStart, pointEnd); qreal nLineLength = lineStarEnd.length(); qreal nLineMinLength = QApplication::startDragDistance(); //if (QLineF(event->screenPos(), event->buttonDownScreenPos(Qt::LeftButton)).length() < QApplication::startDragDistance()) if (nLineLength < nLineMinLength) { return; } QDrag* drag = new QDrag(event->widget()); QMimeData* mime = new QMimeData(); QString strText; strText = QString("#%1%2%3").arg(m_nColor.red(), 2, 16, QLatin1Char('0')) .arg(m_nColor.green(), 2, 16, QLatin1Char('0')) .arg(m_nColor.blue(), 2, 16, QLatin1Char('0')); drag->setMimeData(mime); mime->setColorData(m_nColor); mime->setText(strText); QPixmap pixmap(34, 34); pixmap.fill(Qt::white); QPainter painter(&pixmap); painter.translate(15, 15); painter.setRenderHint(QPainter::Antialiasing); this->paint(&painter, 0, 0); painter.end(); pixmap.setMask(pixmap.createHeuristicMask()); drag->setPixmap(pixmap); drag->setHotSpot(QPoint(15, 20)); drag->exec(); setCursor(Qt::OpenHandCursor); }
void tst_QMimeData::hasColor() const { QMimeData mimeData; // initial state QVERIFY(mimeData.hasColor() == false); // set, verify mimeData.setColorData(QColor(Qt::red)); QVERIFY(mimeData.hasColor()); // clear, verify mimeData.clear(); QVERIFY(mimeData.hasColor() == false); // set something else, verify mimeData.setData("text/plain", "pirates"); QVERIFY(mimeData.hasColor() == false); }
void ColorView::mouseMoveEvent(QMouseEvent *e) { if (e->buttons() & Qt::LeftButton) { if ((e->pos() - dragStartPos_).manhattanLength() >= QApplication::startDragDistance()) { QDrag *drag = new QDrag(this); QMimeData *mimeData = new QMimeData; mimeData->setColorData(value_); drag->setMimeData(mimeData); QPixmap pix(20, 20); auto size = pix.size(); { QPainter p(&pix); for (int x = 0; x < size.width(); x += 5) { for (int y = 0; y < size.height(); y += 5) { p.fillRect(x, y, 5, 5, ((x + y) / 5 & 1) ? QColor(255, 255, 255) : QColor(192, 192, 192)); } } p.fillRect(0, 0, size.width(), size.height(), value_); auto v2 = value_; v2.setAlphaF(1.f); p.fillRect(0, 0, size.width() / 2, size.height(), v2); p.setPen(QColor(0, 0, 0)); p.drawRect(0, 0, size.width() - 1, size.height() - 1); p.setPen(QColor(255, 255, 255)); p.drawRect(1, 1, size.width() - 3, size.height() - 3); } drag->setPixmap(pix); drag->exec(Qt::CopyAction | Qt::MoveAction); return; } } QAbstractButton::mouseMoveEvent(e); }
/* * Draws a rectangle with the buttons color as the mouse is dragged. */ void DColorButton::mouseMoveEvent(QMouseEvent* e) { QAbstractButton::mouseMoveEvent( e ); if ((e->pos() - m_position).manhattanLength() < QApplication::startDragDistance()) return; QDrag *drag = new QDrag( this ); QPixmap pix( 25, 25 ); pix.fill( m_color ); QPainter painter( &pix ); painter.drawRect( 0, 0, pix.width(), pix.height() ); painter.end(); QMimeData *mimeData = new QMimeData; mimeData->setColorData(m_color); drag->setMimeData(mimeData); drag->setPixmap( pix ); Qt::DropAction dropAction = drag->start(Qt::MoveAction); }