void MshView::selectionChanged( const QItemSelection &selected, const QItemSelection &deselected ) { Q_UNUSED(deselected); if (!selected.isEmpty()) { emit removeSelectedMeshComponent(); const QModelIndex idx = *(selected.indexes().begin()); const TreeItem* tree_item = static_cast<TreeModel*>(this->model())->getItem(idx); const MshItem* list_item = dynamic_cast<const MshItem*>(tree_item); if (list_item) { emit enableSaveButton(true); emit enableRemoveButton(true); emit meshSelected(list_item->getMesh()); } else { emit enableSaveButton(false); emit enableRemoveButton(false); emit elementSelected(dynamic_cast<const MshItem*>(tree_item->parentItem())->vtkSource(), static_cast<unsigned>(tree_item->row()), true); } } //emit itemSelectionChanged(selected, deselected); //return QTreeView::selectionChanged(selected, deselected); }
void BasicGLWidget::mousePressEvent(QMouseEvent *e) { if (e->buttons() & Qt::LeftButton) { _camera->mousePress(e->pos(), e->modifiers()); } else if (e->button() == Qt::RightButton) { QVector3D clickPos(_camera->mapPoint(e->pos())), eyePos(_camera->world().inverted().column(3)), direction = (clickPos - eyePos).normalized(); Mesh* selected = getNearestMesh(eyePos, direction); renderer->setCurrentMesh(selected); if (selected) emit meshSelected(selected); } }