Initial commit
This commit is contained in:
69
src/ui/mainwindow.cpp
Normal file
69
src/ui/mainwindow.cpp
Normal 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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user