diff options
author | Thorbjørn Martsum <tmartsum@gmail.com> | 2013-07-08 11:29:35 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-07-09 05:51:01 +0200 |
commit | 2713a4534bc4b26e0d3931385845a2117aef0d3a (patch) | |
tree | 102104cb7faee5e956d98f4d83b7bfc8c57a4cd2 /src/widgets/itemviews/qlistwidget.cpp | |
parent | 9e2a389fa96821464a00b76b265e8e0887b739a1 (diff) |
QListWidget - iterator fix in QListModel::ensureSorted
This is a fix similar to 7ddf1b14ecc7e56ddcc78cc7057881d7925d20ff
Change-Id: I369f428252527a8c3326c0f23a1dc31b63f884f5
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Diffstat (limited to 'src/widgets/itemviews/qlistwidget.cpp')
-rw-r--r-- | src/widgets/itemviews/qlistwidget.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/widgets/itemviews/qlistwidget.cpp b/src/widgets/itemviews/qlistwidget.cpp index 39d03124ce..1573e97981 100644 --- a/src/widgets/itemviews/qlistwidget.cpp +++ b/src/widgets/itemviews/qlistwidget.cpp @@ -347,7 +347,11 @@ void QListModel::ensureSorted(int column, Qt::SortOrder order, int start, int en bool changed = false; for (int i = 0; i < count; ++i) { int oldRow = sorting.at(i).second; + int tmpitepos = lit - tmp.begin(); QListWidgetItem *item = tmp.takeAt(oldRow); + if (tmpitepos > tmp.size()) + --tmpitepos; + lit = tmp.begin() + tmpitepos; lit = sortedInsertionIterator(lit, tmp.end(), order, item); int newRow = qMax(lit - tmp.begin(), 0); lit = tmp.insert(lit, item); |