summaryrefslogtreecommitdiff
path: root/examples/declarative-camera/declarative-camera.qml
diff options
context:
space:
mode:
authorDmytro Poplavskiy <dmytro.poplavskiy@nokia.com>2012-07-16 16:40:57 +1000
committerQt by Nokia <qt-info@nokia.com>2012-07-19 09:08:52 +0200
commit0d0e89b1e89589812a91ee8d202de2576d6ae89f (patch)
tree6e954afb33ef63233773b00a2e561e37a23a9c59 /examples/declarative-camera/declarative-camera.qml
parentf844d6d9da0fff8f1eaad1ad7f3d73e85560b735 (diff)
downloadqtmultimedia-0d0e89b1e89589812a91ee8d202de2576d6ae89f.tar.gz
Ported QML camera example to QtQuick 2.0 and QtMultimedia 5.0
Removed controls not currently supported on Qt5 platforms and added basic video capture mode Change-Id: I1f188d31af770cfb6ebb65ab5ee4a5467abcfbeb Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Diffstat (limited to 'examples/declarative-camera/declarative-camera.qml')
-rw-r--r--examples/declarative-camera/declarative-camera.qml93
1 files changed, 64 insertions, 29 deletions
diff --git a/examples/declarative-camera/declarative-camera.qml b/examples/declarative-camera/declarative-camera.qml
index 54935b326..8ab6604b4 100644
--- a/examples/declarative-camera/declarative-camera.qml
+++ b/examples/declarative-camera/declarative-camera.qml
@@ -43,6 +43,10 @@ import QtMultimedia 5.0
Rectangle {
id : cameraUI
+
+ width: 800
+ height: 480
+
color: "black"
state: "PhotoCapture"
@@ -51,66 +55,97 @@ Rectangle {
name: "PhotoCapture"
StateChangeScript {
script: {
- camera.visible = true
- camera.focus = true
- stillControls.visible = true
- photoPreview.visible = false
+ camera.captureMode = Camera.CaptureStillImage
+ camera.start()
}
}
},
State {
name: "PhotoPreview"
+ },
+ State {
+ name: "VideoCapture"
StateChangeScript {
script: {
- camera.visible = false
- stillControls.visible = false
- photoPreview.visible = true
- photoPreview.focus = true
+ camera.captureMode = Camera.CaptureVideo
+ camera.start()
+ }
+ }
+ },
+ State {
+ name: "VideoPreview"
+ StateChangeScript {
+ script: {
+ camera.stop()
}
}
}
]
+ Camera {
+ id: camera
+ captureMode: Camera.CaptureStillImage
+
+ imageCapture {
+ onImageCaptured: {
+ photoPreview.source = preview
+ stillControls.previewAvailable = true
+ cameraUI.state = "PhotoPreview"
+ }
+ }
+
+ videoRecorder {
+ resolution: "640x480"
+ frameRate: 15
+ }
+ }
+
PhotoPreview {
id : photoPreview
anchors.fill : parent
onClosed: cameraUI.state = "PhotoCapture"
+ visible: cameraUI.state == "PhotoPreview"
focus: visible
+ }
- Keys.onPressed : {
- //return to capture mode if the shutter button is touched
- if (event.key == Qt.Key_CameraFocus && !event.isAutoRepeat) {
- cameraUI.state = "PhotoCapture"
- event.accepted = true;
- }
- }
+ VideoPreview {
+ id : videoPreview
+ anchors.fill : parent
+ onClosed: cameraUI.state = "VideoCapture"
+ visible: cameraUI.state == "VideoPreview"
+ focus: visible
+
+ //don't load recorded video if preview is invisible
+ source: visible ? camera.videoRecorder.actualLocation : ""
}
- Camera {
- id: camera
+ VideoOutput {
+ id: viewfinder
+ visible: cameraUI.state == "PhotoCapture" || cameraUI.state == "VideoCapture"
+
x: 0
y: 0
width: parent.width - stillControls.buttonsPanelWidth
height: parent.height
- focus: visible //to receive focus and capture key events
- //captureResolution : "640x480"
-
- flashMode: stillControls.flashMode
- whiteBalanceMode: stillControls.whiteBalance
- exposureCompensation: stillControls.exposureCompensation
- onImageCaptured : {
- photoPreview.source = preview
- stillControls.previewAvailable = true
- cameraUI.state = "PhotoPreview"
- }
+ source: camera
}
- CaptureControls {
+ PhotoCaptureControls {
id: stillControls
anchors.fill: parent
camera: camera
+ visible: cameraUI.state == "PhotoCapture"
onPreviewSelected: cameraUI.state = "PhotoPreview"
+ onVideoModeSelected: cameraUI.state = "VideoCapture"
}
+ VideoCaptureControls {
+ id: videoControls
+ anchors.fill: parent
+ camera: camera
+ visible: cameraUI.state == "VideoCapture"
+ onPreviewSelected: cameraUI.state = "VideoPreview"
+ onPhotoModeSelected: cameraUI.state = "PhotoCapture"
+ }
}