void QgsFontButton::mouseMoveEvent( QMouseEvent *e ) { //handle dragging fonts from button if ( !( e->buttons() & Qt::LeftButton ) ) { //left button not depressed, so not a drag QToolButton::mouseMoveEvent( e ); return; } if ( ( e->pos() - mDragStartPosition ).manhattanLength() < QApplication::startDragDistance() ) { //mouse not moved, so not a drag QToolButton::mouseMoveEvent( e ); return; } //user is dragging font QDrag *drag = new QDrag( this ); switch ( mMode ) { case ModeTextRenderer: drag->setMimeData( mFormat.toMimeData() ); break; case ModeQFont: drag->setMimeData( QgsFontUtils::toMimeData( mFont ) ); break; } drag->setPixmap( createDragIcon() ); drag->exec( Qt::CopyAction ); setDown( false ); }
void QgsColorPreviewWidget::mouseMoveEvent( QMouseEvent *e ) { //handle dragging colors from button if ( !( e->buttons() & Qt::LeftButton ) ) { //left button not depressed, so not a drag QgsColorWidget::mouseMoveEvent( e ); return; } if (( e->pos() - mDragStartPosition ).manhattanLength() < QApplication::startDragDistance() ) { //mouse not moved, so not a drag QgsColorWidget::mouseMoveEvent( e ); return; } //user is dragging color //work out which color is being dragged QColor dragColor = mCurrentColor; if ( mColor2.isValid() ) { //two color sections, check if dragged color was the second color int verticalSplit = qRound( height() / 2.0 ); if ( mDragStartPosition.y() >= verticalSplit ) { dragColor = mColor2; } } QDrag *drag = new QDrag( this ); drag->setMimeData( QgsSymbolLayerV2Utils::colorToMimeData( dragColor ) ); drag->setPixmap( createDragIcon( dragColor ) ); drag->exec( Qt::CopyAction ); }