src/gui/itemviews/qtreewidget.cpp
changeset 30 5dc02b23752f
parent 18 2f34d5167611
child 33 3e2da88830cd
--- a/src/gui/itemviews/qtreewidget.cpp	Wed Jun 23 19:07:03 2010 +0300
+++ b/src/gui/itemviews/qtreewidget.cpp	Tue Jul 06 15:10:48 2010 +0300
@@ -3039,10 +3039,14 @@
     Q_D(const QTreeWidget);
     QModelIndexList indexes = selectionModel()->selectedIndexes();
     QList<QTreeWidgetItem*> items;
+    items.reserve(indexes.count());
+    QSet<QTreeWidgetItem *> seen;
+    seen.reserve(indexes.count());
     for (int i = 0; i < indexes.count(); ++i) {
         QTreeWidgetItem *item = d->item(indexes.at(i));
-        if (isItemHidden(item) || items.contains(item)) // ### slow, optimize later
+        if (isItemHidden(item) || seen.contains(item))
             continue;
+        seen.insert(item);
         items.append(item);
     }
     return items;