src/gui/itemviews/qtreewidget.cpp
changeset 30 5dc02b23752f
parent 18 2f34d5167611
child 33 3e2da88830cd
equal deleted inserted replaced
29:b72c6db6890b 30:5dc02b23752f
  3037 QList<QTreeWidgetItem*> QTreeWidget::selectedItems() const
  3037 QList<QTreeWidgetItem*> QTreeWidget::selectedItems() const
  3038 {
  3038 {
  3039     Q_D(const QTreeWidget);
  3039     Q_D(const QTreeWidget);
  3040     QModelIndexList indexes = selectionModel()->selectedIndexes();
  3040     QModelIndexList indexes = selectionModel()->selectedIndexes();
  3041     QList<QTreeWidgetItem*> items;
  3041     QList<QTreeWidgetItem*> items;
       
  3042     items.reserve(indexes.count());
       
  3043     QSet<QTreeWidgetItem *> seen;
       
  3044     seen.reserve(indexes.count());
  3042     for (int i = 0; i < indexes.count(); ++i) {
  3045     for (int i = 0; i < indexes.count(); ++i) {
  3043         QTreeWidgetItem *item = d->item(indexes.at(i));
  3046         QTreeWidgetItem *item = d->item(indexes.at(i));
  3044         if (isItemHidden(item) || items.contains(item)) // ### slow, optimize later
  3047         if (isItemHidden(item) || seen.contains(item))
  3045             continue;
  3048             continue;
       
  3049         seen.insert(item);
  3046         items.append(item);
  3050         items.append(item);
  3047     }
  3051     }
  3048     return items;
  3052     return items;
  3049 }
  3053 }
  3050 
  3054