X-Git-Url: http://cgit.sxemacs.org/?p=harmattan%2Fcameraplus;a=blobdiff_plain;f=qml%2FMainPage.qml;h=c4f5de4a5cda6b179b9f44c4fe4fd79aff201889;hp=811ba31a57767e3768a1acadfc35cfca29726f94;hb=c54bd1327085d9e1d8a9ff3236aa805842545a3e;hpb=f64ec59e63bc8379b80393ff7c8e241e448e8234 diff --git a/qml/MainPage.qml b/qml/MainPage.qml index 811ba31..c4f5de4 100644 --- a/qml/MainPage.qml +++ b/qml/MainPage.qml @@ -30,6 +30,8 @@ import CameraPlus 1.0 CameraPage { id: root + property bool deviceChangeInProgress: false + CameraTheme { id: cameraTheme } @@ -80,14 +82,33 @@ CameraPage { Settings { id: settings + onDeviceAboutToChange: { + root.deviceChangeInProgress = true + } + onDeviceChanged: { + viewfinder.cameraDeviceChanged() + // Reset pipeline manager error pipelineManager.error = false if (root.resetCamera(settings.device, settings.mode)) { + root.deviceChangeInProgress = false pipelineManager.startCamera() } } + + onImageAspectRatioChanged: { + imageSettings.setImageResolution() + } + + onImageResolutionChanged: { + imageSettings.setImageResolution() + } + + onVideoResolutionChanged: { + videoSettings.setVideoResolution() + } } PipelineManager { @@ -102,6 +123,13 @@ CameraPage { return false } + if (mode == Camera.ImageMode) { + imageSettings.setImageResolution() + } + else if (mode == Camera.VideoMode) { + videoSettings.setVideoResolution() + } + return true } @@ -174,11 +202,13 @@ CameraPage { id: fileNaming imageSuffix: viewfinder.camera.imageSuffix videoSuffix: viewfinder.camera.videoSuffix + imagePath: platformSettings.imagePath + videoPath: platformSettings.videoPath + temporaryVideoPath: platformSettings.temporaryVideoPath } MountProtector { id: mountProtector - path: fileNaming.path } TrackerStore { @@ -188,28 +218,15 @@ CameraPage { model: deviceInfo.model } - function checkDiskSpace() { - return fileSystem.hasFreeSpace(fileNaming.path) - } - ImageSettings { id: imageSettings camera: viewfinder.camera function setImageResolution() { - var aspectRatio = settings.device == 1 ? settings.secondaryImageAspectRatio : settings.primaryImageAspectRatio - var resolution = settings.device == 1 ? settings.secondaryImageResolution : settings.primaryImageResolution - - if (!imageSettings.setResolution(aspectRatio, resolution)) { + if (!imageSettings.setResolution(settings.imageAspectRatio, settings.imageResolution)) { showError(qsTr("Failed to set required resolution")) } } - - onReadyChanged: { - if (ready) { - imageSettings.setImageResolution() - } - } } VideoSettings { @@ -217,33 +234,10 @@ CameraPage { camera: viewfinder.camera function setVideoResolution() { - var aspectRatio = settings.device == 1 ? settings.secondaryVideoAspectRatio : settings.primaryVideoAspectRatio - var resolution = settings.device == 1 ? settings.secondaryVideoResolution : settings.primaryVideoResolution - - if (!videoSettings.setResolution(aspectRatio, resolution)) { + if (!videoSettings.setResolution(settings.videoAspectRatio, settings.videoResolution)) { showError(qsTr("Failed to set required resolution")) } } - - onReadyChanged: { - if (ready) { - videoSettings.setVideoResolution() - } - } - } - - Connections { - target: settings - - onPrimaryImageResolutionChanged: imageSettings.setImageResolution() - onPrimaryImageAspectRatioChanged: imageSettings.setImageResolution() - onSecondaryImageResolutionChanged: imageSettings.setImageResolution() - onSecondaryImageAspectRatioChanged: imageSettings.setImageResolution() - - onPrimaryVideoResolutionChanged: videoSettings.setVideoResolution() - onPrimaryVideoAspectRatioChanged: videoSettings.setVideoResolution() - onSecondaryVideoResolutionChanged: videoSettings.setVideoResolution() - onSecondaryVideoAspectRatioChanged: videoSettings.setVideoResolution() } ModeController {