@Sandra_Carney
QItemSelectionModel *select = ui.tree->selectionModel();
QModelIndexList l = select->selectedRows();
...
pm->mapToSource(l[...])
This is fine. You are working through selectionModel()->selectedRows() calling QProxyModel::mapToSource() on an item to get from a proxy QModelIndex to the source QModelIndex.
I believe QSortFilterProxyModel::mapSelectionToSource() is just a convenience to save the two steps. E.g.
QItemSelectionModel *select = ui.tree->selectionModel();
QModelIndexList sourceIndexList = pm->mapSelectionToSource(select->selection())->indexes();
Whether it's just a shortcut convenience or it's more efficient I don't know. The important thing either way is that you have to do this index mapping source model <--> proxy model indexes.