Hi, On Mon, Jun 25, 2012 at 11:12 PM, Eric Clark <ecl...@ara.com> wrote:
> Hello All,**** > > ** ** > > I have a curious question about the default QItemSelectionModel that is > created whenever a QAbstractItemView is created: Is this default selection > model parented to the view? What I really want to know is, if I create a > new QAbstractItemView, set the model on it and then create a new > QItemSelectionModel and pass it into the view’s setSelectionModel() > function, will the default selection model be deleted when the view is > deleted? The documentation is a little hazy on this topic. It says that “It > is up to the application to delete the old selection model if it is no > longer needed…”, but that it will be deleted by its parent if it has one. > So, I have a new view and I am changing its selection model to my own and > the one that was created by default is no longer needed. Should I go ahead > and delete the old default selection model, or is it safe to say it is > parented to the view and will be deleted when the view is deleted? > You could just test what your version of Qt does with: QAbstractItemView view; QStandardItemModel model; view.setModel(&model); QItemSelectionModel selmodl = view.selectionModel(); if( selmodel.parent() == &view ) { fprintf(stderr, "selection model is parented under view\n"); } else { fprintf(stderr, "selection model has unknown/no parent\n"); } Since the documentation does not state what behaviour is to be expected, you shouldn't rely on this however. Since in this case I can't imagine any possible bad side-effects of deleting the model even if it is parented under the view, you could just be a little less lazy and delete the selection-model before setting a new one. Or you could make sure the selection model is set before the model, so that no default-selection-model is created at all. Andreas
_______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest