src/gui/itemviews/qtreewidget.cpp
branchGCC_SURGE
changeset 31 5daf16870df6
parent 30 5dc02b23752f
child 33 3e2da88830cd
equal deleted inserted replaced
27:93b982ccede2 31:5daf16870df6
  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