#include "mainwindow.h"
#include "ui_mainwindow.h"
-#include <QCameraInfo>
-#include <QCameraImageCapture>
-#include <QCameraViewfinder>
bool checkCameraAvailability()
{
QCameraInfo info = QCameraInfo::defaultCamera();
if (!info.isNull()) {
- QCamera* camera = new QCamera(info);
+ camera = new QCamera(info);
camera->setCaptureMode(QCamera::CaptureStillImage);
- QCameraViewfinder* viewfinder = new QCameraViewfinder;
+ viewfinder = new QCameraViewfinder;
camera->setViewfinder(viewfinder);
viewfinder->show();
- QCameraImageCapture imageCapture(camera);
- camera->start();
- camera->searchAndLock();
- imageCapture.capture("test.png");
- camera->unlock();
- //delete camera;
+ imageCapture = new QCameraImageCapture(camera);
+ connect(imageCapture, SIGNAL(readyForCaptureChanged(bool)), SLOT(updateCameraInfo()));
+ updateCameraInfo();
+ connect(ui->pbCapture, SIGNAL(clicked()), SLOT(capture()));
}
+
ui->statusBar->showMessage(tr("There are %1 cameras").arg(checkCameraAvailability()));
+
}
-MainWindow::~MainWindow()
-{
+MainWindow::~MainWindow() {
+ delete imageCapture;
+ delete viewfinder;
+ delete camera;
delete ui;
}
+
+
+void MainWindow::updateCameraInfo() {
+ ui->labCameraReady->setText(imageCapture->isReadyForCapture() ? "ready" : "not ready");
+}
+
+
+void MainWindow::capture() {
+ camera->start();
+ camera->searchAndLock();
+ imageCapture->capture("test.png");
+ camera->unlock();
+}