#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "converttoseries.h"
#include <iostream>
#include "chart.h"
#include "chartview.h"
#include "multichartview.h"

using namespace QtCharts;

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    /*
    dataService = new DataService();
    dataService->moveToThread(&dataServiceThread);
    connect(&dataServiceThread, &QThread::finished, dataService, &QObject::deleteLater);
    connect(ui->goBtn, SIGNAL(clicked(bool)), dataService, SLOT(doWork()));
    connect(dataService, SIGNAL(resultReady()), this, SLOT(handleResult()));
    dataServiceThread.start();
    */

    DataLoader *loader = new DataLoader();
    loader->moveToThread(&dataQueue);
    dataQueue.start();
    //file = nix::File::open("/home/grewe/zwischenlager/2017-08-17-af-invivo-1/2017-08-17-af-invivo-1.nix",
    //                       nix::FileMode::ReadOnly);

    file = nix::File::open("/Users/jan/zwischenlager/threading_test/dataservice/data/2017-08-17-af-invivo-1.nix",
                           nix::FileMode::ReadOnly);
    nix::Block b = file.getBlock(0);
    this->voltage = b.getDataArray("V-1");
    this->eod = b.getDataArray("EOD");

    MultiChartView *mcv = new MultiChartView(&dataQueue);
    ui->vbox->addWidget(mcv);

    mcv->addArray(eod);
    mcv->addArray(voltage);
}


MainWindow::~MainWindow() {
    if (file) {
        file.close();
    }
    dataQueue.stop();
    dataQueue.quit();
    dataQueue.wait();
    delete ui;
}