X-Git-Url: http://cgit.sxemacs.org/?p=harmattan%2Fcameraplus;a=blobdiff_plain;f=qml%2FMainPage.qml;h=811ba31a57767e3768a1acadfc35cfca29726f94;hp=c1ca7bc579a4b20caeed9c6eb01bddead7e21789;hb=f64ec59e63bc8379b80393ff7c8e241e448e8234;hpb=5087a3c453295d8a54cfc98f352816c6a591cc4d diff --git a/qml/MainPage.qml b/qml/MainPage.qml index c1ca7bc..811ba31 100644 --- a/qml/MainPage.qml +++ b/qml/MainPage.qml @@ -25,10 +25,15 @@ import QtCamera 1.0 import CameraPlus 1.0 // TODO: flash not ready (battery low or flash not ready message) +// TODO: front camera night mode CameraPage { id: root + CameraTheme { + id: cameraTheme + } + VisualItemModel { id: mainModel @@ -66,8 +71,7 @@ CameraPage { Component.onCompleted: { platformSettings.init() - // TODO: hardcoding device id - root.resetCamera(0, settings.mode) + root.resetCamera(settings.device, settings.mode) } PlatformSettings { @@ -76,6 +80,14 @@ CameraPage { Settings { id: settings + onDeviceChanged: { + // Reset pipeline manager error + pipelineManager.error = false + + if (root.resetCamera(settings.device, settings.mode)) { + pipelineManager.startCamera() + } + } } PipelineManager { @@ -87,7 +99,10 @@ CameraPage { function resetCamera(deviceId, mode) { if (!viewfinder.camera.reset(deviceId, mode)) { showError(qsTr("Failed to set camera device and mode. Please restart the application.")) + return false } + + return true } function showError(msg) { @@ -182,7 +197,10 @@ CameraPage { camera: viewfinder.camera function setImageResolution() { - if (!imageSettings.setResolution(settings.imageAspectRatio, settings.imageResolution)) { + var aspectRatio = settings.device == 1 ? settings.secondaryImageAspectRatio : settings.primaryImageAspectRatio + var resolution = settings.device == 1 ? settings.secondaryImageResolution : settings.primaryImageResolution + + if (!imageSettings.setResolution(aspectRatio, resolution)) { showError(qsTr("Failed to set required resolution")) } } @@ -199,7 +217,10 @@ CameraPage { camera: viewfinder.camera function setVideoResolution() { - if (!videoSettings.setResolution(settings.videoAspectRatio, settings.videoResolution)) { + var aspectRatio = settings.device == 1 ? settings.secondaryVideoAspectRatio : settings.primaryVideoAspectRatio + var resolution = settings.device == 1 ? settings.secondaryVideoResolution : settings.primaryVideoResolution + + if (!videoSettings.setResolution(aspectRatio, resolution)) { showError(qsTr("Failed to set required resolution")) } } @@ -214,17 +235,15 @@ CameraPage { Connections { target: settings - onImageAspectRatioChanged: { - imageSettings.setImageResolution() - } - - onImageResolutionChanged: { - imageSettings.setImageResolution() - } + onPrimaryImageResolutionChanged: imageSettings.setImageResolution() + onPrimaryImageAspectRatioChanged: imageSettings.setImageResolution() + onSecondaryImageResolutionChanged: imageSettings.setImageResolution() + onSecondaryImageAspectRatioChanged: imageSettings.setImageResolution() - onVideoResolutionChanged: { - videoSettings.setVideoResolution() - } + onPrimaryVideoResolutionChanged: videoSettings.setVideoResolution() + onPrimaryVideoAspectRatioChanged: videoSettings.setVideoResolution() + onSecondaryVideoResolutionChanged: videoSettings.setVideoResolution() + onSecondaryVideoAspectRatioChanged: videoSettings.setVideoResolution() } ModeController {