#include "emailtextscene.h"
#include "ui_emailtextscene.h"
#include <QMessageBox>
#include <iostream>
#include <outputdialog.h>
#include <check/check.h>

EmailTextScene::EmailTextScene(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::EmailTextScene) {
    ui->setupUi(this);

    auto modules = parser.get_modules_names();

    for (auto &module : modules) {
        ui->store_combo_box->addItem(QString::fromStdString(module));
    }
}

EmailTextScene::~EmailTextScene() {
    delete ui;
}

void EmailTextScene::on_parse_button_clicked() {
    std::wstring checkContent = ui->check_content->toPlainText().toStdWString();
    parser.set_module(parser.search_modules()[ui->store_combo_box->currentIndex()]);

    std::vector<Goods> goods = parser.parse(checkContent);
    if (goods.size() == 0) {
        QMessageBox infoDialog;
        infoDialog.setText(tr("An error has occured. Check was matched incorrectly. Vector sizes are different. Please, contact the developer."));
        infoDialog.setIcon(QMessageBox::Critical);
        infoDialog.setWindowTitle(tr("Error in parsing"));
        infoDialog.exec();
        return;
    }

    Check check;
    check.add_goods(goods);

    OutputDialog d(this, check);
    d.show();
    d.exec();
}