20FinalWidget::FinalWidget(QWidget *parent,
const QString &name,
21 const QSize &labelSize)
25 imageLabel =
new QLabel;
26 imageLabel->setFrameShadow(QFrame::Sunken);
27 imageLabel->setFrameShape(QFrame::StyledPanel);
28 imageLabel->setMinimumSize(labelSize);
29 nameLabel =
new QLabel(name);
31 QVBoxLayout *layout =
new QVBoxLayout(
this);
32 layout->addWidget(imageLabel, 1);
33 layout->addWidget(nameLabel, 0);
43 if (!(event->buttons() & Qt::LeftButton))
45 if ((event->pos() - dragStartPosition).manhattanLength()
46 < QApplication::startDragDistance())
51 QDrag *drag =
new QDrag(
this);
52 QMimeData *mimeData =
new QMimeData;
56 QBuffer outputBuffer(&output);
57 outputBuffer.open(QIODevice::WriteOnly);
58 imageLabel->pixmap().toImage().save(&outputBuffer,
"PNG");
59 mimeData->setData(
"image/png", output);
62
63
64
65
66 drag->setMimeData(mimeData);
67 drag->setPixmap(imageLabel->pixmap().scaled(64, 64, Qt::KeepAspectRatio));
69 drag->setHotSpot(QPoint(drag->pixmap().width()/2,
70 drag->pixmap().height()));