void VtkVisPipelineView::selectionChanged( const QItemSelection &selected, const QItemSelection &deselected ) { QTreeView::selectionChanged(selected, deselected); if (selected.empty()) return; QModelIndex index = *selected.indexes().begin(); if (index.isValid()) { VtkVisPipelineItem* item = static_cast<VtkVisPipelineItem*>(index.internalPointer()); emit actorSelected(item->actor()); emit itemSelected(item); if (item->transformFilter()) emit dataObjectSelected(vtkDataObject::SafeDownCast( item->transformFilter()->GetOutputDataObject(0))); } else { emit actorSelected(NULL); emit itemSelected(NULL); emit dataObjectSelected(NULL); } }