Initial commit

This commit is contained in:
2021-06-10 12:09:44 +02:00
commit 5efbdcbd6a
32 changed files with 1914 additions and 0 deletions

69
src/ui/mainwindow.cpp Normal file
View File

@ -0,0 +1,69 @@
#include "mainwindow.h"
#include "./ui_mainwindow.h"
#include <QDebug>
#include <QMessageBox>
#include <uvosled.h>
#include "../profile.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->statusbar->showMessage("idle");
connect(ui->actionQuit, &QAction::triggered, [this](bool checked){(void)checked; close();});
connect(ui->actionCameras, &QAction::triggered, [this](bool checked){(void)checked; sigChooseCameras();});
connect(ui->comboBox, &QComboBox::currentTextChanged, this, &MainWindow::sigProfile);
connect(ui->pushButtonCapture, &QPushButton::clicked, this, &MainWindow::sigCapture);
ui->widget->setLit(true);
refreshProfiles();
}
void MainWindow::addCamera(std::shared_ptr<Camera> camera)
{
viewers_.push_back(new CvImageViewer(this, camera->id()));
viewers_.back()->setFixedOnWidth(true);
connect(camera.get(), &Camera::newImage, viewers_.back(), &CvImageViewer::setImage, Qt::QueuedConnection);
ui->viewerLayout->addWidget(viewers_.back());
}
void MainWindow::removeCamera(std::shared_ptr<Camera> camera)
{
for(size_t i = 0; i < viewers_.size(); ++i)
{
if(viewers_[i]->lastId() == camera->id())
{
ui->viewerLayout->removeWidget(viewers_[i]);
delete viewers_[i];
viewers_.erase(viewers_.begin()+i);
--i;
}
}
}
void MainWindow::refreshProfiles()
{
ui->comboBox->clear();
QList<QString> profiles = Profile::avaiableProfiles();
for(const QString& string : profiles)
ui->comboBox->addItem(string);
}
void MainWindow::profileInconpatible(QString message)
{
QMessageBox::warning(this, "Profile Incompatible", message);
}
CvImageViewer* MainWindow::mainImageViewer()
{
return ui->mainViewer;
}
MainWindow::~MainWindow()
{
for(CvImageViewer* viewer : viewers_)
delete viewer;
delete ui;
}