diff options
author | Yoann Lopes <yoann.lopes@theqtcompany.com> | 2015-08-13 18:18:44 +0200 |
---|---|---|
committer | Yoann Lopes <yoann.lopes@theqtcompany.com> | 2015-08-25 11:18:51 +0000 |
commit | 4eb4a3ada360af152b9403e8a88eb76b9474c4ba (patch) | |
tree | 4a3671e14c782f6f5b45e27460835fa943085b9b /src/imports/multimedia | |
parent | ded4d7b006180d12f4f2e7642877ffc6586a5331 (diff) |
Fix QML Camera::supportedViewfinderFrameRateRanges().
Pass the resolution argument as a QJSValue instead of a QSize.
This allows to be more flexible and doesn't require the QML argument
to be an actual QML 'size' value. It can be any object with the
'width' and 'height' properties.
Added missing auto-tests for supportedViewfinderResolutions()
and supportedViewfinderFrameRateRanges().
Change-Id: I6c8ae72e6dab8c9d12bbada5b8e7f45e96e9289d
Task-number: QTBUG-47630
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Diffstat (limited to 'src/imports/multimedia')
-rw-r--r-- | src/imports/multimedia/qdeclarativecamera.cpp | 9 | ||||
-rw-r--r-- | src/imports/multimedia/qdeclarativecamera_p.h | 3 |
2 files changed, 9 insertions, 3 deletions
diff --git a/src/imports/multimedia/qdeclarativecamera.cpp b/src/imports/multimedia/qdeclarativecamera.cpp index 5930b20fb..eac1c0c9b 100644 --- a/src/imports/multimedia/qdeclarativecamera.cpp +++ b/src/imports/multimedia/qdeclarativecamera.cpp @@ -1013,12 +1013,17 @@ QJSValue QDeclarativeCamera::supportedViewfinderResolutions(qreal minimumFrameRa \since 5.5 */ -QJSValue QDeclarativeCamera::supportedViewfinderFrameRateRanges(const QSize &resolution) +QJSValue QDeclarativeCamera::supportedViewfinderFrameRateRanges(const QJSValue &resolution) { QQmlEngine *engine = qmlEngine(this); QCameraViewfinderSettings settings; - settings.setResolution(resolution); + if (!resolution.isUndefined()) { + QJSValue width = resolution.property(QStringLiteral("width")); + QJSValue height = resolution.property(QStringLiteral("height")); + if (width.isNumber() && height.isNumber()) + settings.setResolution(width.toInt(), height.toInt()); + } QList<QCamera::FrameRateRange> frameRateRanges = m_camera->supportedViewfinderFrameRateRanges(settings); QJSValue supportedFrameRateRanges = engine->newArray(frameRateRanges.count()); diff --git a/src/imports/multimedia/qdeclarativecamera_p.h b/src/imports/multimedia/qdeclarativecamera_p.h index 623460c59..b3f199a57 100644 --- a/src/imports/multimedia/qdeclarativecamera_p.h +++ b/src/imports/multimedia/qdeclarativecamera_p.h @@ -57,6 +57,7 @@ #include <QtCore/qdatetime.h> #include <QtQml/qqmlparserstatus.h> #include <QtQml/qqml.h> +#include <QtQml/qjsvalue.h> QT_BEGIN_NAMESPACE @@ -297,7 +298,7 @@ public Q_SLOTS: Q_REVISION(2) QJSValue supportedViewfinderResolutions(qreal minimumFrameRate = 0.0, qreal maximumFrameRate = 0.0); - Q_REVISION(2) QJSValue supportedViewfinderFrameRateRanges(const QSize &resolution = QSize()); + Q_REVISION(2) QJSValue supportedViewfinderFrameRateRanges(const QJSValue &resolution = QJSValue()); Q_SIGNALS: void errorChanged(); |