QModelIndexList DeviceExplorerView::selectedDraggableIndexes() const { QModelIndexList indexes = selectedIndexes(); auto m = QTreeView::model(); auto isNotDragEnabled = [m](const QModelIndex& index) { return !(m->flags(index) & Qt::ItemIsDragEnabled); }; indexes.erase( std::remove_if(indexes.begin(), indexes.end(), isNotDragEnabled), indexes.end()); return indexes; }
/** * @brief TableView::selectedIndexes * Retourne la liste des lignes séléctionnés et trié sur le numéro de ligne * @return */ QModelIndexList TableView::selectedIndexes() const { QModelIndexList list = this->QTableView::selectedIndexes(); QModelIndexList::Iterator it = list.begin(); int row = -1; for (;it!=list.end();) { if (row == (*it).row()) { it = list.erase(it); } else { row = (*it).row(); it++; } } qSort(list.begin(),list.end()); return list; }