예제 #1
0
void Widget::on_deleteButton_clicked()
{
    NodeShape *node = new NodeShape(200,30);
    node->setValue(ui->lineEdit->text());
    node = cDoubleList->find(node);

    if(node){

        QList<LinkShape*> listNodeShapes= node->getLinkShapes();
        if(listNodeShapes.size()>0){
            int x=0;
            foreach (LinkShape *_linkShape, listNodeShapes){
                scene->removeItem(_linkShape);
                x++;
            }
            node->getLinkShapes().clear();
            if(x>1){
                NodeShape *node1=cDoubleList->findPrev(node);
                NodeShape *node2=cDoubleList->findNext(node);
                node1->setLink2(node2->getLink1());
                node2->setLink1(node1->getLink2());
                scene->addItem(new LinkShape( node1, node2));
                scene->update();
            }
        }
예제 #2
0
void Widget::on_addButton_clicked()
{
    NodeShape *node = new NodeShape(200,30);
    node->setValue(ui->lineEdit->text());
    QString link2=QString::fromStdString(cDoubleList->insert(node));
    if(cDoubleList->Size()==1){
        node->setLink1("0");
        node->setLink2(link2);
        scene->addItem(node);
    }else if(cDoubleList->Size()>1){
        node->setLink1(nodeTemp->getLink2());
        node->setLink2(link2);
        scene->addItem(node);
        scene->addItem(new LinkShape(nodeTemp,node));
    }
    nodeTemp=node;
}