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:
parent
f01b02c42d
commit
3b8f04c0f3
1 changed files with 28 additions and 14 deletions
|
@ -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();
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in a new issue