[Interest] Quick2 - animate sorting of listview, sorted with QSortFilerProxyModel

Nils Jeisecke njeisecke at saltation.de
Wed Aug 14 17:30:38 CEST 2013

On Wed, Aug 14, 2013 at 4:59 PM, Mark <markg85 at gmail.com> wrote:
> But does resorting the model call those functions internally? Or does it
> simply notify that "the model changed" which would cause the entire view to
> be updated...

AFAIK QSortFilterProxyModel does not emit the rowsMoved signal, only
rowsRemoved/rowsInserted. So this won't be properly animated.

You must implement the sorting directly in your model and then use
beginMoveRows/endMoveRows. This shouldn't be so difficult for a score

Here's some code:


class ScoreModel
// ...
  QList<ScoreEntry> m_entries;
// ...

void ScoreModel::move(int from, int to)
  if (to == from)

  // beginMoveRows "to" means => before "to"
  int modelTo = to;
  if (to > from)

  // register move for views
  if (!beginMoveRows(QModelIndex(), from, from, QModelIndex(), modelTo)) {
    qFatal() << "MOVING FAILED";

  // actually move item in container
  m_entries.move(from, to);

  // now the qml view should animate a move



More information about the Interest mailing list