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;
}