Esempio n. 1
0
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);
}
Esempio n. 2
0
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);
        }
    }
}
Esempio n. 4
0
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);
}
Esempio n. 5
0
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);
            }
    }
}