1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-04-01 12:36:40 +00:00

Allow multi-item drag.

This commit is contained in:
Marek Kochanowicz 2014-02-05 11:44:08 +01:00
parent f01b02c42d
commit 3b8f04c0f3

View file

@ -415,22 +415,36 @@ void CSVWorld::Table::recordFilterChanged (boost::shared_ptr<CSMFilter::Node> fi
void CSVWorld::Table::mouseMoveEvent (QMouseEvent* event) void CSVWorld::Table::mouseMoveEvent (QMouseEvent* event)
{ {
if (event->buttons() & Qt::LeftButton) if (event->buttons() & Qt::LeftButton)
{ {
QModelIndexList selectedRows = selectionModel()->selectedRows(); QModelIndexList selectedRows = selectionModel()->selectedRows();
if (selectedRows.size() == 0) if (selectedRows.size() == 0)
{ {
return; return;
} }
if (selectedRows.size() == 1) //tmp solution QDrag* drag = new QDrag (this);
{ CSMWorld::TableMimeData* mime = NULL;
CSMWorld::TableMimeData *mime = new CSMWorld::TableMimeData(getUniversalId(selectedRows.begin()->row()));
QDrag *drag = new QDrag(this); if (selectedRows.size() == 1)
drag->setMimeData(mime); {
drag->setPixmap(QString::fromStdString(mime->getIcon())); mime = new CSMWorld::TableMimeData (getUniversalId (selectedRows.begin()->row()));
}
else
{
std::vector<CSMWorld::UniversalId> idToDrag;
foreach (QModelIndex it, selectedRows)
{
idToDrag.push_back (getUniversalId (it.row()));
}
mime = new CSMWorld::TableMimeData (idToDrag);
}
drag->setMimeData (mime);
drag->setPixmap (QString::fromStdString (mime->getIcon()));
drag->start(); drag->start();
}
} }
} }