> > I'm trying to get selections on one view to be replicated to the > > other[...]> So how do I connect things up so that selections on view1 > > are propagate through the proxy model, and then the respective indices > > are selected in view2, and vice versa? > > Use QAbstractProxyModel::mapToSource() and mapFromSource(), or > mapSelectionToSource() and mapSelectionFromSource(). > > Eg: > QObject::connect( > sourceSelectionModel, > &QItemSelectionModel::selectionChanged, > proxySelectionModel, > [&](const QItemSelection &set) { > QItemSelection newSet = proxyModel->mapSelectionFromSource(set); > proxySelectionModel->select(newSet, > QItemSelectionModel::ClearAndSelect); > }); > > Repeat for each of the signals for QItemSelectionModel changes that should be > mirrored, for each selection model. You can save some overhead by tracking > which view originated the change, but QItemSelectionModel will detect empty > change sets.
Thanks for the response. I ended up doing roughly the same thing. I should have been more clear in my original post. I had found what looked like the relevant signals/functions to do the mapping as you described above before I posted. I wanted to make sure that I wasn't missing something in the model/selection model/proxy model system that AUTOMATICALLY made these connections for you. It seemed to me like this would be a fairly common use case - having multiple views that have differing levels of proxies, all feeding off from a common underlying data model, and wanting selections to be shared among views, once they are filtered through the proxies. Sean This message has been scanned for malware by Forcepoint. www.forcepoint.com _______________________________________________ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest