Subversion Repositories seema-scanner

Rev

Rev 2 | Rev 23 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

#include "SMScanner.h"
#include "ui_SMScanner.h"

#include <QMetaObject>

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

    // Restore geometry
    this->restoreGeometry(settings.value("geometry/mainwindow").toByteArray());
    this->restoreState(settings.value("state/mainwindow").toByteArray());

    // Set up threads
    captureWorker = new SMCaptureWorker;
    captureWorkerThread = new QThread(this);
    captureWorkerThread->setObjectName("captureWorkerThread");
    captureWorker->moveToThread(captureWorkerThread);
    captureWorkerThread->start();

    // Connections
    qRegisterMetaType<cv::Mat>("cv::Mat");
    qRegisterMetaType< std::vector<cv::Mat> >("std::vector<cv::Mat>");
    connect(captureWorker, SIGNAL(newFrameSet(std::vector<cv::Mat>)), this, SLOT(onReceiveNewFrameSet(std::vector<cv::Mat>)));

    // Start capturing
    QMetaObject::invokeMethod(captureWorker, "setup");
    QMetaObject::invokeMethod(captureWorker, "doWork");

}

void SMScanner::onReceiveNewFrameSet(std::vector<cv::Mat> frameSet){

    ui->calibrationCamera0Widget->showImageCV(frameSet[0]);
    ui->calibrationCamera1Widget->showImageCV(frameSet[1]);

    ui->captureCamera0Widget->showImageCV(frameSet[0]);
    ui->captureCamera1Widget->showImageCV(frameSet[1]);

}

void SMScanner::on_actionPreferences_triggered()
{
    preferenceDialog.show();
}

void SMScanner::closeEvent(QCloseEvent *event){

    // Save window geometry
    settings.setValue("geometry/mainwindow", this->saveGeometry());
    settings.setValue("state/mainwindow", this->saveState());

    event->accept();

}

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