add error handling in image capturing in camera
authorJing Bai <jing.bai@digia.com>
Thu, 13 Dec 2012 13:00:02 +0000 (14:00 +0100)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Tue, 19 Feb 2013 16:55:08 +0000 (17:55 +0100)
Task-number: QTBUG-28589
Change-Id: Ib3a04038c16beba66f8b8cff85b310dad9a4460a
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
examples/multimediawidgets/camera/camera.cpp
examples/multimediawidgets/camera/camera.h
examples/multimediawidgets/camera/camera.ui

index 9c1f290..2b7a96f 100644 (file)
@@ -136,6 +136,8 @@ void Camera::setCamera(const QByteArray &cameraDevice)
     connect(imageCapture, SIGNAL(readyForCaptureChanged(bool)), this, SLOT(readyForCapture(bool)));
     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(error(int,QCameraImageCapture::Error,QString)), this,
+            SLOT(displayCaptureError(int,QCameraImageCapture::Error,QString)));
 
     connect(camera, SIGNAL(lockStatusChanged(QCamera::LockStatus, QCamera::LockChangeReason)),
             this, SLOT(updateLockStatus(QCamera::LockStatus, QCamera::LockChangeReason)));
@@ -320,6 +322,14 @@ void Camera::takeImage()
     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()
 {
     camera->start();
index 9203216..52f03cb 100644 (file)
@@ -72,6 +72,7 @@ private slots:
 
     void toggleLock();
     void takeImage();
+    void displayCaptureError(int, QCameraImageCapture::Error, const QString &errorString);
 
     void configureCaptureSettings();
     void configureVideoSettings();
index ea790fa..8a5ee51 100644 (file)
        <layout class="QGridLayout" name="gridLayout">
         <item row="0" column="0">
          <widget class="QPushButton" name="takeImageButton">
+          <property name="enabled">
+           <bool>false</bool>
+          </property>
           <property name="text">
            <string>Capture Photo</string>
           </property>
      <x>0</x>
      <y>0</y>
      <width>668</width>
-     <height>29</height>
+     <height>25</height>
     </rect>
    </property>
    <widget class="QMenu" name="menuFile">