#include "diagramscene.h"
//передача указателя на выбранный элемент в функцию отрисовки стрелки
void MainWindow::arrowDown()
{
    scene->arrowDown2(scene->selectedItems()[0]);
}

//передача указателя на выбранный элемент в функцию отрисовки стрелки
void MainWindow::arrowUp()
{
    scene->arrowUp2(scene->selectedItems()[0]);
}

//передача указателя на выбранный элемент в функцию отрисовки стрелки
void MainWindow::arrowBack()
{
    scene->arrowBack2(scene->selectedItems()[0]);
}

//передача указателя на выбранный элемент в функцию отрисовки стрелки
void MainWindow::arrowFront()
{
    scene->arrowFront2(scene->selectedItems()[0]);
}

//задание веса блоку
void MainWindow::weightItem()
{
        QList<ItemInfo> items = manager.returnItems();
        if (items.count() == 0 || !scene->isAnythingSelected)
        {
            qDebug("NothingSelected");
            goto exit;
        }
        QGraphicsItem *a=scene->selectedItems()[0];
        DiagramItem *item;
        item=qgraphicsitem_cast<DiagramItem *>(a);

        int id = item->id();
        int temp;

        int weight=0;
        //если у блока уже был задан вес - задаём его в диалоге как стартовое значение
        for(int i=0; i<items.size(); i++)
        {
            qDebug("111");
                if(items[i].id == id)
                        weight = items[i].weight;
        }
        bool ok;

        //диалог ввода веса блока
        temp = QInputDialog::getInt(this, tr("Set weight in man hours"), tr("Weight:"), weight, 0, 1000, 1, &ok);

        //отрисовка значения веса в блоке
        item->setWeight(a, temp);

        //добавление информации о блоке в itemManager
        QGraphicsItem *a2=scene->selectedItems()[0];
        DiagramItem *item2;
        item2=qgraphicsitem_cast<DiagramItem *>(a2);
        manager.weightInserted(temp, item2->id());
        statesManager->appendState(manager);

        updateState();

        exit:;
}

void MainWindow::nameItem()
{
        QList<ItemInfo> items = manager.returnItems();
        if (items.count() == 0 || !scene->isAnythingSelected)
        {
            qDebug("NothingSelected");
        }
        else
        {
            QGraphicsItem *a=scene->selectedItems()[0];
            DiagramItem *item;
            item=qgraphicsitem_cast<DiagramItem *>(a);
            int id = item->id();
            QString comment;

            //если у блока уже было задано имя - задаём его в диалоге как стартовое значение
            for(int i=0; i<items.size(); i++)
            {
                    if(items[i].id == id)
                            comment = items[i].comment;
            }
            bool ok;
            QString text;

            //диалог задания имени
            if (comment == "")
            {
                    text = QInputDialog::getText(this, tr("Set name"),
                                                  tr("ICOM-block:"), QLineEdit::Normal,
                                                  NULL, &ok);
            }
            else
            {
                    text = QInputDialog::getText(this, tr("Set name"),
                                                  tr("ICOM-block:"), QLineEdit::Normal,
                                                  comment, &ok);
            }

            //отрисовка имени в блоке
            item->DiagramItem::setText(a, text);

            //добавление информации о блоке в itemManager
            QGraphicsItem *a2=scene->selectedItems()[0];
            DiagramItem *item2;
            item2=qgraphicsitem_cast<DiagramItem *>(a2);
            manager.commentInserted(text, item2->id());
            statesManager->appendState(manager);
        }
        updateState();
}
