add error handling in image capturing in camera

Task-number: QTBUG-28589
Change-Id: Ib3a04038c16beba66f8b8cff85b310dad9a4460a
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
This commit is contained in:
Jing Bai
2012-12-13 14:00:02 +01:00
committed by The Qt Project
parent d396262bc9
commit 13ecd7171b
3 changed files with 15 additions and 1 deletions

View File

@@ -136,6 +136,8 @@ void Camera::setCamera(const QByteArray &cameraDevice)
connect(imageCapture, SIGNAL(readyForCaptureChanged(bool)), this, SLOT(readyForCapture(bool))); connect(imageCapture, SIGNAL(readyForCaptureChanged(bool)), this, SLOT(readyForCapture(bool)));
connect(imageCapture, SIGNAL(imageCaptured(int,QImage)), this, SLOT(processCapturedImage(int,QImage))); connect(imageCapture, SIGNAL(imageCaptured(int,QImage)), this, SLOT(processCapturedImage(int,QImage)));
connect(imageCapture, SIGNAL(imageSaved(int,QString)), this, SLOT(imageSaved(int,QString))); connect(imageCapture, SIGNAL(imageSaved(int,QString)), this, SLOT(imageSaved(int,QString)));
connect(imageCapture, SIGNAL(error(int,QCameraImageCapture::Error,QString)), this,
SLOT(displayCaptureError(int,QCameraImageCapture::Error,QString)));
connect(camera, SIGNAL(lockStatusChanged(QCamera::LockStatus, QCamera::LockChangeReason)), connect(camera, SIGNAL(lockStatusChanged(QCamera::LockStatus, QCamera::LockChangeReason)),
this, SLOT(updateLockStatus(QCamera::LockStatus, QCamera::LockChangeReason))); this, SLOT(updateLockStatus(QCamera::LockStatus, QCamera::LockChangeReason)));
@@ -320,6 +322,14 @@ void Camera::takeImage()
imageCapture->capture(); imageCapture->capture();
} }
void Camera::displayCaptureError(int id, const QCameraImageCapture::Error error, const QString &errorString)
{
Q_UNUSED(id);
Q_UNUSED(error);
QMessageBox::warning(this, tr("Image Capture Error"), errorString);
isCapturingImage = false;
}
void Camera::startCamera() void Camera::startCamera()
{ {
camera->start(); camera->start();

View File

@@ -72,6 +72,7 @@ private slots:
void toggleLock(); void toggleLock();
void takeImage(); void takeImage();
void displayCaptureError(int, QCameraImageCapture::Error, const QString &errorString);
void configureCaptureSettings(); void configureCaptureSettings();
void configureVideoSettings(); void configureVideoSettings();

View File

@@ -138,6 +138,9 @@
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<item row="0" column="0"> <item row="0" column="0">
<widget class="QPushButton" name="takeImageButton"> <widget class="QPushButton" name="takeImageButton">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text"> <property name="text">
<string>Capture Photo</string> <string>Capture Photo</string>
</property> </property>
@@ -245,7 +248,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>668</width> <width>668</width>
<height>29</height> <height>25</height>
</rect> </rect>
</property> </property>
<widget class="QMenu" name="menuFile"> <widget class="QMenu" name="menuFile">