void TreeView::setModel(QAbstractItemModel* model) { QItemSelectionModel* old = selectionModel(); QTreeView::setModel(model); if(old && !old->parent()){ delete old; } setSelectionModel(new ItemSelectionModel(model, this)); }