Russian Qt Forum

Qt => Вопросы новичков => Тема начата: PavelVX от Июнь 04, 2012, 12:35



Название: drug&drop: Как узнать: все роли элемента и что drop закончен?
Отправлено: PavelVX от Июнь 04, 2012, 12:35
Добрый день!
Делаю приложение с применением drug&drop. Все замечательно, но всплыло два вопроса:
1. При startDrag делаю следующее:
Код:
    QListWidgetItem *item = currentItem();

    QByteArray itemData;
    QDataStream dataStream(&itemData, QIODevice::WriteOnly);
    QMap<int,  QVariant> roleDataMap;

    roleDataMap[Qt::DisplayRole] = item->data(Qt::DisplayRole);
    roleDataMap[Qt::UserRole] = item->data(Qt::UserRole);
    roleDataMap[Qt::UserRole+1] = item->data(Qt::UserRole+1);
    roleDataMap[Qt::UserRole+2] = item->data(Qt::UserRole+2);

    dataStream << this->currentRow() << 0 << roleDataMap;
Как-то можно узнать все заполненные роли item?
2. Как мне узнать, что drop прошел успешно? Дело вот в чем: у меня есть фильтр, зависящий от items в QListWidget. Но когда я вытаскиваю элемент из него, то в dropEvent генерирую свой сигнал и в законнекченом на этот сигнал слоте делаю пересчет. Но проблема в том, что в dropEvent элемент еще получается не удален, и он делает фильтр на предыдущее состояние. Как правильнее в данном случае поступить?