From b80436a3e0c0b4a28cd8b88d73ec897df52a8de2 Mon Sep 17 00:00:00 2001 From: Samuel Nevala Date: Thu, 19 Nov 2015 12:43:45 +0200 Subject: [PATCH] winrt: Early return from searchAndLock if camera not active. Change-Id: If2279db9cffbc5d06f0d662b6f942b6985034675 Reviewed-by: Maurice Kalinowski Reviewed-by: Matti Malinen Reviewed-by: Oliver Wolff --- src/plugins/winrt/qwinrtcameralockscontrol.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/plugins/winrt/qwinrtcameralockscontrol.cpp b/src/plugins/winrt/qwinrtcameralockscontrol.cpp index 11e576be..8528d16f 100644 --- a/src/plugins/winrt/qwinrtcameralockscontrol.cpp +++ b/src/plugins/winrt/qwinrtcameralockscontrol.cpp @@ -66,13 +66,14 @@ QCamera::LockStatus QWinRTCameraLocksControl::lockStatus(QCamera::LockType lock) void QWinRTCameraLocksControl::searchAndLock(QCamera::LockTypes locks) { - if (locks.testFlag(QCamera::LockFocus)) { + QWinRTCameraControl *cameraControl = qobject_cast(parent()); + Q_ASSERT(cameraControl); + if (cameraControl->state() != QCamera::ActiveState) + return; + else if (locks.testFlag(QCamera::LockFocus)) QMetaObject::invokeMethod(this, "searchAndLockFocus", Qt::QueuedConnection); - } else { - QWinRTCameraControl *cameraControl = qobject_cast(parent()); - Q_ASSERT(cameraControl); + else cameraControl->emitError(QCamera::InvalidRequestError, QStringLiteral("Unsupported camera lock type.")); - } } void QWinRTCameraLocksControl::unlock(QCamera::LockTypes locks)