summaryrefslogtreecommitdiffstats
path: root/src/widgets/itemviews/qlistwidget.cpp
diff options
context:
space:
mode:
authorThorbjørn Martsum <tmartsum@gmail.com>2013-07-08 11:29:35 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-07-09 05:51:01 +0200
commit2713a4534bc4b26e0d3931385845a2117aef0d3a (patch)
tree102104cb7faee5e956d98f4d83b7bfc8c57a4cd2 /src/widgets/itemviews/qlistwidget.cpp
parent9e2a389fa96821464a00b76b265e8e0887b739a1 (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.cpp4
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);