I have a little problem with DnD using a QListWidget.
I have to create my own QListWidget class (called CListWidget) as I need to implement my own mousePressEvent method.
{
if ( currentItem()->text().isEmpty() )
{
clearSelection();
return;
}
dataStream << currentItem()->text();
mimeData->setData("application/x-dnditemdata", itemData);
mimeData->setText(currentItem()->text());
drag->setMimeData(mimeData);
drag->exec(Qt::CopyAction);
}
void CListWidget::mousePressEvent(QMouseEvent *event)
{
QListWidget::mousePressEvent(event);
if ( currentItem()->text().isEmpty() )
{
clearSelection();
return;
}
QByteArray itemData;
QDataStream dataStream(&itemData, QIODevice::WriteOnly);
dataStream << currentItem()->text();
QMimeData *mimeData = new QMimeData;
mimeData->setData("application/x-dnditemdata", itemData);
mimeData->setText(currentItem()->text());
QDrag *drag = new QDrag(this);
drag->setMimeData(mimeData);
drag->exec(Qt::CopyAction);
}
To copy to clipboard, switch view to plain text mode
When using this code, I cannot see any text while dragging.
If I comment the code and just enable the drag:
{
setDragEnabled(true);
}
CListWidget::CListWidget(QWidget* parent) : QListWidget(parent)
{
setDragEnabled(true);
}
To copy to clipboard, switch view to plain text mode
the text of the CListWidget item is shown while dragging.
Why ?
The problem is also that, if I use the QT default drag, I don't have any text in the item dragged.
Thanks for any suggestion 
PS: Using Qt version 4.4.0 under Linux Ubuntu 8.04
Bookmarks