#include "iteminfo.h"


ItemInfo::ItemInfo()
{
}

QByteArray ItemInfo::getByteInfo()
{
    QByteArray arr;
    // Записали координаты
    // Записали сперва длину числа, потом само число
    // Перевели число в строку, нашли ее длину, записани как строку.
    arr.append(QString::number(QString(QString::number(this->x)).size()));
    arr.append("endXSize");
    arr.append(QString::number(this->x));

    arr.append(QString::number(QString(QString::number(this->y)).size()));
    arr.append("endYSize");
    arr.append(QString::number(this->y));

    arr.append(this->comment.size());
    arr.append("endCommSize");
    arr.append(this->comment);
    return arr;
}
void ItemInfo::fromByteInfo(QByteArray arr)
{

    int cursorPosition = 0; // Позиция курсора парсера
    int xPos = arr.indexOf("endXSize");// нашли координату метки
    int len = arr.mid(cursorPosition, xPos-cursorPosition).toInt(); // прочитали до этой метки и перевели в число.
    cursorPosition = xPos+8;
    this->x = arr.mid(cursorPosition, len).toInt();// прочитали до этой метки и перевели в число.
    cursorPosition+=len;

    int yPos = arr.indexOf("endYSize");
    len = arr.mid(cursorPosition, yPos-cursorPosition).toInt(); // прочитали до этой метки и перевели в число.
    cursorPosition = yPos+8;
    this->y = arr.mid(cursorPosition, len).toInt();
    cursorPosition+=len;

    int commPos = arr.indexOf("endCommSize");
    len = arr.mid(cursorPosition, commPos-cursorPosition).toInt();
    cursorPosition+=11;
    this->comment = arr.mid(cursorPosition, len);
    cursorPosition+=len;

}
