summaryrefslogtreecommitdiffstats
path: root/src/widgets/itemviews/qtreewidgetitemiterator.cpp
diff options
context:
space:
mode:
authorJan Arve Saether <jan-arve.saether@digia.com>2013-03-05 11:47:05 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-03-06 19:13:28 +0100
commitaa2d10750ad8cdb6a86d519063664c2924b2a635 (patch)
tree29bb8c3a66e12bb47ccc0324c788cbaa43450779 /src/widgets/itemviews/qtreewidgetitemiterator.cpp
parent5f948eb62ddb9f429f46ade08f32072212cda493 (diff)
Fixed QTreeWidgetIterator to work with sorted QTreeWidget
We cannot access children directly, since that won't ensure that the pending sort is executed. However, the functions we need are there already and actually makes the code nicer. Task-number: QTBUG-29903 Change-Id: I6899284275dd79b991896a5f08486b58d95f819d Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Diffstat (limited to 'src/widgets/itemviews/qtreewidgetitemiterator.cpp')
-rw-r--r--src/widgets/itemviews/qtreewidgetitemiterator.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/widgets/itemviews/qtreewidgetitemiterator.cpp b/src/widgets/itemviews/qtreewidgetitemiterator.cpp
index e8854d8197..6aa8f4b91e 100644
--- a/src/widgets/itemviews/qtreewidgetitemiterator.cpp
+++ b/src/widgets/itemviews/qtreewidgetitemiterator.cpp
@@ -101,7 +101,7 @@ QTreeWidgetItemIterator::QTreeWidgetItemIterator(QTreeWidget *widget, IteratorFl
Q_ASSERT(model);
d_ptr.reset(new QTreeWidgetItemIteratorPrivate(this, model));
model->iterators.append(this);
- if (!model->rootItem->children.isEmpty()) current = model->rootItem->children.first();
+ if (!model->rootItem->children.isEmpty()) current = model->rootItem->child(0);
if (current && !matchesFlags(current))
++(*this);
}
@@ -130,14 +130,13 @@ QTreeWidgetItemIterator::QTreeWidgetItemIterator(QTreeWidgetItem *item, Iterator
// the beginning.
QTreeWidgetItem *parent = item;
parent = parent->parent();
- QList<QTreeWidgetItem *> children = parent ? parent->children : d->m_model->rootItem->children;
- d->m_currentIndex = children.indexOf(item);
+ QTreeWidgetItem *root = d->m_model->rootItem;
+ d->m_currentIndex = (parent ? parent : root)->indexOfChild(item);
while (parent) {
QTreeWidgetItem *itm = parent;
parent = parent->parent();
- QList<QTreeWidgetItem *> children = parent ? parent->children : d->m_model->rootItem->children;
- int index = children.indexOf(itm);
+ const int index = (parent ? parent : root)->indexOfChild(itm);
d->m_parentIndex.prepend(index);
}