summaryrefslogtreecommitdiffstats
path: root/examples/multimediawidgets
diff options
context:
space:
mode:
authorYoann Lopes <yoann.lopes@digia.com>2014-09-25 17:10:08 +0200
committerYoann Lopes <yoann.lopes@digia.com>2014-09-26 14:23:07 +0200
commitf9de9889f6b909968f31743ab60e66dd356f2a4d (patch)
tree15ccbb4124d729914652199afb5e1bdeb1db8f9f /examples/multimediawidgets
parent5c3a5cf8106e1b873924b296c792448c33ee4df1 (diff)
Use QCameraInfo in camera example.
To replace QCamera::availableDevices(), which is deprecated since 5.3. Change-Id: I0b1bd6286ec78d6d26ce309d224369989d4a5063 Reviewed-by: Christian Stromme <christian.stromme@digia.com>
Diffstat (limited to 'examples/multimediawidgets')
-rw-r--r--examples/multimediawidgets/camera/camera.cpp27
-rw-r--r--examples/multimediawidgets/camera/camera.h2
2 files changed, 13 insertions, 16 deletions
diff --git a/examples/multimediawidgets/camera/camera.cpp b/examples/multimediawidgets/camera/camera.cpp
index 3afe59324..714de7a4d 100644
--- a/examples/multimediawidgets/camera/camera.cpp
+++ b/examples/multimediawidgets/camera/camera.cpp
@@ -46,6 +46,7 @@
#include <QMediaService>
#include <QMediaRecorder>
#include <QCameraViewfinder>
+#include <QCameraInfo>
#include <QMediaMetaData>
#include <QMessageBox>
@@ -53,6 +54,8 @@
#include <QtWidgets>
+Q_DECLARE_METATYPE(QCameraInfo)
+
Camera::Camera(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::Camera),
@@ -65,26 +68,23 @@ Camera::Camera(QWidget *parent) :
ui->setupUi(this);
//Camera devices:
- QByteArray cameraDevice;
QActionGroup *videoDevicesGroup = new QActionGroup(this);
videoDevicesGroup->setExclusive(true);
- foreach(const QByteArray &deviceName, QCamera::availableDevices()) {
- QString description = camera->deviceDescription(deviceName);
- QAction *videoDeviceAction = new QAction(description, videoDevicesGroup);
+ foreach (const QCameraInfo &cameraInfo, QCameraInfo::availableCameras()) {
+ QAction *videoDeviceAction = new QAction(cameraInfo.description(), videoDevicesGroup);
videoDeviceAction->setCheckable(true);
- videoDeviceAction->setData(QVariant(deviceName));
- if (cameraDevice.isEmpty()) {
- cameraDevice = deviceName;
+ videoDeviceAction->setData(QVariant::fromValue(cameraInfo));
+ if (cameraInfo == QCameraInfo::defaultCamera())
videoDeviceAction->setChecked(true);
- }
+
ui->menuDevices->addAction(videoDeviceAction);
}
connect(videoDevicesGroup, SIGNAL(triggered(QAction*)), SLOT(updateCameraDevice(QAction*)));
connect(ui->captureWidget, SIGNAL(currentChanged(int)), SLOT(updateCaptureMode()));
- setCamera(cameraDevice);
+ setCamera(QCameraInfo::defaultCamera());
}
Camera::~Camera()
@@ -94,16 +94,13 @@ Camera::~Camera()
delete camera;
}
-void Camera::setCamera(const QByteArray &cameraDevice)
+void Camera::setCamera(const QCameraInfo &cameraInfo)
{
delete imageCapture;
delete mediaRecorder;
delete camera;
- if (cameraDevice.isEmpty())
- camera = new QCamera;
- else
- camera = new QCamera(cameraDevice);
+ camera = new QCamera(cameraInfo);
connect(camera, SIGNAL(stateChanged(QCamera::State)), this, SLOT(updateCameraState(QCamera::State)));
connect(camera, SIGNAL(error(QCamera::Error)), this, SLOT(displayCameraError()));
@@ -398,7 +395,7 @@ void Camera::displayCameraError()
void Camera::updateCameraDevice(QAction *action)
{
- setCamera(action->data().toByteArray());
+ setCamera(qvariant_cast<QCameraInfo>(action->data()));
}
void Camera::displayViewfinder()
diff --git a/examples/multimediawidgets/camera/camera.h b/examples/multimediawidgets/camera/camera.h
index 52f03cbd3..faa02ccd7 100644
--- a/examples/multimediawidgets/camera/camera.h
+++ b/examples/multimediawidgets/camera/camera.h
@@ -60,7 +60,7 @@ public:
~Camera();
private slots:
- void setCamera(const QByteArray &cameraDevice);
+ void setCamera(const QCameraInfo &cameraInfo);
void startCamera();
void stopCamera();