void GraphView::ShowContextMenu(const QPoint &pos) { //Move menu QPoint globalPos = viewport()->mapToGlobal(pos); //Get what is selected QList<Node *> nodes = scene()->selectedNodes(); QList<LinkVisual *> links = scene()->selectedLinks(); QList<ObjectVisual *> objects = scene()->selectedObjects(); emit objectsSelected(objects.size()); emit objectsCanConnect(nodes.size() + links.size() == 2); emit objectSelected(objects.size() == 1); emit nodeSelected(nodes.size() == 1); emit linkSelected(links.size() == 1); if (links.size() == 1) { if(links.at(0)->getSource().x() < links.at(0)->getDestin().x()) { emit linkHasLeftArrow(links.at(0)->getSourceArrow() != NULL); emit linkHasRightArrow(links.at(0)->getDestinArrow() != NULL); } else { emit linkHasLeftArrow(links.at(0)->getDestinArrow() != NULL); emit linkHasRightArrow(links.at(0)->getSourceArrow() != NULL); } } else { emit linkHasLeftArrow(false); emit linkHasRightArrow(false); } if(nodes.size() == 1) { ScaObjectConverter conv; Node *node = nodes.at(0); int id = scene()->getObjectId(node); QVariant var = m_model->data(m_model->index(id, 0), rawObjectRole); IScaObject *obj = qvariant_cast<IScaObject *>(var); emit canConvertToText(conv.canConvert(obj, IScaObject::TEXTBLOCK)); emit canConvertToIdent(conv.canConvert(obj, IScaObject::IDENTIFIER)); } else { emit canConvertToText(false); emit canConvertToIdent(false); } m_menu->exec(globalPos); }
void TreeView::selectItem() { QModelIndex index = tree->selectionModel()->currentIndex(); Node *selectedNode = model->getItem(index); Controller *controller = Controller::create(); controller->getContentView()->setNode(selectedNode); controller->getInfoSidebar()->setData(selectedNode); controller->getStatusBar()->setNodeName(selectedNode->getCaption()); controller->getNodePropertyWidget()->setNode(selectedNode); questionFrame->hide(); emit nodeSelected(selectedNode); }
void FileSystemView::currentChanged(const QModelIndex& current, const QModelIndex& previous) { scrollTo(current); if (current.isValid()) { fs::NodePtr node = m_model->index2node(current); if (node) { emit nodeSelected(node); } } }
void QGobanView::mousePressEvent(QMouseEvent *event) { QPointF point=mapToScene(event->pos()); //Convert to coordinates. int i=(int)(point.x()/_spacing); int j=(int)(point.y()/_spacing); switch(event->button()) { case Qt::LeftButton : emit nodeSelected(i,j); break; case Qt::RightButton : emit stoneSelected(i,j,event->globalPos()); break; default: break; } //QGraphicsView::mousePressEvent(event); }
void ElementTreeView::selectionChanged( const QItemSelection &selected, const QItemSelection &deselected ) { Q_UNUSED(deselected); if (!selected.isEmpty()) { emit removeSelectedMeshComponent(); const QModelIndex idx = *(selected.indexes().begin()); if (idx.parent().isValid()) // not root node if (idx.parent().parent().isValid()) // not property node { const TreeItem* tree_item = static_cast<TreeModel*>(this->model())->getItem(idx); const unsigned node_index = tree_item->data(0).toString().mid(5).toUInt(); emit nodeSelected(static_cast<ElementTreeModel*>(this->model())->getSource(), node_index, false); } } }