Hi everyone!

I'm trying to implement the List Widget's drag and drop feature. It almost works, but every time I drop an item on a new position it moves but the list scrolls to the top and the item I move doesn't get selected.

What I did is just added a List Widget as a centralWidget using the designer. It's name is as simple as "listWidget", and I set it's properties as follows:

DragDropMode - internalMove;
selectionMode - extendedSelection;
movement - snap;

Then i just populate it with some items in my mainwindow.cpp as follows:
Qt Code:
  1. for(int i = 0; i < 51; i++)
  2. {
  3. new QListWidgetItem("Item " + QString::number(i), ui->listWidget);
  4. }
To copy to clipboard, switch view to plain text mode 

The same happens with List View event if I reimplement and give it my own model with such reimplemented methods as:
Qt Code:
  1. Qt::DropActions supportedDropActions() const
  2. {
  3. return Qt::CopyAction | Qt::MoveAction;
  4. }
To copy to clipboard, switch view to plain text mode 

and

Qt Code:
  1. Qt::ItemFlags flags(const QModelIndex &index) const
  2. {
  3. if (index.isValid())
  4. {
  5. return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsDragEnabled;
  6. }
  7. else
  8. {
  9. return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled;
  10. }
  11. }
To copy to clipboard, switch view to plain text mode 


That's it. So why the whole list scrolls to the top and the moved item doesn't stay selected?

Timely thanks for your help guys!